LINUX.ORG.RU
ФорумAdmin

Выбор одного из двух маршрутов (маршрутизаторов)

 


0

1

Hi!

Существует локальная сеть с двумя серверами, имеющими выход в инет. Внутренние адреса 192.168.101.10 и 11. Сервер с .10 является шлюзом по умолчанию для этой локалки. Оба этот сервера пробрасывают почтовые протоколы через PREROUTING - DNAT на машину в локальной сети 192.168.101.100. Естественно, все пакеты с этой машины обратно в инет убегают через дефолтный шлюз, даже если пришли от 192.168.101.11. Для разделения трафика на машине 192.168.101.100 нельзя поднять интерфейс с алиасом. Пришел к выводу, что проще всего на сервере 192.168.101.11 исходящие пакеты к 192.168.101.100 метить через TOS.

iptables -t mangle -A POSTROUTING -o eth0 -d 192.168.101.100/32 -j TOS --set-tos 0x10

На сервере 192.168.101.100 тспдумп реально видит приходящие пакеты с выставленным тос-ом. Далее мечу те пакеты, которые имеют нужный тос. В оутпут-е перемаркирую эти пакеты снова. Далее, отправляю пакеты имеющие метку 0х1 на 192.168.100.11 в отдельной таблице маршрутов.

iptables -t mangle -A PREROUTING -i eth0 -m tos --tos 0x10 -j MARK --set-mark 0x1
iptables -t mangle -A PREROUTING -i eth0 -j CONNMARK --restore-mark
iptables -t mangle -A POSTROUTING -o eth0 -m conntrack --ctstate NEW -j CONNMARK --save-mark
iptables -t mangle -A OUTPUT -o eth0 -m mark --mark 0x1 -j MARK --set-mark 0x1

ip route add default via 192.168.100.11 dev eth0 table route6
ip rule add tos 0x10 table route6
ip rule add fwmark 0x1 lookup route6

Тем не менее пакеты чешут на дефолтный шлюз. Прошу совета. Может есть более эффективный способ раскидать трафик по шлюзам?

Непонятно, что ты там куда тосишь\марчешь, это все шляпа и эти твои интернеты так не работают.

Anoxemian ★★★★★ ()

IMHO Я бы не трогал трафик на роутерах (изменение tos). Я бы попробовал различить входящие пакеты с разных шлюзов по их мас-адресам. Они же у тебя в одной сети?

Что делает правило iptables -t mangle -A OUTPUT -o eth0 -m mark --mark 0x1 -j MARK --set-mark 0x1 ?

iptables -t mangle -A POSTROUTING -o eth0 -m conntrack --ctstate NEW -j CONNMARK --save-mark

Это вообще дичь какая-то. Если бы это было в prerouting...

ip rule add tos 0x10 table route6

нахрена? У тебя входящий трафик в разным tos, но тебе с ним ничего делать не нужно. Тебе только исходящим трафиком нужно рулить и ты им рулишь через fwmark.

Тема с сервером в локалке доступным снаружи через разные внешние каналы здесь обсуждалась многократно. Воспользуйся поиском.

vel ★★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.