29

Как направить только конкретную подсеть (исходный IP) на конкретный интерфейс?
ОС: Linux

Я знаю, что могу легко сделать по IP назначения, используя что-то вроде

route add 1.2.3.4/24 dev eth4

но я не вижу, как можно маршрутизировать на основе исходного IP.

2 ответа2

27

Вам нужно использовать политику на основе маршрутизации. Что-то вроде

ip rule add from <source>/<mask> table <name>
ip route add 1.2.3.4/24 via <router> dev eth4 table <name>

<name> - это либо имя таблицы, указанное в /etc/iproute2/rt_tables либо вы можете использовать числовой идентификатор ...

Это в значительной степени говорит о том, что весь трафик с 1.2.3.4/24 будет маршрутизироваться с использованием таблицы маршрутизации <name> . IIRC после этого не использует таблицу по умолчанию, поэтому, если вам нужны другие маршруты (например, шлюз по умолчанию), вам необходимо добавить их и в таблицу.

5

http://wiki.wlug.org.nz/SourceBasedRouting

На этом сайте есть хороший пример маршрутизации на основе исходного кода.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .