URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 66627
[ Назад ]

Исходное сообщение
"iproute2 второй канал, упарился уже"

Отправлено starki , 30-Май-06 23:38 
Казалось бы классика, котора везде описана, но не арбайтен.
Подскажите, плз, если кто ошибку найдет
3 интерфейса.
eth0 в свою локалку сеть 192.168.1.0/24 адрес на интерфейсе 192.168.1.1
eth1 прямой в инет с реальным адресом 212.69.1.0/27 адрес на интерфейсе 212.69.1.2 шлюз 212.69.1.1
eth2 в соседнюю локалку, но с выходом в инет 10.0.0.0/8 адрес на интерфейсе 10.103.2.111 шлюз 10.103.2.2

По умолчанию со всех адресов выход через eth1, но хочу вытащить один адрес 192.168.1.10 через второй канал, eth2.

/sbin/ip route add 10.0.0.0/8 via 10.103.2.2 table main
/sbin/ip route add default via 212.69.1.1 dev eth1 table main

/sbin/ip rule add from 192.168.1.10 table 200
/sbin/ip route add default via 10.103.2.2 dev eth2 table 200

/sbin/ip route flush cache

Все Ок, но адрес 192.168.1.10 не хочет через 10.0.0.0 в инет идти, хоть тресни. Как токо rule добавляю - вообще в инет ходить отказывается. Правило убираю - само собой ходит со всеми. Стоит стандартный MonMotha's Firewall 2.3.8 на базе iptables. ПРавила по маскарадингу в нем формируются так:
INET_IFACE="eth1 eth2"
MASQ_LAN="\
        192.168.1.0/24\
        "
for inetdev in ${INET_IFACE} ; do
    for subnet in ${MASQ_LAN} ; do
        iptables -t nat -A POSTROUTING -s ${subnet} -o ${inetdev} -j MASQUERADE
    done
done
Вроде все.


Содержание

Сообщения в этом обсуждении
"iproute2 второй канал, упарился уже"
Отправлено shepherd , 01-Июн-06 08:21 
Вместо MASQUERADE попробуй SNAT (-o ${inetdev} обязательно) и в table 200 добавь все маршруты к соседним сетям (локалки, выделенные провайдером сети).