PDA

Bekijk de volledige versie : Как использовать DNAT для пакетов исходящих от самого роутера?



kodmis
13-11-2008, 08:32
Подскажите, плз. Пишу вроде правильно, а выдает ошибку про аргументы:


$ iptables -t nat -A OUTPUT -p tcp --dst 10.2.128.97 --dport 16001 -j DNAT --to-destination 192.168.91.11
iptables: Invalid argument


Чего я не так делаю?
Причем, вот без DNAT iptables записывает:


iptables -t nat -A OUTPUT -p tcp -d 10.2.128.97 --dport 16001

Но мне так не надо :o

RandoMan
13-11-2008, 09:12
Возможно не хватает модуля iptables. Посмотри lsmod и пройдись по /lib/modules, там должно быть что-то от iptables
А вообще очень часто такие ошибки возникают при несоответствии ядра и iptables - например при смене ядра без пересборки iptables. Вечером попробую у себя DNAT поднять.

vectorm
13-11-2008, 09:43
Подскажите, плз. Пишу вроде правильно, а выдает ошибку про аргументы:


$ iptables -t nat -A OUTPUT -p tcp --dst 10.2.128.97 --dport 16001 -j DNAT --to-destination 192.168.91.11
iptables: Invalid argument


Чего я не так делаю?
Причем, вот без DNAT iptables записывает:


iptables -t nat -A OUTPUT -p tcp -d 10.2.128.97 --dport 16001

Но мне так не надо :o
Вероятно в дестинейшене порта не хватает.

kodmis
13-11-2008, 11:36
2 vectorm
Не.. там можно без порта. Вообщем проверил на всякий случай - не помогло :(

2 RandoMan
Установлена последняя прошивка Олега. С модулями и ядром не баловался:


$ iptables -V
iptables v1.2.7a
$ uname -a
Linux BigTower 2.4.20 #18 Sun Mar 30 13:13:29 MSD 2008 mips GNU/Linux

lsmod:


$ lsmod
Module Size Used by Tainted: P
usb-storage 63928 5
sd_mod 13276 10
scsi_mod 70200 3 [usb-storage sd_mod]
printer 12900 0 (unused)
ehci-hcd 23804 0 (unused)
usb-uhci 28580 0 (unused)
usbcore 78496 1 [usb-storage printer ehci-hcd usb-uhci]
ip_nat_ftp 3912 0 (unused)
ip_conntrack_ftp 5216 1
ipt_NETMAP 960 2
ip_nat_starcraft 2208 0 (unused)
wl 892280 0 (unused)
et 31288 0 (unused)

Плохо понимаю что тут написано :) Интересно, а ip_nat_starcraft имеет какое-нить отношение к соотв. игрухе?
А чего искать в /lib/modules ?

Power
13-11-2008, 17:27
Команда правильная за исключением того, что, похоже, iptables не позволяет выполнять DNAT в цепочке OUTPUT. Проверка: создайте новую цепочку в таблице nat и выполните ту команду для неё, а потом попробуйте добавить переход на эту цепочку из OUTPUT.

kodmis
13-11-2008, 19:58
Писал по руководству:
http://www.opennet.ru/docs/RUS/iptables/#DNATTARGET
Там говорят что только в цепочке OUTPUT таблицы nat можно преобразовать IP адрес для исходящих от роутера.
Или у нас в прошивке неполноценный iptables?
Попробую с новой цепочкой, отпишусь...

ABATAPA
13-11-2008, 20:06
Команда правильная за исключением того, что, похоже, iptables не позволяет выполнять DNAT в цепочке OUTPUT. Проверка: создайте новую цепочку в таблице nat и выполните ту команду для неё, а потом попробуйте добавить переход на эту цепочку из OUTPUT.

Вполне можно это заменить
ip route add ... scope ... src IP

kodmis
14-11-2008, 08:12
Не нашел описания конструкции "ip route add...", но судя по "...src IP", меняется IP адрес источника, а мне нужно поменять IP назначения (DNAT!)

