
Я использую межсетевой экран Shorewall и успешно настроил несколько источников интернет-провайдеров.
В настоящее время он балансирует весь трафик на обоих провайдеров. Я хочу направить трафик ssh на провайдера ISP1 и трафик www на провайдера ISP2. Как это сделать?
решение1
Я думаю, вам нужно будет создать несколько таблиц маршрутизации. Одна — ваша таблица по умолчанию, предназначенная для обычного трафика, следующая — ваша специальная таблица SSH, которая содержит записи маршрутизации только для соединения с провайдером, которое вы хотите использовать.
Далее настройте iptables для маркировки пакетов, которые исходят от вашего IP-адреса и прослушиваемого порта SSH.
Наконец, вы можете настроить записи правил IP для маршрутизации на основе метки брандмауэра.
В документации LARTC содержится много информации (но вы, возможно, уже ее видели, раз уж дошли до этого места):http://lartc.org/howto/lartc.rpdb.html
Итак, в качестве примера:
Добавьте новую таблицу маршрутизации с именем.
echo SSH 500 >>/etc/iproute2/rt_tables
Добавьте маршрут по умолчанию в другую таблицу маршрутизации, которая выполняет нужную задачу.
ip route add default via $ISP2_GW table SSH
Настройте правило, чтобы fwmark использовал эту новую таблицу.
ip rule add fwmark 0x0001 table SSH
Наконец, настройте правило iptables для маркировки ваших пакетов.
iptables -I PREROUTING -t mangle -p tcp --sport 22 -j MARK --set-mark 0x0001 iptables -I OUTPUT -t mangle -p tcp --sport 22 -j MARK --set-mark 0x0001
Надеюсь, это правильно настроит то, что вам нужно. Вам также нужно будет убедиться, что эта конфигурация выдержит перезагрузки! НО я оставлю это вам в качестве упражнения.