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

Маршрут по портам в конфигурации с несколькими провайдерами

Я использую брандмауэр Shorewall и успешно настроил несколько источников ISP.

В настоящее время он балансирует весь трафик для обоих интернет-провайдеров. Я хочу направить трафик ssh на ISP1 и направить трафик www на ISP2. Как я могу это сделать?

Я думаю, вам нужно будет создать несколько таблиц маршрутов. Один из них по умолчанию предназначен для обычного трафика, следующий - это ваша специальная таблица SSH, которая содержит записи маршрутов только для подключения к Интернет-провайдеру, которое вы хотите использовать.

Затем настройте iptables, чтобы отмечать пакеты, приходящие с вашего IP-адреса и прослушивающего SSH-порта.

Наконец, вы можете настроить записи правил IP для маршрутизации на основе метки брандмауэра.

В документации LARTC есть много информации (но вы, возможно, уже видели ее как свою): http://lartc.org/howto/lartc.rpdb.html

Итак, в качестве примера:

  1. Добавьте новую таблицу маршрутизации с именем.

    echo SSH 500 >>/etc/iproute2/rt_tables
    
  2. Добавьте маршрут по умолчанию в другую таблицу маршрутизации, которая будет работать правильно.

    ip route add default via $ISP2_GW table SSH 
    
  3. Установите правило, чтобы fwmark использовал эту новую таблицу.

    ip rule add fwmark 0x0001 table SSH
    
  4. Наконец, настройте правило 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
    

Надеюсь, это должно правильно настроить то, что вы хотите. Вам также необходимо убедиться, что эта конфигурация выживает после перезагрузки! Но я оставляю это вам в качестве упражнения.