Ilmarinen
14-11-2008, 11:53
Писал по руководству:
http://www.opennet.ru/docs/RUS/iptables/#DNATTARGET
Там говорят что только в цепочке OUTPUT таблицы nat можно преобразовать IP адрес для исходящих от роутера.
Или у нас в прошивке неполноценный iptables?
Попробую с новой цепочкой, отпишусь...
А что мешает использовать цепочку PREROUTING для этой цели?
А в iptables действительно чего-то не хватает, так как "нормальные" дистрибутивы указанное в первом посте правило добавляют без проблем.

kodmis
15-11-2008, 19:32
А что мешает использовать цепочку PREROUTING для этой цели?
...

Голова мешает.
Нудно твердит, что PREROUTING используется для пакетов входящих в роутер через сетевой интерфейс. И не используется для пакетов сформированных локальными приложениями роутера.

kodmis
15-11-2008, 19:41
Команда правильная за исключением того, что, похоже, iptables не позволяет выполнять DNAT в цепочке OUTPUT. Проверка: создайте новую цепочку в таблице nat и выполните ту команду для неё, а потом попробуйте добавить переход на эту цепочку из OUTPUT.

Похоже наш iptables не позволяет выполнять DNAT в цепочке OUTPUT:


$ iptables -N OUTDNAT -t nat
$ iptables -t nat -A OUTDNAT -p tcp --dst 10.2.128.97 --dport 16001 -j DNAT --to-destination 192.168.91.11
$ iptables -t nat -A OUTPUT -p tcp --dst 10.2.128.97 --dport 16001 -j OUTDNAT
iptables: Invalid argument
$ iptables -t nat -A OUTPUT -j OUTDNAT
iptables: Invalid argument


Чё, блин, делать-то? :(

lly
17-11-2008, 09:42
Похоже наш iptables не позволяет выполнять DNAT в цепочке OUTPUT:

Чё, блин, делать-то? :(

Ну вариантов как всегда несколько:

Достроить Олегу дачу ;) - это должно ускорить выпуск новой прошивки
Включиться в процесс обновления iptables - есть альфа версия прошивки с iptables 1.3.8, но требуются квалифицированные тестеры+разработчики
Перейти на OpenWRT

VEDMED007
17-11-2008, 11:08
Плохо понимаю что тут написано :) Интересно, а ip_nat_starcraft имеет какое-нить отношение к соотв. игрухе?
Да, имеет, и даже в Веб-интерфейсе есть соотв. упоминание - видать первоначальную прошивку писали какие-то "южнокорейские" китайцы :D

kodmis
17-11-2008, 14:57
Ну вариантов как всегда несколько:

Достроить Олегу дачу ;) - это должно ускорить выпуск новой прошивки
Включиться в процесс обновления iptables - есть альфа версия прошивки с iptables 1.3.8, но требуются квалифицированные тестеры+разработчики
Перейти на OpenWRT


Это хорошо, что есть свобода выбора :D
Опыт в принципе есть, только не всегда положительный. ;)
Готов оттестить. Квалификацию не велика, но думаю подниму в процессе. К кому обращаться?
Не-е не наше это.

kodmis
17-11-2008, 15:01
Да, имеет, и даже в Веб-интерфейсе есть соотв. упоминание - видать первоначальную прошивку писали какие-то "южнокорейские" китайцы :D
... для фанатов старкрафта. :D

А если серьезно. Как выгрузить этот модуль? (не играю в старкрафт, звиняйте :) Он наверное драгоценную память занимает?
А где можно посмотреть назначение остальных модулей? Может половина мне и нафик не нужна ?
Спасибо :)

lly
17-11-2008, 15:17
Готов оттестить. Квалификацию не велика, но думаю подниму в процессе. К кому обращаться?

Пока - ко мне в личку. Девайс Premium V1?

P.S. Прошивку сам собирал когда-нибудь?

dk866
04-01-2009, 14:59
Роутер gpv2, прошивка последняя Олеговская 1.9.2.7-10 (собранная с ADVANCED_ROUTING, правда).
Настроил 2 wan (с нормальным обратным роутингом и тп). Вроде все работает, только DNAT'ятся сессии только с одного (первого, дефолтного) WAN. Пробовал даже от безысходности даже поставить патчи с http://www.ssi.bg/~ja/#docs (routes-2.4.20-9.diff) - встали как родные, но поведение не улучшилось.

