Mikrotik и два провайдера

Понадобилось организовать работу с двумя подключениями к интернету одновременно. Один провайдер Эр-Телеком, второй – Ростелеком. Оба подключаются по PPPOE. Заявленная скорость подключения примерно одинаковая.
Опишу кратко настройку маршрутизатора Mikrotik для одновременной работы с двумя провайдерами. В Сети можно немало найти руководств о настройке одновременной работы двух подключений. Однако не все они подходили именно под мой случай.

На самом деле не так важно два провайдера или больше, смысл настроек аналогичный.

В моём случае:
Эр-Телеком: pppoe-out1, ip-адрес: 94.144.177.177, routing-mark: to-isp1, connection-mark: to-isp1c
Ростелеком: pppoe-out2, ip-адрес: 85.237.51.51, routing-mark: to-isp2, connection-mark: to-isp2c
Локальная сеть: 192.168.1.0/24
Сервер: 192.168.1.15

Таким образом требовалось:
1) разделить нагрузку по подключениям поровну (!).
2) обеспечить возможность подключения к компьютеру из интернет (DNAT)

С первым всё относительно просто. Предполагается что маскарадинг для локальной сети уже настроен.

/ip firewall nat
add chain=srcnat action=masquerade src-address=192.168.1.0/24

Нужно создать статическое правило маршрутизации:

/ip route 
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=pppoe-out1,pppoe-out2

В случае статической маршрутизации в качестве gateway указываются IP-адреса шлюза. А вот для туннельных протоколов лучше будет использовать имя интерфейса. Это нужно если шлюз назначается автоматически при установлении сессии.

Если с доступом к интернет-ресурсам все относительно просто, то с подключением из глобальной сети к компьютеру немного сложнее.
Во-первых придется создать правила NAT для второго подключения (читай второго IP-адреса) аналогично первому.

/ip firewall nat
 
add chain=dstnat action=dst-nat to-addresses=192.168.1.15 to-ports=80 protocol=tcp dst-address=94.144.177.177 dst-port=80
 
add chain=dstnat action=dst-nat to-addresses=192.168.1.15 to-ports=80 protocol=tcp dst-address=85.237.51.51 dst-port=80

Теперь следует добиться того, чтобы ответ на запрос через какого-либо провайдера уходил на его же шлюз. Для этого потребуется маркировка маршрутов и соединений.

Маршрут по-умолчанию для маркированных пакетов:

/ip route
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=pppoe-out1 routing-mark=to-isp1
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=pppoe-out2 routing-mark=to-isp2

Эти два правила промаркируют входящие соединения для каждого из провайдеров.

/ip firewall mangle
add action=mark-connection chain=forward disabled=no in-interface=pppoe-out1 new-connection-mark=to-isp1c passthrough=yes 
add action=mark-connection chain=forward disabled=no in-interface=pppoe-out2 new-connection-mark=to-isp2c passthrough=yes 

Следующая пара правил нужна если только необходимо ходить на внешние ресурсы строго через определенного провайдера. Например на локальные ресурсы, доступ на которые возможен только из «домашней» сети провайдера. Таким образом, к ресурсам Эр-Телеком подключаемся через Эр-Телеком, к Ростелеком через Ростелеком.

/ip firewall mangle
add action=mark-routing chain=prerouting comment="to dom.ru" connection-state=new disabled=no dst-address=!94.144.177.177 dst-address-list=domnet \ 
    new-routing-mark=to-isp1 passthrough=yes src-address=192.168.1.0/24
add action=mark-routing chain=prerouting comment="to rtk" connection-state=new disabled=no dst-address=!85.237.51.51 dst-address-list=rtknet \ 
    new-routing-mark=to-isp2 passthrough=yes src-address=192.168.1.0/24  

Для этих правил следует предварительно создать списки ip-адресов domnet и rtknet. Например так:

/ip firewall address-list 
add list=domnet address=94.181.128.0/18 disabled=no
add list=rtknet address=85.237.0.0/16 disabled=no

Последняя пара правил направляет ответы на шлюз того провайдера которому принадлежат соединения:

/ip firewall mangle
add action=mark-routing chain=prerouting connection-mark=to-isp1c disabled=no new-routing-mark=to-isp1 passthrough=yes src-address=192.168.1.0/24 
add action=mark-routing chain=prerouting connection-mark=to-isp2c disabled=no new-routing-mark=to-isp2 passthrough=yes src-address=192.168.1.0/24 

Неплохо, подмечено много актуальных тонкостей в посте. Актуально написано!

Галерея

Вот как-то так...

img

HP

img

omni pcx office (Alcatel)

img

Опрос

Какую из *nix-систем вы используете дома?
Debian
16%
Mandriva
7%
Ubuntu
28%
Kubuntu
4%
Gentoo
11%
Slackware
7%
FreeBSD
19%
РУС-BSD
1%
Open/NetBSD
0%
Использую только liveCD
1%
Такого дома не держу...
7%
Всего голосов: 242