Shorewall - фреймворк для построения фаерволла
Настройка роутинга с двумя провайдерами через shorewall. И так дано машинароутер с установленным shorewall, задача сделать на ней 2 канала. Немного о самом shorewall, - это такой framework для работы c iptables, если вам надоелj вручную писать правила, то этот инструмент решит почти все ваши проблемы.
Конфигурация shorewall
Продолжение внутри …
для таких задач в shorewall предусмотрен файл providers, в котором прописываются провайдеры
ls /etc/shorewall/providers #NAME NUMBER MARK DUPLICATE INTERFACE GATEWAY OPTIONS COPY skynet 1 1 main eth0 212.*.*.* track,balance eth1 okasama 2 2 main eth2 94.*.*.* track,balance eth1
Некоторые поля опишу (а подробнее вот тут http://www.shorewall.net/MultiISP.html)
NAME - Название провайлдера, может быть числом или сторкой используется для генерации роутинга NUMBER - Порядковый номер MARK - Маркировка трафика INTERFACE - интерфейс в который подключен шнур с интернетом OPTIONS - тут может быть 4 параметра track,balance,loose,options о каждом из них подробно написано по ссылке . COPY - интерфейсы на которые шлётся трафик
Как видим в моём случае идёт балансировка трафика на через оба канала, можно также указать вес (параметр weitght=X подбробнее об этом по ссылке опять же) следущее что меня интересует это чтобы ssh и smtp ходили по одному каналу, для этого правим этот файл
/etc/shorewall/tcrules (http://www.shorewall.net/manpages/shorewall-tcrules.html) #MARK SOURCE DEST PROTO DEST SOURCE USER TEST LENGTH TOS # PORT(S) PORT(S) 1:P eth1 0.0.0.0/0 tcp 25 1 $FW 0.0.0.0/0 tcp 25 1:P eth1 0.0.0.0/0 tcp 22 1 $FW 0.0.0.0/0 tcp 22
Маркируем трафик в соотвествии с провайдером, и в результате всё уходит как надо. Всё.