Самое забавное, что SSH с обоих WAN'ов заходит на роутер отлично. DNAT с первого WANа заходит тоже отлично. А когда заходишь через DNAT со второго WANа, видно, что DNAT срабатывает (counter увеличивается), а вот ни на одном интерфейсе DNAT'нутый пакет не появляется, ни одна из цепочек DROP\REJECT\ACCEPT не срабатывает ж(

Была идея сделать соединения "внутрь" не средствами DNAT, а rinet'ом или xinet'ом. Но, учитывая, что хочется так внутрь пускать торренты, ИМХО идея оччень плохая...

Может, кто-нить сталкивался? Или поможет диагностировать, что с DNAT'нутыми пакетами происходит (что-то мне подсказывает, что они на этапе routing decision дохнут)... В линухах я не особо силен, мне как-то ближе bsd, так что возможно, проблема ламская ж)

wan1 - корбина (ppp0 c ip 78.107.239.244 через vlan1 с ip 10.198.16.208)
wan2 - обощ на vlan2 с ip 10.177.180.86 (из инета пекеты на него ходят, правда "извне" ип'шник, естественно, другой)
tun* - внимание обращать не стоит ж)

ifconfig:

[admin@fvsz root]$ ifconfig
br0 Link encap:Ethernet HWaddr 00:1F:C6:11:FB:7D
inet addr:172.18.26.1 Bcast:172.18.26.255 Mask:255.255.255.0
inet6 addr: fe80::21f:c6ff:fe11:fb7d/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10111 errors:0 dropped:0 overruns:0 frame:0
TX packets:7020 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:746671 (729.1 KiB) TX bytes:1737100 (1.6 MiB)

eth0 Link encap:Ethernet HWaddr 00:1F:C6:11:FB:7D
inet6 addr: fe80::21f:c6ff:fe11:fb7d/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:53025 errors:0 dropped:0 overruns:0 frame:0
TX packets:10899 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:5952483 (5.6 MiB) TX bytes:1228167 (1.1 MiB)
Interrupt:4 Base address:0x1000

eth1 Link encap:Ethernet HWaddr 00:1F:C6:11:FB:7D
inet6 addr: fe80::21f:c6ff:fe11:fb7d/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10900 errors:0 dropped:0 overruns:0 frame:50478
TX packets:8261 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:946889 (924.6 KiB) TX bytes:2056430 (1.9 MiB)
Interrupt:13 Base address:0x5000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MULTICAST MTU:16436 Metric:1
RX packets:5326 errors:0 dropped:0 overruns:0 frame:0
TX packets:5326 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:456988 (446.2 KiB) TX bytes:456988 (446.2 KiB)

ppp0 Link encap:Point-Point Protocol
inet addr:78.107.239.244 P-t-P:85.21.0.252 Mask:255.255.255.255
UP POINTOPOINT RUNNING MULTICAST MTU:1460 Metric:1
RX packets:1640 errors:0 dropped:0 overruns:0 frame:0
TX packets:4144 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:825145 (805.8 KiB) TX bytes:330387 (322.6 KiB)

tun0 Link encap:Point-Point Protocol
inet addr:172.18.0.26 P-t-P:172.18.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1450 Metric:1
RX packets:2333 errors:0 dropped:0 overruns:0 frame:0
TX packets:2766 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:206452 (201.6 KiB) TX bytes:126338 (123.3 KiB)

tun2 Link encap:Point-Point Protocol
inet addr:172.18.0.26 P-t-P:172.18.0.129 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1300 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

tun3 Link encap:Point-Point Protocol
inet addr:172.18.0.26 P-t-P:172.18.0.130 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1300 Metric:1
RX packets:191 errors:0 dropped:0 overruns:0 frame:0
TX packets:205 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:25465 (24.8 KiB) TX bytes:15784 (15.4 KiB)

vlan0 Link encap:Ethernet HWaddr 00:1F:C6:11:FB:7D
inet6 addr: fe80::21f:c6ff:fe11:fb7d/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1453 errors:0 dropped:0 overruns:0 frame:0
TX packets:1288 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:244970 (239.2 KiB) TX bytes:138274 (135.0 KiB)

vlan1 Link encap:Ethernet HWaddr 00:1F:C6:11:FB:7D
inet addr:10.198.16.208 Bcast:10.198.23.255 Mask:255.255.248.0
inet6 addr: fe80::21f:c6ff:fe11:fb7d/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:34862 errors:0 dropped:0 overruns:0 frame:0
TX packets:4956 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3458327 (3.2 MiB) TX bytes:613158 (598.7 KiB)

vlan2 Link encap:Ethernet HWaddr 00:1F:C6:11:FB:7D
inet addr:10.177.180.86 Bcast:10.255.255.255 Mask:255.255.252.0
inet6 addr: fe80::21f:c6ff:fe11:fb7d/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:16705 errors:0 dropped:0 overruns:0 frame:0
TX packets:4653 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1294416 (1.2 MiB) TX bytes:476587 (465.4 KiB)

[admin@fvsz root]$

dk866
04-01-2009, 15:00
(продолжение - форум не захотел длинное сообщение публиковать)

iptables:

[admin@fvsz root]$ iptables-save
# Generated by iptables-save v1.2.7a on Sun Jan 4 17:44:06 2009
*nat
:PREROUTING ACCEPT [15681:1509814]
:POSTROUTING ACCEPT [453:26276]
:OUTPUT ACCEPT [368:22085]
:VSERVER - [0:0]
:VSERVER2I - [0:0]
-A PREROUTING -d 78.107.239.244 -i ppp0 -j VSERVER
-A PREROUTING -d 10.198.16.208 -i vlan1 -j VSERVER
-A PREROUTING -d 10.177.180.86 -i vlan2 -j VSERVER2I
-A POSTROUTING -s ! 78.107.239.244 -o ppp0 -j SNAT --to-source 78.107.239.244
-A POSTROUTING -s ! 10.198.16.208 -o vlan1 -j SNAT --to-source 10.198.16.208
-A POSTROUTING -s ! 10.177.180.86 -o vlan2 -j SNAT --to-source 10.177.180.86
-A VSERVER -p tcp -m tcp --dport 8080 -j DNAT --to-destination 172.18.26.1:80
-A VSERVER -p tcp -m tcp --dport 5249 -j DNAT --to-destination 172.18.26.126:5249
-A VSERVER -p tcp -m tcp --dport 443 -j DNAT --to-destination 172.18.26.126:6443
-A VSERVER2I -p tcp -m tcp --dport 8080 -j DNAT --to-destination 172.18.26.1:80
-A VSERVER2I -p tcp -m tcp --dport 5249 -j DNAT --to-destination 172.18.26.126:5249
-A VSERVER2I -p tcp -m tcp --dport 443 -j DNAT --to-destination 172.18.26.126:6443
COMMIT
# Completed on Sun Jan 4 17:44:06 2009
# Generated by iptables-save v1.2.7a on Sun Jan 4 17:44:06 2009
*mangle
:PREROUTING ACCEPT [33773:4489193]
:INPUT ACCEPT [23383:3061979]
:FORWARD ACCEPT [8935:1360803]
:OUTPUT ACCEPT [12893:1322219]
:POSTROUTING ACCEPT [21792:2680862]
COMMIT
# Completed on Sun Jan 4 17:44:06 2009
# Generated by iptables-save v1.2.7a on Sun Jan 4 17:44:06 2009
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [2749:127976]
:OUTPUT ACCEPT [12902:1323303]
:MACS - [0:0]
:SECURITY - [0:0]
:logaccept - [0:0]
:logdrop - [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m state --state INVALID -j DROP
-A INPUT -p tcp -m tcp --dport 22 -m limit --limit 1/sec -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5246 -j ACCEPT
-A INPUT -i lo -m state --state NEW -j ACCEPT
-A INPUT -i br0 -m state --state NEW -j ACCEPT
-A INPUT -i tun0 -j ACCEPT
-A INPUT -i ppp0 -m state --state NEW -j SECURITY
-A INPUT -p udp -m udp --sport 67 --dport 68 -j ACCEPT
-A INPUT -d 172.18.26.1 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -j DROP
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i br0 -o br0 -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -p tcp -m tcp --dport 5249 -j ACCEPT
-A FORWARD -p tcp -m tcp --dport 443 -j ACCEPT
-A FORWARD -p tcp -m tcp --dport 6443 -j ACCEPT
-A FORWARD -i tun0 -j ACCEPT
-A FORWARD -i tun0 -j ACCEPT
-A FORWARD -i ! br0 -o ppp0 -j DROP
-A FORWARD -i ! br0 -o vlan1 -j DROP
-A FORWARD -i ! br0 -o vlan2 -j DROP
-A FORWARD -i ! br0 -m state --state NEW -j SECURITY
-A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
-A FORWARD -o br0 -j DROP
-A SECURITY -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 1/sec -j RETURN
-A SECURITY -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j RETURN
-A SECURITY -p udp -m limit --limit 5/sec -j RETURN
-A SECURITY -p icmp -m limit --limit 5/sec -j RETURN
-A SECURITY -j DROP
-A logaccept -m state --state NEW -j LOG --log-prefix "ACCEPT" --log-tcp-sequence --log-tcp-options --log-ip-options
-A logaccept -j ACCEPT
-A logdrop -m state --state NEW -j LOG --log-prefix "DROP" --log-tcp-sequence --log-tcp-options --log-ip-options
-A logdrop -j DROP
COMMIT
# Completed on Sun Jan 4 17:44:06 2009
[admin@fvsz root]$


route (в main - что корбина через dhcp придумала и pptp прописал - не менял ничего; в local еще tun* поднагадили; ext2i сделал сам для wan2):


[admin@fvsz root]$ ip rule list
0: from all lookup local
32765: from 10.177.180.86 lookup ext2i
32766: from all lookup main
32767: from all lookup default
[admin@fvsz root]$ ip route show table local
broadcast 10.177.180.0 dev vlan2 proto kernel scope link src 10.177.180.86
broadcast 10.198.23.255 dev vlan1 proto kernel scope link src 10.198.16.208
broadcast 10.177.183.255 dev vlan2 proto kernel scope link src 10.177.180.86
broadcast 10.198.16.0 dev vlan1 proto kernel scope link src 10.198.16.208
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
local 10.177.180.86 dev vlan2 proto kernel scope host src 10.177.180.86
local 172.18.26.1 dev br0 proto kernel scope host src 172.18.26.1
broadcast 172.18.26.0 dev br0 proto kernel scope link src 172.18.26.1
local 10.198.16.208 dev vlan1 proto kernel scope host src 10.198.16.208
local 78.107.239.244 dev ppp0 proto kernel scope host src 78.107.239.244
broadcast 78.107.239.244 dev ppp0 proto kernel scope link src 78.107.239.244
broadcast 10.255.255.255 dev vlan2 proto kernel scope link src 10.177.180.86
local 172.18.0.26 dev tun2 proto kernel scope host src 172.18.0.26
local 172.18.0.26 dev tun0 proto kernel scope host src 172.18.0.26
local 172.18.0.26 dev tun3 proto kernel scope host src 172.18.0.26
broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
broadcast 172.18.26.255 dev br0 proto kernel scope link src 172.18.26.1
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
[admin@fvsz root]$ ip route show table ext2i
172.18.26.0/24 dev br0 scope link
10.177.180.0/22 dev vlan2 scope link src 10.177.180.86
127.0.0.0/8 dev lo scope link
default via 10.177.180.1 dev vlan2
[admin@fvsz root]$ ip route show table main
85.21.88.130 via 10.198.16.1 dev vlan1
85.21.192.3 via 10.198.16.1 dev vlan1 metric 1
195.14.50.16 via 10.198.16.1 dev vlan1
217.118.84.213 via 10.198.16.1 dev vlan1
172.18.0.2 dev tun0 proto kernel scope link src 172.18.0.26
172.18.0.129 dev tun2 proto kernel scope link src 172.18.0.26
85.21.52.254 via 10.198.16.1 dev vlan1
195.14.50.21 via 10.198.16.1 dev vlan1
172.18.0.130 dev tun3 proto kernel scope link src 172.18.0.26
195.14.50.26 via 10.198.16.1 dev vlan1
89.179.135.67 via 10.198.16.1 dev vlan1
213.234.192.8 via 10.198.16.1 dev vlan1 metric 1
85.21.0.253 via 10.198.16.1 dev vlan1 metric 2
195.14.50.93 via 10.198.16.1 dev vlan1
78.107.69.98 via 10.198.16.1 dev vlan1
217.118.84.249 via 10.198.16.1 dev vlan1
78.107.235.4/30 via 10.198.16.1 dev vlan1
85.21.72.80/28 via 10.198.16.1 dev vlan1
78.107.51.0/28 via 10.198.16.1 dev vlan1
85.21.108.16/28 via 10.198.16.1 dev vlan1
83.102.231.32/28 via 10.198.16.1 dev vlan1
85.21.138.208/28 via 10.198.16.1 dev vlan1
83.102.146.96/27 via 10.198.16.1 dev vlan1
233.32.240.0/24 via 10.198.16.208 dev vlan1 scope link
172.18.2.0/24 via 172.18.0.2 dev tun0
172.16.16.0/24 via 10.198.16.1 dev vlan1
85.21.90.0/24 via 10.198.16.1 dev vlan1
172.18.26.0/24 dev br0 proto kernel scope link src 172.18.26.1
78.107.23.0/24 via 10.198.16.1 dev vlan1
85.21.79.0/24 via 10.198.16.1 dev vlan1
10.177.180.0/22 dev vlan2 proto kernel scope link src 10.177.180.86
10.198.16.0/21 dev vlan1 proto kernel scope link src 10.198.16.208
10.0.0.0/8 via 10.198.16.1 dev vlan1
127.0.0.0/8 dev lo scope link
default via 85.21.0.252 dev ppp0
default via 10.198.16.1 dev vlan1 metric 1
[admin@fvsz root]$ ip route show table default
[admin@fvsz root]$


из настроек вроде инересное все... могу еще выложить логи tcpdump'а при подключении ssh через оба wan и его же логи при заходе на web \ https через wan1 и попытке wan2...

Помогите!! ж)

Andyz
04-01-2009, 22:06
мне сложно что-то тут уловить какдилетанту в линуксе.
Но у себя я сделал руками два статических vlan, прописал ip route
А ЗАТЕМ
создал ВТОРУЮ цепочку в iptables, типа
iptables -t nat -N VSERVER1
и все что идет на 2 интерфейс, пустил через нее.

Все работает как часы, но производительность проседает более чем вдвое. Загрузка процессора при этом растет не особо. Странные вещи.

"proto kernel scope link src 10.198.16.208"
По моему, вот этого, кажется, делать не надо.
Вроде, проблема не в DNAT, а нарушенной маршрутизации... не помню, 4 месяца назад выяснял почему, но лучше просто указать IP с минимумом путанницы, а машина сама по IP определит, от имени какого интерфейса работать.
у меня
ip route add 10.0.0.0/16 dev vlan2 protocol static scope lin
ip route add 10.0.0.1 dev vlan2 scope link
ip route add 10.0.0.0/8 via 10.0.0.1
Если не так, поясните.

Villen
03-12-2010, 08:29
Есть какие нибудь подвижки в основном вопросе (действие DNAT в цепочке OUTPUT)? или все на это благополучно забили?

Netrax
06-12-2010, 08:24
А разве так не работает?
iptables -t nat -A OUTPUT -o ppp0 -p tcp -d 15.45.23.67 --dport 80 -j DNAT --to-destination 192.168.1.1

Villen
06-12-2010, 10:08
в том то и дело что нет
в консоль пишет:
iptables: Invalid argument

тогда как в PREROUTING это же (ну без -o ppp0) правило добавляется
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1


по старой теме выяснили
что

Похоже наш iptables не позволяет выполнять DNAT в цепочке OUTPUT
но что с этим делать не понятно.

Netrax
06-12-2010, 10:29
вполне возможно.
обычно на этом этапе делают source nat.
Использование dnat, это экзотика
Может попробовать поменять условия задачи?

Villen
06-12-2010, 11:08
задача такая:

инет - роутер - (сервер, домашний комп, ....)

1. на сервере "хостятся" картинки, доступ к ним через проброшенный 80 порт.
правило: -A VSERVER -p tcp -m tcp --dport 80 -j DNAT --to 192.168.1.10

2. на 80 порту самого роутера висит вебморда настроек роутера

3. на роутере стоит 3proxy

теперь 2 варианта:
a) внешние пользователи видят картинки с сервера
б) пользователи прокси по этомуже адресу видят вебморду, а не картинки с сервера.

правило -A OUTPUT -p tcp -m tcp --dport 80 -j DNAT --to 192.168.1.10
развернуло бы их на сервер, но оно не применяется.

что можно придумать на замену?