Ситуация:

eth0 - сеть по умолчанию с доступом к Интернету IP: 192.168.2.1 Шлюз по умолчанию: 192.168.2.254

eth0:1 192.168.2.2 Виртуальный сетевой адаптер, то же самое, что и eth0, но другой IP. Тот же кабель Этот IP имеет другой доступ в Интернет

eth1: 192.168.0.1

eth2: 192.168.1.1

Весь трафик от eth1 и eth2 направляется на 192.168.2.254 с использованием 192.168.2.1

Мне нужно направить весь трафик, идущий от eth2 до 192.168.2.254, но с использованием вторичного IP 192.168.2.2

Я перепробовал много разных конфигураций, но безуспешно.

1 ответ1

1

То, что вы хотите, называется маршрутизацией политики источника. Инструкции по настройке маршрутизации исходной политики можно найти здесь, в разделе Linux Advanced Routing & Traffic Control HOWTO.

Суть в том, что вы хотите добавить новую таблицу маршрутизации в вашу систему с именем, подобным INET2 (эти команды должны выполняться от имени пользователя root):

echo 200 INET2 >> /etc/iproute2/rt_tables

Затем вы хотите добавить правило источника в основную таблицу IP-маршрутизации (я предполагаю, что это сеть /24):

ip rule add from 192.168.1.0/24 table INET2

Далее вам нужно назначить маршрут по умолчанию для таблицы INET2 (вы не упомянули шлюз по умолчанию для вашего второго соединения, поэтому я предполагаю здесь):

ip route add default via 192.168.2.253 dev eth0:1 table INET2

Наконец, вам необходимо очистить кэш маршрутов в системе:

ip route flush cache

Правила, созданные таким образом, являются эфемерными и исчезают при перезапуске системы (хотя таблица INET2 сохранится), поэтому вам нужно будет поместить правила в сценарий запуска для сетевого интерфейса. Как именно это сделать, зависит от вашего конкретного дистрибутива Linux, и это действительно другой вопрос.

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