LINUX.ORG.RU
ФорумAdmin

2 интерфейса в интернет


0

0

Всем привет!

Осмелюсь написать в этой ветке.

Debian Linux;

Ситуация такая, есть локальная сеть 192.168.56.0/24 со шлюзом в инет 192.168.56.1; Так же есть VPN-тунель к машине 62.xxx.173.162; После подключения к VPN машинке присваивается внешний IP, соответсвенно таблица маршрутизации выглядит так: receiver:/home/receiver# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 62.xxx.173.162 192.168.56.1 255.255.255.255 UGH 0 0 0 eth0 192.168.222.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 192.168.20.0 0.0.0.0 255.255.255.0 U 0 0 0 tap0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0 Таким образом инет у нас есть на обоих интерфейсах и на eth0 и на ppp0. Задача весь трафик по умолчанию пускать через eth0, через ppp0 должно что-то идти только если именно на ppp0 пришёл запрос, например пришёл пинг на внешний IP, машинка должна ответить через ppp0. Подумав решил организовать такую схему: iptables -t mangle -A INPUT -i ppp0 -j CONNMARK --set-mark 0x200 iptables -t mangle -A OUTPUT -m connmark --mark 0x200 -j MARK --set-mark 0x200 ip rule add pref 10000 fwmark 0x200 table 777 ip route add table 777 via External_IP Но чего-то эффекта немного =) Помогите разобраться, пожалуйста. Может кроме этого всего нужно какие-либо параметры ядра выставить (/proc/sys)? Сейчас в единичку выставлена только ip_forward, т.к. организован NAT с eth1 в eth0

anonymous

also осмелься разобраться с форматированием.

Anoxemian ★★★★★
()

сорри форматирование =(

anonymous
()

Всем привет!



Debian Linux;

Ситуация такая, есть локальная сеть 192.168.56.0/24 со шлюзом в инет 192.168.56.1;
Так же есть VPN-тунель к машине 62.xxx.173.162;
После подключения к VPN машинке присваивается внешний IP, соответсвенно таблица маршрутизации выглядит так:
receiver:/home/receiver# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
62.xxx.173.162 192.168.56.1 255.255.255.255 UGH 0 0 0 eth0
192.168.222.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.20.0 0.0.0.0 255.255.255.0 U 0 0 0 tap0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
Таким образом инет у нас есть на обоих интерфейсах и на eth0 и на ppp0.
Задача весь трафик по умолчанию пускать через eth0, через ppp0 должно что-то идти только если именно на ppp0 пришёл запрос, например пришёл пинг на внешний IP, машинка должна ответить через ppp0.
Подумав решил организовать такую схему:
iptables -t mangle -A INPUT -i ppp0 -j CONNMARK --set-mark 0x200
iptables -t mangle -A OUTPUT -m connmark --mark 0x200 -j MARK --set-mark 0x200
ip rule add pref 10000 fwmark 0x200 table 777
ip route add table 777 via External_IP
Но чего-то эффекта немного =)
Помогите разобраться, пожалуйста.
Может кроме этого всего нужно какие-либо параметры ядра выставить (/proc/sys)? Сейчас в единичку выставлена только ip_forward, т.к. организован NAT с eth1 в eth0

anonymous
()
Ответ на: комментарий от anonymous

iptables -t mangle -A INPUT -i ppp0 -j CONNMARK --set-mark 0x200
iptables -t mangle -A OUTPUT -m connmark --mark 0x200 -j MARK --set-mark 0x200

под первое правило попадает приходящий пакет, под второе сформированный на сервере ответ на него.
поэтому марки тут не помогут.
ответ будет идти по тому интерфейсу, через который пробит роут, если такового нет, будет использоваться default.

chocholl ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.