LINUX.ORG.RU
ФорумAdmin

Как перенаправить траффик через альтернативный шлюз?


0

0

Есть компьютер (Debian GNU/Linux 4.0), на котором установлены iptables, и через NAT осуществлен доступ в инет из локальной сети (eth0). Доступ в интернет осуществляется через подключение к провайдеру (ppp0) - он работает как default gateway. Но есть и второй шлюз, через который можно сдеалть доступ в инет (ppp1). Хотелось бы часть траффика (например, часть tcp соединений на определнные адреса и на определнные порты) перенаправить на второй шлюз. Как это сделать с помощью iptables?


Это один из самых распространенных вопросов про маршрутизацию. Воспользуйтесь поиском по этому сайту или сходите в гугл.

Кратко: нужные пакеты маркируем в "iptables -j MARK", с поможью "ip rule" отправляем их в другую таблицу маршрутизации, у которой default gateway через ppp1.

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

Не обязательно даже впутывать сюда iptables. 

Для начала создаем новую таблицу, в файлике /etc/iproute2/rt_tables прописываем строчку:
100 table_name

Далее загоняем айпишники в таблицу:
ip rule add from client_ip table table_name

И собственно добавляем маршрут:
ip route add default via gateway_ip table table_name
ну или указываешь не айпишник гейтвея, а устройство (dev ppp0 или dev ppp1).

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

Но если надо еще по портам разделять, то тут только с iptables.
Тогда комманда для создания правила примерно такая:
ip rule add fwmark 777 table table_name

Ну и в iptables примерно следуюющее:
iptables -t mangle -A PREROUTING -p tcp --dport 443 -i eth0 -j MARK --set-mark 777

Ну а дальше возможности безграничны, ну почти =)

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

Спасибо. Псоледний совет - то, что надо. Конечно, мог бы поисктаь в Гугле, но я не знал, что искать =)

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