LINUX.ORG.RU
ФорумAdmin

маршрутизация для двух провайдеров


0

5

Доброе время дня!
Прошу помочь со следующим вопросом.

Начальные данные - debian squeeze, iptables, iproute2, eth1, eth2.

Подключены два провайдера, один из которых основной, другой для всего прочего. маршрутизация имеет вид:

ip route add default via 62.x.x.177 table provider1
ip route add default via 212.x.x.1 table provider2
ip route add default via 62.x.x.177

ip rule add from 62.x.x.178/255.255.255.240 table provider1
ip rule add from 212.248.31.15/255.255.255.224 table provider2

заведено правило ip rule add from all fwmark 400 table provider2

в iptables создано правило для 25-го b 22-го порта ходить через provider2
iptables -t mangle -A FORWARD -s 192.168.22.225 -p tcp --dport 25 -j MARK --set-mark 400
iptables -t mangle -A FORWARD -s 192.168.22.225 -p tcp --dport 22 -j MARK --set-mark 400

+nat(для локалки от куда идем)
iptables -t nat -A POSTROUTING -s 192.168.22.225 -p tcp --dport 22 ! -d 192.168.22.0/24 -j SNAT --to-source 212.x.x.16
iptables -t nat -A POSTROUTING -s 192.168.22.225 -p tcp --dport 22 ! -d 192.168.22.0/24 -j SNAT --to-source 212.x.x.16

ВОПРОС:
Конструкция странно себя ведет под нагрузкой, т.е. когда нет рассылки, то по scp переливаю файлик на скорости 10mbit, если идет интенсивная рассылка до скорость падает до 512kbit. Нюанс в том, что если убрать заворачивание через iptables и указать явно маршрут через iproute (ip rule add from 192.168.22.225 table provider2), то при интерсивной почтовой рассылки, тоже переливайние файлика по scp происходит на скорости приближенной в 10mbit(не 512 kbit).
Кто подскажет причину, и вариант оптимизации маршрутизации?

Примечание: Машинка должна ходить по двум провайдерам, поэтому явная маршрутизации не подходит.


почему бы для начала не сделать по человечески и не объединить интерфейсы в bond?

x0r ★★★★★
()

Я не совсем понял, вы одновременно загружаете интерфейс к provider2 почтовой рассылкой и копированием файла по scp? При этом у вас нет шейпинга и приоритетов. Ну сделайте хотя бы какие-то замеры, сколько полосы занимает почтовый трафик.

А SNAT у вас только для порта 22? Вобще, лучше делайте SNAT-правила на основании исходящего интерфейса (-o eth1).

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

1. Шейпера действительно не стоит, поскольку второй канал используется как резервный, на котором, в обычное состоянии идет только рассылка почты. В этой ситуации большой необходимости в шэйпере не вижу.
2. Что касается использования scp, то при использовании варианта маршрутизации пакетов через маркировку iptables и последующего заворачивания, то почта начинает тормозит (скапливается очень большая очередь писем), в это же время, с маршрутизацией через iproute этого не наблюдается (не такое количество). Поэтому scp и запускаю что бы посмотреть какую ширину канала могу получить в двух вариантах маршрутизации. Получается, что в момент интенсивной рассылки при разных вариантах маршрутизации имеем два разных результата.
3. За предложении по использованию «исходящего интерфейса (-o eth1).» спасибо, сейчас попробую.

av
() автор топика
Ответ на: комментарий от x0r

Использования bonding для двух интерфейсов, пока мне кажется одним из вариантов работы с несколькими интерфейсами. В чем он лучше для моего случая, пока не очень понял. Поясните пожалуйста.

av
() автор топика
Ответ на: комментарий от mky

А SNAT у вас только для порта 22? Вобще, лучше делайте SNAT-правила на основании исходящего интерфейса (-o eth1).

При попытке поработать в iptables именно с интерфейсом eth2 нашел ненормальное поведение системы. А именно увидел, что заворачивание пакетов на второго провайдера через правила

ip route add default via 212.x.x.1 table privider2
ip rule add from 212.x.x.15/255.255.255.224 table provider2
ip rule add from all fwmark 400 table provider2
iptables -t mangle -A FORWARD -s 192.168.22.225 -j MARK --set-mark 400
iptables -t nat -A POSTROUTING -s 192.168.22.225 -o eth2 -j SNAT --to-source 212.x.x.16

не отправляет пакеты пакеты через интрефейс eth2, а каким-то чудесным образом отправляет их через eth1, хотя они и натятся ip-адресом второго провайдера. А при использовании ip rule del from 192.168.22.225 table provider2 все начинает идти именно интерфейс eth2.

Осталось понять почему именно это происходит...

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

как минимум тем, что такая настройка проще. если конечно не нужна очень хитрая маршрутизация.

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

Объединить в bond интерфейсы к разным свичам, разных провадеров с разными ip-адресами?

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

Похоже заработало :) Дело было в полном описании правил маршрутизации. Спасибо за помощь.

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