19.3.7. Управление правилами маршрутизации
19.3.7. Управление правилами маршрутизации
Для решения этой задачи предназначена команда ip rule. Маршрутизация производится в зависимости от:
? адреса получателя;
? адреса отправителя;
? IP-протокола;
? транспортного протокола.
По умолчанию используются три таблицы правил маршрутизации:
? Local — содержит таблицы для локальных и широковещательных адресов;
? Main — самая обыкновенная таблица маршрутизации;
? Default — пустая таблица по умолчанию.
Аргументы команды ip rule:
1. адрес отправителя;
2. адрес назначения;
3. имя интерфейса, с которого получен пакет;
4. метка пакета, которая устанавливается брандмауэром;
5. идентификатор таблицы маршрутизации: им может быть номер или строка из файла /etc/iproute2/rt_tables;
6. приоритет таблицы (число).
Вот несколько примеров. Требование пересылать пакеты с сети 192.168.0.0/24 согласно таблице Main:
# ip rule add from 192.203.80.0/24 table main prio 100
Теперь допустим, что у нас есть два канала в Интернет (два провайдера): ppp1 с адресом 193.168.99.99, который связан с 193.168.99.100, и ppp2 с адресом 193.168.100.99, связанный с 195.1.1.1. Пользователь ivanov хочет, чтобы мы его пакеты отправляли через ppp2 (второго провайдера):
# echo 200 ivanov >> /etc/iproute2/rt_tables
# ip rule add from 192.168.0.10 table ivanov
# ip rule ls
0: from all lookup local
32765: from 192.168.0.10 lookup ivanov
32766: from all lookup main
32767: from all lookup default
Теперь для этого пользователя назначим маршрут по умолчанию и очистим кэш-таблицы маршрутизации, чтобы наши изменения вступили в силу:
# ip route add default via 195.1.1.1 dev ppp2 table ivanov
# ip route flush cache
Рассмотрим еще один практический пример. Направим весь трафик на порт 21 через устройство eth1:
# iptables -A PREROUTING -i eth0 -t mangle -p tcp --dport 21 -j MARK --set-mark 2
Теперь нужно создать правила для помеченных пакетов
# echo 202 21,tbl >> /etc/iproute2/rt_tables
# ip rule add fwmark 2 table 21.tbl
# ip route add default via 192.168.0.10 dev eth1 table 21.tbl
# ip route flush cache
Больше книг — больше знаний!
Заберите 20% скидку на все книги Литрес с нашим промокодом
ПОЛУЧИТЬ СКИДКУДанный текст является ознакомительным фрагментом.