Назад | Перейти на главную страницу

Создание маршрутов с использованием второго сетевого адаптера в коробке

ОС: Linux

Мне нужен совет, как настроить таблицу маршрутизации. У меня есть коробка с двумя физическими сетевыми картами eth0 и eth1 с двумя связанными IP-адресами IP1 и IP2 (оба из одной подсети). Мне нужно настроить маршрут, который заставит все сообщения с IP1 на IP3 (из той же подсети) проходить через IP2. У меня есть программа захвата сырых сокетов, прослушивающая IP2 (это не для злонамеренного использования).

Я настроил таблицу маршрутизации как

Destination  Gateway       Genmask        Flags  Metric  Ref  Use  Iface   
   IP3         IP2      255.255.255.255    UGH    0       0    0    eth1

Если я попытаюсь указать eth0 при добавлении вышеуказанного правила, я получаю сообщение об ошибке «SIOCADDRT: Сеть недоступна». Я понимаю из справочной страницы маршрута, что если указанный GW является локальным интерфейсом, то он будет использоваться в качестве исходящего интерфейса.

После настройки этого правила, если я выполняю трассировку (-i eth0), пакет сначала отправляется на шлюз по умолчанию, а затем на IP3.

Как мне заставить пакет, исходящий от eth0 к IP3, сначала прийти на IP2. Не могу внести изменения в таблицу маршрутизации шлюза.

Пожалуйста, предложите.

Если я правильно вас понял, вам нужна маршрутизация на основе политик, в частности маршрутизация на основе источника. Вот простой как сделать именно это.

Идея состоит в том, что традиционная маршрутизация делает свой выбор маршрутизации, глядя на поле адреса назначения в IP-заголовке и сравнивая его со своей таблицей маршрутизации. Маршрутизация на основе политик может смотреть на другие поля или даже другие элементы, такие как порты TCP. В случае маршрутизации на основе источника он смотрит на поле адреса источника в заголовке IP.