Маршрутизация
Использование нескольких шлюзов на сервере
Пример 1
Использовать для обращения к адресу 84.19.186.78 шлюз 192.168.0.1
ip route add 84.19.186.78 via 192.168.0.2 dev eth0
Удалить маршрут
ip route del 84.19.186.78
С использованием маски
ip route add 84.19.186.0/255.255.255.0 dev eth0Удалить маршрут
ip route del 84.19.186.0/255.255.255.0
Пример 2
Перенаправим трафик от компьютера 192.168.0.100 через шлюз 10.0.1.1
Создание таблицы маршрутизации с именем newroute и номером 200
nano /etc/iproute2/rt_tables
Добавим
rt_tables
... 200 newroute
Создать правило для вхождения в таблицу newroute
ip rule add from 192.168.0.100 table newroute
Проверка
ip rule ls
Добавим в таблицу путь по умолчанию (default-gateway)
ip route add default via 10.0.1.1 dev eth1 table newroute
Проверка
ip route list table newroute
Обновить
ip route flush cache
Пример 3
По аналогии с Примером 2, только правила для трафика определяются через iptables
Создание правила маркирующего трафик идущий на 80 порт
iptables -t mangle -A PREROUTING -p tcp -m tcp --dport 80 -j MARK --set-mark 105 \\
Создание правила, определяет, что пакеты с маркировкой 105 будут проходить через таблицу маршрутов newroute
ip rule add fwmark 105 table newroute
Обсуждение