Mikrotik резервный канал 3g. Настройка роутера Mikrotik с резервным интернетом

Д оброе время суток. Замарочился я на днях организацией отказоустойчивости своего CCR1036-8G-2S+. Перелопатил много материала в интернете, но большинство из них мне не подходило. И тут я наткнулся на полезную которая целиком и полностью подходит для решения моих задач. Изложенная ниже настройка 100% рабочий вариант.


Мы уже рассматривали вариант подключения двух провайдеров Интернет к одному маршрутизатору, под управлением операционной системы Mikrotik RouterOS . Однако, это был самый простой вариант. Который не всегда может подойти в тех или иных условиях. Поэтому сегодня, мы возьмем ряд конкретных примеров настройки маршрутизатора с условием подключения к двум провайдерам, и более подробно остановимся на некоторых нюансах настройки Firewall, NAT, маршрутизации и балансировки нагрузки или использования второго канала в качестве резервного.

И так как дальнейший рассказ будет с конкретными примерами, то и начнем его с конкретных условий. У нас есть 2 провайдера. Связь с обоими устанавливается посредством протокола PPPoE. Как настроить соединение с провайдером, подробно описано в этой статье, поэтому этот процесс мы пропустим. Обозначив лишь то, что провайдер №1 у нас подключен к порту Ether1, и имя его PPPoE подключения - ISP1. Провайдер №2, подключен к порту Ether2 и имеет имя PPPoE подключения - ISP2.

Единственный момент, это то, что мы в дальнейшем, будем самостоятельно создавать правила маршрутизации, поэтому при создании подключений к провайдерам, необходимо убрать галочку с пункта Add Default Route на вкладке Dial Out для PPPoE соединения.

NAT

Чтобы наша сеть правильно работала и имела доступ в интернет, нам необходимо настроить NAT. Для этого открываем раздел IP -> Firewall, переходим на вкладку NAT и кнопкой “+”, добавляем новое правило.

На вкладке General, цепучку Chain выбираем scrnat. Значение поля Out. Interface, в данном случае, мы оставляем не заполненным, так как у нас два провайдера, и соответственно 2 разных интерфейса.

Затем на вкладке Action, в качестве параметра для поля Action, ставим значение masquerade.

Сохраняем правило кнопкой OK. Настройку NAT, можно считать законченной.

Firewall

Следующий наш шаг, это настройка функции Firewall, которая призвана защитить нашу локальную сеть.

Переходим на вкладку Filter Rules, где нам предстоит создать ряд основных правил, согласно которым, будет организованно прохождение пакетов через наш маршрутизатор .

Если у вас есть в этом разделе какие либо правила, то их следует сперва удалить.

Новые правила, можно добавлять нажатием кнопки “+”, после чего, например для правила разрешающего ping - chain=input protocol=icmp action=accept, на вкладке General, мы выбираем цепочку Chain - input, а протокол Protocol - icmp.

После чего, на вкладке Action, в качестве параметра для поля Action, выбираем acept.

Это действие, необходимо повторить порядка 14 раз, для четырнадцати разных правил.
Разрешаем Ping

chain=input protocol=icmp action=accept

chain=forward protocol=icmp action=accept

Разрешаем установленные соединения

chain=input connection-state=established action=accept

chain=forward connection-state=established action=accept

Разрешаем родственные соединени я

chain=input connection-state=related action=accept

chain=forward connection-state=related action=accept

Запрещаем не удачные соединения

Chain=input connection-state=invalid action=drop

chain=forward connection-state=invalid action=drop

Разрешаем соединения по протоколу UDP

chain=input protocol=udp action=accept

chain=forward protocol=udp action=accept

Открываем доступ в Интернет для нашей локальной сети. Для тех, у кого префикс локальной сети, отличается от 192.168.0.0/24, поставить вместо этого, свои адрес.

chain=forward src-address=192.168.0.0/24 action=accept

Разрешаем доступ к роутеру, только из локальной сети, как и выше - 192.168.0.0/24 стоит заменить своим адресом.

chain=input src-address=192.168.0.0/24 action=accept

И в конце, запрещаем все остальное

chain=input action=drop

chain=forward action=drop

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

ip firewall filter add chain=input protocol=icmp action=accept

ip firewall filter add chain=forward protocol=icmp action=accept

ip firewall filter add chain=input connection-state=established action=accept

ip firewall filter add chain=forward connection-state=established action=accept

ip firewall filter add chain=input connection-state=related action=accept

ip firewall filter add chain=forward connection-state=related action=accept

ip firewall filter add chain=input connection-state=invalid action=drop

ip firewall filter add chain=forward connection-state=invalid action=drop

ip firewall filter add chain=input protocol=udp action=accept

ip firewall filter add chain=forward protocol=udp action=accept

ip firewall filter add chain=forward src-address=192.168.0.0/24 action=accept

ip firewall filter add chain=input src-address=192.168.0.0/24 action=accept

ip firewall filter add chain=input action=drop

ip firewall filter add chain=forward action=drop

Но каким бы методом, мы это не делали, в итоге, мы должны получить следующее.

Routing
Последним, но одним из самых важных действий, осталось создание маршрутов. Начнем с того, что пометим наши соединения с провайдером. Это необходимо для того, чтобы все пришедшие на интерфейс того или иного провайдера запросы, уходили именно на его интерфейс. Это довольно критично в том случае, если у нас за NAT, есть какие либо ресурсы, к которым необходимо обеспечить доступ из глобальной сети Интернет. Например web-сервер или почтовый сервер и т.д. О том как организовать работу таких сервисов, мы уже рассматривали в статье Расширенные настройки Mikrotik RouterOS : перенаправление портов - dstna t.

Для этого, нам необходимо создать два отдельных правила, для каждого провайдера в разделе IP -> Firewall на вкладке Mangle.

На вкладке General, выбираем цепочку Chain как forward, а в качестве In.Interface выбираем интерфейс PPPoE подключения первого провайдера ISP1.

А на вкладке Action, в качестве параметра Action, выбираем mark connection и в появившемся ниже поле New Connection Mark, вписываем имя метки для этого соединения, например ISP1-con.

То же самое, повторяем для второго провайдера. Только в качестве In.Interface выбираем ISP2, а в поле New Connection Mark, вписываем метку для второго соединения ISP2-con.

Теперь, чтобы отправить ответ на пришедший запрос через интерфейс того же провайдера, нам необходимо создать еще 2 правила, которые будут помечать маршруты.

Здесь же, создаем новое правило в котором в качестве цепочки Chain, выбираем значение prerouting, в поле Scr.Address вписываем префикс нашей локальной сети 192.168.0.0/24, а Cjnnection Mark выбираем метку соединения нашего первого провайдера ISP1-con.

Переходим на вкладку Action и в поле Action, выбираем mark routing, а в появившемся ниже поле New Routing Mark, присваиваем метку для маршрута этого провайдера, например ISP1-rt.

Точно такое же привило, создаем и для второго соединения. Только, соответственно, в качестве Connection Mark выбираем ISP2-con, а в качестве New Routing Mark, вписываем ISP2-rt.

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

Например у провайдера №2 - ISP2 есть локальные ресурсы имеющие диапазон адресов 181.132.84.0/22. А через провайдера №1, пинг к игровым серверам онлайн игр, гораздо меньше. И мы знаем что IP адреса этих серверов 90.231.6.37 и 142.0.93.168.

Переходим на вкладку Address Lists раздела IP -> Firewall. И по одному добавляем эти IP адреса или подсети целиком, с именами to-ISP1 или to-ISP2, в зависимости от того, через какого провайдера должно быть обращение к этим ресурсам.

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

А на вкладке Action, Action - mark routing, New Routing Mark - ISP1-rt.

Повторяем тоже самое, для списка адресов второго провайдера. Но соответственно в качестве Dst.Address List, указываем список адресов для второго провайдера to-ISP2. А в качестве метки для маршрута New Routing Mark - ISP2-rt.

И приступаем к самой основной части настройки маршрутизации - созданию статических правил маршрутизации в разделе IP -> Routes.

Если каналы наших обоих провайдеров, практически равны, то добавляем вот такой маршрут: но вкладке General, окна создания маршрута, для Dst.Address пишем 0.0.0.0/0, а в качестве Getway выбираем интерфейсы наших провайдеров ISP1 и ISP2. Все остальные параметры, оставляем без изменений.

В таком варианте, нагрузка на обоих провайдеров, будет распределяться равномерно.

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

Первый Dst.Address - 0.0.0.0/0, Gateway - ISP1.

А второй Dst.Address - 0.0.0.0/0, Gateway - ISP2, Distance - 2.

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

Первый будет иметь Dst.Address - 0.0.0.0/0, Gateway - ISP1, Routing Mark - ISP1-rt, а второй, соответственно Dst.Address - 0.0.0.0/0, Gateway - ISP2, Routing Mark - ISP2-rt


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

В этой статье описана самая полная инструкция, как настроить роутер MikroTik на два провайдера.

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

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

Описание подключений

В примере мы будем использовать роутер MikroTik RB951Ui-2HnD .

В 1-ый порт роутера подключен кабель от 1-го провайдера, во 2-ой порт подключен кабель от 2-го провайдера, порты 3-5 и Wi-Fi используются для подключения компьютеров локальной сети.

1-й порт будет настроен на динамическое получение сетевых настроек от провайдера по DHCP. Провайдер выдает роутеру динамический IP-адрес 10.10.10.10

2-й порт будет настроен вручную на статический IP-адрес 20.20.20.20, шлюз 20.20.20.1 и маску 255.255.255.0

Сброс конфигурации по умолчанию

С помощью программы Winbox сбрасываем заводскую конфигурацию по умолчанию, чтобы настроить роутер MikroTik на два провайдера с нуля:


После перезагрузки в Winbox выберите в списке MAC адрес устройства, и подключитесь с пользователем admin без пароля.

Настройка 1-го WAN порта

Настраиваем 1-й порт на динамическое получение сетевых настроек от провайдера по DHCP.

  1. Откройте меню IP - DHCP Client ;
  2. В появившемся окне в списке Interface выберите интерфейс ether1 ;
  3. Add Default Route выберите No ;
  4. Нажмите кнопку OK .

Теперь мы получили IP адрес от провайдера, который отображается в столбце IP Address .

Проверим, что есть подключение к интернет. Откройте меню New Terminal и введите команду ping ya.ru . Как видите, пинг есть.

Настройка 2-го WAN порта

2-й порт настраиваем на статический IP-адрес 20.20.20.20, шлюз 20.20.20.1 и маску 255.255.255.0

  1. Откройте меню IP - Addresses ;
  2. Нажмите кнопку Add (синий крестик);
  3. В появившемся окне в поле Address пропишите статический IP адрес / маску подсети 20.20.20.20/24 ;
  4. В списке Interface выберите интерфейс ether2 ;
  5. Нажмите кнопку OK .

Настоим IP-адрес интернет шлюза:

  1. Откройте меню IP - Routes ;
  2. Нажмите кнопку Add (синий крестик);
  3. В появившемся окне в поле Gateway пропишите IP адрес шлюза 20.20.20.1 ;
  4. Нажмите кнопку OK .

Добавим IP-адрес DNS сервера:

  1. Откройте меню IP - DNS ;
  2. В поле Servers пропишите IP адрес DNS сервера, например 8.8.8.8 ;
  3. Уберите галочку Allow Remote Requests ;
  4. Нажмите кнопку OK .

Проверим, что есть подключение к интернет. Отключите кабель первого провайдера, откройте меню New Terminal и введите команду ping ya.ru .

Пинги идут, значит все настроено правильно. Можно подключить кабель первого провайдера обратно.

Настройка LAN портов 3-5 и Wi-Fi

LAN порты 3-5 будут объединены с Wi-Fi интерфейсом в единую локальную сеть, к которой будут подключаться компьютеры.

Объединяем LAN порты 3-5 в свитч

  1. Откройте меню Interface ;
  2. Сделайте двойной щелчок мыши по интерфейсу ether4;
  3. В списке Master Port выберите ether3 (главный порт нашего свитча);
  4. Нажмите кнопку ОК .

Повторите тоже самое для интерфейса ether5 .

Напротив портов ether4 и ether5 появится буква S (Slave - ведомый).

Создаем интерфейс Bridge-local и объединяем в нем LAN порты и Wi-Fi

Чтобы LAN порты 3-5 объединить с Wi-Fi в одну сеть, нужно создать bridge интерфейс, и добавить в него мастер порт свитча ether3 и Wi-Fi интерфейс wlan1 .

Создаем интерфейс bridge-local :

  1. Откройте меню Bridge ;
  2. Нажмите кнопку Add (синий крестик);
  3. В поле Name пропишите имя интерфейса bridge-local ;
  4. Нажмите кнопку OK .

Добавляем главный порт свитча ether3 в bridge-local :

  1. Перейдите на вкладку Ports и нажмите кнопку Add (синий крестик);
  2. В списке Interface выберите главный ethernet порт свитча ether3 ;
  3. В списке Bridge выберите интерфейс bridge-local ;
  4. Нажмите кнопку OK .

Добавляем Wi-Fi интерфейс в bridge-local :

  1. На вкладке Ports нажмите кнопку Add (синий крестик);
  2. В списке Interface выберите беспроводной интерфейс wlan1 ;
  3. В списке Bridge выберите интерфейс bridge-local ;
  4. Нажмите кнопку OK .

Назначаем IP-адрес интерфейсу bridge-local :

  1. Откройте меню IP - Addresses ;
  2. Нажмите кнопку Add (синий крестик);
  3. В поле Address введите IP-адрес и маску локальной сети 192.168.88.1/24 ;
  4. В списке Interface выберите интерфейс локальной сети bridge-local ;
  5. Нажмите кнопку OK .

Настраиваем DHCP сервер локальной сети.

Чтобы компьютеры, подключенные к роутеру, получали сетевые настройки автоматически, настроим DHCP сервер:


Настройка Wi-Fi

Сначала включим Wi-Fi:

  1. Откройте меню Wireless ;
  2. Нажмите левой кнопкой мыши на интерфейсе wlan1 и нажмите кнопку Enable (синяя галочка).

Создаем пароль для подключения к точке доступа MikroTik:

  1. Откройте вкладку Security Profiles и сделайте двойной щелчок левой кнопкой мыши по default ;
  2. В появившемся окне в списке Mode выберите dynamic keys ;
  3. Поставьте галочку напротив регистрации по протоколу WPA2 PSK ;
  4. В поле WPA2 Pre-Shared Key введите пароль для подключения к Wi-Fi точке;
  5. Нажмите кнопку OK .

Настраиваем параметры Wi-Fi точки MikroTik:

  1. Откройте вкладку Interfaces и сделайте двойной щелчок левой кнопкой мыши на Wi-Fi интерфейсе wlan1 , чтобы зайти в его настройки;
  2. Перейдите на вкладку Wireless ;
  3. В списке Mode выберите режим работы ap bridge ;
  4. В списке Band выберите 2GHz-B/G/N (в каких стандартах будет работать Wi-Fi точка);
  5. В списке Channel Width укажите ширину канала 20/40Mhz HT Above , чтобы беспроводные устройства смогли подключиться на максимальной скорости с шириной канала 40 МГц;
  6. В списке Frequency укажите, на какой частоте будет работать Wi-Fi;
  7. В поле SSID укажите имя Wi-Fi сети;
  8. Нажмите кнопку OK .

Настройка NAT

Чтобы компьютеры получили выход в интернет, необходимо настроить NAT.

Добавляем правило NAT для первого провайдера:


Добавляем правило NAT для второго провайдера:


Теперь на подключенных к роутеру компьютерах должен появиться интернет. Проверьте это.

Настройка переключения интернет каналов между двумя провайдерами

Для настройки переключения интернет каналов между двумя провайдерами будем использовать маршруты (Routes) и встроенную утилиту Netwatch .

У нас будет два маршрута, через которые может идти интернет трафик. Весь трафик будет идти по умолчанию через 1-го провайдера.

Если вдруг пропадет связь с 1-ым провайдером, то мы активируем 2-ой маршрут, и весь трафик пойдет через 2-го провайдера.

Как только восстановится связь через 1-го провайдера, мы деактивируем 2-ой маршрут, и весь трафик пойдет через 1-го провайдера.

Утилита Netwatch поможет пинговать ip-адрес в интернете и выполнять скрипты, если ip-адрес перестал пинговаться или снова начал. Она будет выполнять активацию и деактивацию маршрута.

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

  1. Откройте меню IP - Routes ;
  2. Кликните левой кнопкой мыши по маршруту первого провайдера со шлюзом 10.10.10.1 unrechable ;
  3. Нажмите кнопку удалить (красный минус).

Теперь изменим параметры маршрута второго провайдера:


  1. Откройте меню IP - DHCP Client ;
  2. Сделайте двойной щелчок левой кнопкой мыши на интерфейсе ether1 ;
  3. Перейдите на вкладку Status ;
  4. Выпишите IP-адрес шлюза из поля Gateway . Он будет нужен при создании маршрута через первого провайдера.

Теперь добавляем маршрут через первого провайдера:


3-й маршрут понадобится для того, чтобы сервер Google по умолчанию пинговался только через 1-го провайдера.


Также добавим в Firewall правило, которое запретит пинговать ip-адрес 8.8.4.4 через 2-го провайдера. Иначе утилита Netwatch подумает, что связь с 1-ым провайдером восстановилась, и будет постоянно переключать маршруты по кругу.


Netwatch будет проверять связь с интернетом путем пингования сервера Google с IP-адресом 8.8.4.4. Как только сервер перестанет пинговаться, выполнится скрипт, который активирует 2-й маршрут и трафик пойдет через 2-го провайдера. Как только связь через 1-го провайдера восстановится, то выполнится другой скрипт, который деактивирует 2-й маршрут и трафик пойдет через 1-го провайдера.


Проверка переключения интернета между двумя провайдерами

Проверим, как работает переключение между двумя провайдерами.


Настройка роутера MikroTik на два провайдера работает правильно. Теперь можно увеличить интервал пингования сервера Google.


На этом настройка маршрутизатора Микротик на два провайдера завершена.

В статье описана подробная инструкция как настроить резервирование канала интернет от двух мобильных операторв на роутере Mikrotik.

Интернет Mikrotik будет получать от двух встраиваемых роутеров Tandem-4GL-OEM . В роутерах будут использованы SIM-карты двух различных мобильных операторов. Один из операторов будет использован в качестве основного канала интернет, второй - в качестве резервного. При пропадании интернета на основном канале, Mikrotik должен переключить интернет на резервный канал. При возобновлении работы основного - автоматически переключить на основной канал. В результате получится очень стабильный интернет-канал от двух мобильных операторов, который может быть использован на удаленных объектах, где используется 3G/4G интернет.

Интересно:


Комплект для усиления мобильного итнернета
Роутер Tandem-4GL-OEM
Роутер Tandem-4GR
Модем Tandem-4G+

Установка роутера в автомобиль

Для интернета задействуем два порта роутера Mikrotik: 1-й и 5-й. 5-й порт (POE out) имеет возможность запитывать устройства по витой паре (Power over Ethernet), поэтому удобно использовать его, роутер Tandem-4GL-OEM имеет возможность питания по PoE.

Оба порта будут настроены на динамическое получение сетевых настроек по DHCP. По умолчанию роутеры Tandem-4GL-OEM имеют собственный IP адрес 192.168.1.1. Мы будем использовать 2 таких роутера, поэтому один из них необходимо настроить на другую подсеть.

Для этого подключите Tandem-4GL-OEM напрямую к компьютеру и зайдите в Web-интерфейс по адресу 192.168.1.1. Перейдите в меню Сеть - Интерфейсы - нажать кнопку Редактировать интерфейса LAN.

Пропишите новый IP-адрес для роутера. Мы вводим 192.168.2.1. При этом роутер автоматически будет раздавать IP адреса уже в этой подсети. Нажмите Сохранить.

Переходим к настройке Mikrotik . Роутер с IP 192.168.2.1 будет резервным каналом интернет, подключим его в 1-й порт роутера Mikrotik. 5-й порт с PoE будет основным интернетом.

Запускаем Winbox и подключаемся к роутеру по MAC адресу. (написан на самом роутере). По умолчанию пароль - admin, пароль не задан

С помощью программы Winbox сбрасываем заводскую конфигурацию по умолчанию, чтобы настроить роутер MikroTik на два провайдера с нуля:

  1. Откройте меню System - Reset Configuration;
  2. Поставьте галочку No Default Configuration;
  3. Нажмите Reset Configuration.

Переподключитесь к Mikrotik с помощью Winbox.

Настроим LAN порты 2-4 и Wi-Fi. Эти порты будут объединены в единую локальную сеть. Для этого создадим интерфейс Bridge и добавим в него интерфейсы ethe2-ether4 и wlan1.

Открываем меню Bridge, нажимаем +, в поле Name прописываем имя интерфейса, нажимаем ОК.

Переходим во вкладку Ports меню Bridge. Добавим все порты ether2-erher4 и wlan1.

  1. Для этого нажимаем +;
  2. В списке Interface выберите ether2;
  3. В списке Bridge выберите интерфейс bridge-local, нажмите ОК.

Повторите операцию для остальных портов ether и для Wi-Fi - wlan1.

Назначаем IP-адрес интерфейсу bridge:

  1. Откройте меню IP - Addresses;
  2. Нажмите кнопку +;
  3. В поле Address введите IP-адрес и маску локальной сети 192.168.88.1/24;
  4. В списке Interface выберите интерфейс локальной сети bridge, нажмите ОК.

Настраиваем DHCP сервер локальной сети.

Чтобы компьютеры, подключенные к роутеру, получали сетевые настройки автоматически, настроим DHCP сервер:

Откройте меню IP - DHCP Server и нажмите кнопку DHCP Setup

  1. В первом окне выбираем интерфейс bridge, нажимаем Next;
  2. Во втором окне настраивается сеть для раздачи DHCP, оставим без изменения, Next;
  3. В третьем окне указывается адрес шлюза, оставляем без изменения, Next;
  4. Диапазон IP адресов, можно оставить без изменения, Next;
  5. Время аренды DHCP, можно оставить без изменения, Next, OK.

Настройка Wi-Fi

  1. Откройте меню Wireless;
  2. Нажмите на интерфейсе wlan1 и нажмите кнопку Enable (синяя галочка).

Создаем пароль для подключения к точке доступа MikroTik:

  1. Откройте вкладку Security Profiles и сделайте двойной щелчок левой кнопкой мыши по default;
  2. В появившемся окне в списке Mode выберите dynamic keys;
  3. Поставьте галочку напротив регистрации по протоколу WPA2 PSK;
  4. В поле WPA2 Pre-Shared Key введите пароль для подключения к Wi-Fi точке; OK.

Настраиваем параметры Wi-Fi точки MikroTik:

  1. Откройте вкладку Interfaces и сделайте двойной щелчок левой кнопкой мыши на Wi-Fi интерфейсе wlan1, чтобы зайти в его настройки;
  2. Перейдите на вкладку Wireless, в списке Mode выберите режим работы ap bridge;
  3. В поле SSID укажите имя Wi-Fi сети, ОК. Также можете настроить другие параметры.

Настройка портов интернета

Настраиваем 5-й порт на динамическое получение сетевых настроек от провайдера по DHCP.

  1. Откройте меню IP - DHCP Client;
  2. Нажмите кнопку Add (синий крестик);
  3. В появившемся окне в списке Interface выберите интерфейс ether1;
  4. Add Default Route выберите No; ОК.

Проделаем то же самое для порта ether1

Настройка переключения интернет каналов между двумя провайдерами

Для настройки переключения интернет каналов между двумя провайдерами будем использовать маршруты (Routes) и встроенную утилиту Netwatch.

У нас будет два маршрута, через которые может идти интернет трафик. Весь трафик будет идти по умолчанию через 1-го провайдера.

Если вдруг пропадет связь с 1-ым провайдером, то мы активируем 2-ой маршрут, и весь трафик пойдет через 2-го провайдера.

Как только восстановится связь через 1-го провайдера, мы деактивируем 2-ой маршрут, и весь трафик пойдет через 1-го провайдера.

Утилита Netwatch поможет пинговать ip-адрес в интернете и выполнять скрипты, если ip-адрес перестал пинговаться или снова начал. Она будет выполнять активацию и деактивацию маршрута.

Добавим 2 маршрута. Для этого зайдем в меню IP - Routes. Нажмите +, чтобы добавить новый маршрут

Введите параметры как на рисунке и нажмите кнопку Comment.

В поле Comment введите ISP1. Это нужно для того, чтобы определить маршрут при переключении на резерв и обратно.

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

  • В поле Gateway впишем 192.168.2.1
  • В поле Distance - 3
  • В Comment - ISP2

Добавим маршрут для команды ping. Снова добавьте новый маршрут кнопкой +. Введите данные как на изображении, нажмите Comment. Мы назвали интерфейс Google, т.к. именно этот адрес будем пинговать.

Добавим в Firewall правило, которое запретит пинговать ip-адрес 8.8.4.4 через 2-го провайдера. Иначе утилита Netwatch подумает, что связь с 1-ым провайдером восстановилась, и будет постоянно переключать маршруты по кругу.

  1. Откройте меню IP - Firewall и перейдите на вкладку Filter Rules;
  2. Нажмите кнопку +;
  3. В списке Chain выберите Output;
  4. В поле Dst. Address введите адрес сервера 8.8.4.4;
  5. В списке Out. Interface выберите ether1;
  6. Перейдите на вкладку Action;

В списке Action выберите Drop, нажмите ОК.

Настройка скрипта переключения на резервный канал

Netwatch будет проверять связь с интернетом путем пингования сервера Google с IP-адресом 8.8.4.4. Как только сервер перестанет пинговаться, выполнится скрипт, который активирует 2-й маршрут и трафик пойдет через 2-го провайдера. Как только связь через 1-го провайдера восстановится, то выполнится другой скрипт, который деактивирует 2-й маршрут и трафик пойдет через 1-го провайдера.

  1. Откройте меню Tools - Netwatch;
  2. Нажмите кнопку добавить (синий плюсик);
  3. В поле Host укажите сервер Google 8.8.4.4, который утилита будет пинговать;
  4. В поле Interval укажите интервал времени, через который будет пинговаться сервер, мы установили 15 с.
  5. Перейдите на вкладку Down;

На вкладке Down вставляем скрипт /ip route enable

Этот скрипт будет активировать маршрут через второго провайдера, если перестанет пинговаться сервер Google. Перейдите на вкладку Up.

На вкладке Up вставляем скрипт /ip route disable .

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

Проверка переключения интернета между двумя провайдерами

Откройте меню IP - Routes. Маршрут второго провайдера должен быть серого цвета, т.е. не активен.

Отсоедините от роутера кабель 1-го провайдера. В Routes маршрут второго провайдера должен активироваться.

Проверьте, появился ли интернет. Подключите обратно кабель от основного интернета. В течение 15 с должно произойти переключение.

Для экономии трафика желательно увеличить время пингования от 1 мин.

Возможны так же и другие варинаты резервирования.

На дистрибьютерском форуме юзер под ником Barvinok начал писать
цикл статей, пытаясь объединить и систематизировать накопленную базу
знаний по Mikrotik в целом и по теме двух провайдеров в частности. С его
позволения я копирну все к себе на страничку. Желающие могут сходить к
первоисточнику http://mikrotik.ru/forum/viewtopic.php?f=1 5&t=3280
Настройка роутера с нуля.
Этим разделом восполню скудность прикладной части.
Согласно названию темы я настраиваю роутер именно на двух провайдеров. Модель роутера я подразумеваю RB7xx series.
Источники:
Обзор и настройка Mikrotik RB751U-2HnD в режиме беспроводного роутера с подключением к сети Интернет.
Сергей Лаговский: MikroTik - Начальная настройка

Источника
читать обязательно. Я не будут писать руководство "Микротик для
домохозяек", типа "возьмите кабель в правую руку...". Здесь я обозначу
лишь вехи, ступени. А как именно это делать - в вышеозначенных
источниках.
Я пользуюсь командной строкой терминала через Winbox и все примеры буду приводить именно в таком виде.
1. Сбрасываем начальные настройки:

/system reset-configuration


2. Скачиваем Upgrade package и мышкой перетаскиваем в Winbox. Далее:

/system reboot

и после перезагрузки:

/system routerboard upgrade


3. Создаю мост из последних трёх портов:

/interface bridge
add name=Local_Net
add bridge=Local_Net interface=ether3
add bridge=Local_Net interface=ether4
add bridge=Local_Net interface=ether5


4. Назначаю этому мосту IP-адрес:

/ip address add address=192.168.1.1/24 interface=Local_Net


5. Настраиваем на нём же DHCP-сервер:

/ip dhcp-server setup

В качестве DNS-сервера пусть выдаёт адрес самого Микротика: 192.168.1.1. Чуть позже поясню, почему так.

6. Разрешаем роутеру отвечать на запросы DNS:

/ip dns set allow-remote-requests=yes

Переведём дух: теперь мы добились коробочной функциональности D-Link:)

7. По совету Сергея Лаговского я всегда меняю имя суперпользователя:

/user add name=supername password=superpass group=full
/quit

Заходим под новым пользователем и отключаем старого:

/user disable admin

8. Назначаем сервер времени и часовой пояс:

/system ntp client set enabled=yes mode=unicast primary-ntp=83.229.137.52 secondary-ntp=213.141.146.135
/system clock set time-zone-name=Europe/Moscow

9. Настраиваем интернет-подключения.
Я возьму сложный случай двух неравнозначных провайдеров:


  • Первый
    провайдер даёт интернет через PPPoE по ADSL: 8Мбит входящий/0,8 Мбит
    исходящий. IP-адрес и прочие сетевые настройки выдаются провайдером
    динамически.

  • Второй - очень качественный, но дорогой по оптике: симметричный канал 1 Мбит. IP-адрес и настройки статические (постоянные)

Значица нам нужно основной поток пользователей запустить через ADSL, а избранные сервисы реального времени (VoIP) - по оптике.

9.1. Настраиваем первого провайдера.
Переводим наш ADSL-модем в режим моста (Bridge). Втыкаем кабель в первый порт (ether1).
Создаём и настраиваем интерфейс PPPoE:

/interface pppoe-client add name=UTK user=ppp_user password=ppp_pasw use-peer-dns=yes interface=ether1

Если бы провайдер был единственный, можно было бы добавить "add-default-route=yes ". Но у нас другая задача.
"use-peer-dns " означает, что мы будем использовать DNS-сервера, назначенные провайдером при этом подключении.

/ip address print
/ping mail.ru

что бы убедиться, что соединение работает.

9.2. Настраиваем второго провайдера.
Втыкаем кабель из конвертера среды во второй порт и вводим настройки вручную:

/ip address add address=80.45.21.34/30 interface=ether2

Если провайдер даёт свои DNS-сервера, можно их явно задать:

/ip dns set servers=ip_server1,ip_server2

А можем назначить любые общедоступные, вроде гугловских: 8.8.8.8,8.8.4.4.

Напомню,
что благодаря п.6 наш маршрутизатор является DNS-сервером для локальной
сети. Но сам он, как ласковое теля - двух маток сосёт, произвольно
обращаясь к DNS-серверам любого провайдера.

10. Включаем трансляцию адресов.
Для провайдера 1:

/ip firewall nat add chain=srcnat action=masquerade protocol=tcp out-interface=UTK


Можно так же поступить и для второго, но мы поэстетствуем . Поскольку адрес у нас постоянный, используем не masquerade, а SNAT:

/ip firewall nat add chain=srcnat action=src-nat protocol=tcp src-address=192.168.1.0/24 to-addresses=80.45.21.34

Если бы наши провайдеры были равнозначны, то можно было бы сделать так:

/ip route add dst-address=0.0.0.0/0 gateway=UTK,ether2 check-gateway=ping

Мы сразу получаем отказоустойчивость и равномерное распределение нагрузки (равноценные пути).
Советую для пробы так сделать и поиграться с компьютеров локалки в
"tracert mail.ru", отключая то один, то другой внешний интерфейс -
просто, что б проверить.
Если провайдеры не равны лишь толщиной канала, можно поступить так:

/ip route add dst-address=0.0.0.0/0 gateway=UTK,UTK,ether2 check-gateway=ping

Теперь через первого провайдера пойдёт вдвое больше потоков, чем через второго.

Но наша задача чуть сложнее, поскольку провайдеры не равны не только количественно, но и качественно .
11. Поэтому мы отдельно назначим им маршруты и дадим разные предпочтения (distance).
Для первого провайдера проще всего сделать так:

/interface pppoe-client set 0 add-default-route=yes

Хотя мы могли это сделать и в п.9.1, но я решил выделить для порядка.
Для второго провайдера - так:

/ip route add dst-address=0.0.0.0/0 gateway=80.45.21.34 distance=2 check-gateway=ping


Теперь вся наша сеть ходит через провайдера 1, а если он падает - через провайдера 2.

12. Выделим важные потоки (Skype, SIP), которые нужно отправлять в сеть через провайдера 2.

Здесь я сделаю отступление, посвящённое маркировке (отметке) пакетов и соединений, поскольку эта тема достаточно любопытна.

Отступление 4
Маркировка

Используется
для установки меток для определенных пакетов. Это действие может
выполняться только в пределах таблицы mangle. Установка меток обычно
используется для нужд маршрутизации пакетов по различным маршрутам, для
ограничения трафика и т.п.. За дополнительной информацией вы можете
обратиться к Linux Advanced Routing and Traffic Control HOW-TO. Не
забывайте, что "метка" пакета существует только в период времени пока
пакет не покинул брандмауэр, т.е. метка не передается по сети. Если
необходимо как-то пометить пакеты, чтобы использовать маркировку на
другой машине, то можете попробовать манипулировать битами поля TOS.


Manual:IP/Firewall/Mangle на Mikrotik Wiki.

При
прочтении и написании правил важно очень ясно понимать, где мы
указываем признак, по которому выделяем пакет из потока, а где
производим действие с пакетом (принимаем, отбрасываем или клеймим таким
признаком).
Рассмотрим два правила из статьи о PCC :
/ip firewall mangle

add

in-interface=ether2 new-connection-mark=l2tp-out1_conn passthrough=yes
per-connection-classifier=src-address:2/0 src-address=172.16.0.0/16
add
action=mark-connection chain=prerouting dst-address-type=!local
in-interface=ether2 new-connection-mark=l2tp-out2_conn passthrough=yes
per-connection-classifier=src-address:2/1 src-address=172.16.0.0/16

add
action=mark-routing chain=prerouting connection-mark=l2tp-out1_conn
in-interface=ether2 new-routing-mark=to_l2tp-out1 passthrough=yes
add
action=mark-routing chain=prerouting connection-mark=l2tp-out2_conn
in-interface=ether2 new-routing-mark=to_l2tp-out2 passthrough=yes

В первом правиле мы помечаем соединение (action=mark-connection) в цепочке prerouting. Далее следуют признаки ,
по которым мы определяем соединение, должное быть помеченным: вид
адреса назначения - любой, кроме адреса самого маршрутизатора
(dst-address-type=!local), входящий интерфейс - ether2
(in-interface=ether2), адрес источника - любой компьютер из подсети
172.16.0.0/16. Далее следует чудная команда:
per-connection-classifier=src-address:2/0. Так мы разбиваем поток
пакетов, соответствующих этим признакам, надвое.
После чего одной части потока назначаем метку l2tp-out1_conn, а второй l2tp-out2_conn.
Passthrough
переводится как "насквозь". Вообще-то каждый пакет последовательно
проверяется на соответствие каждому правилу до первого совпадения. Как
только совпало - он тут же передаётся в следующую таблицу (в данном
случае - DNAT) или уничтожается, если действие DROP. Но если указано
passthrough=yes, пакет передаётся следующему по списку правилу в этой же
таблице.

Следующим правилом мы ставим отметку о предпочтительном
пути дальнейшего следования (action=mark-routing). Все соединения,
отмеченные l2tp-out1_conn (connection-mark) мы вдобавок клеймим меткой
to_l2tp-out1 (new-routing-mark). А потом и со второй половиной потока
поступаем соответственно.

В чем глубинный смысл этого последовательного клеймения и почему нельзя сразу ставить new-routing-mark, я пока что не понял. Но в официальном руководстве на Микротик Wiki делается так же.
Может кто-то объяснит?

Вообще, существует три действия со сходным названием, в которых не мешало бы разобраться:


  • mark-connection

  • mark-packet

  • mark-routing

Начнём с простого.

mark-routing
- place a mark specified by the new-routing-mark parameter on a packet.
This kind of marks is used for policy routing purposes only

Это действие ставит метку, которая используется исключительно при выборе пути дальнейшей пересылки. К примеру:

/ ip route
add dst-address=0.0.0.0/0 gateway=10.111.0.1 routing-mark=to_ISP1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.112.0.1 routing-mark=to_ISP2 check-gateway=ping


Но на случай обрыва одного из путей, следует в добавок делать общие правила без привязки к меткам:

add dst-address=0.0.0.0/0 gateway=10.111.0.1 distance=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.112.0.1 distance=2 check-gateway=ping

А вот чем отличаются mark-packet от mark-connection?
Очевидно, тем же, чем отличается пакет от соединения.
Читаем :

Marking
each packet is quite resource expensive especially if rule has to match
against many parameters from IP header or address list containing
hundreds of entries

Клеймить каждый пакет очень дорогое
удовольствие, особенно, если правило содержит много признаков для
сравнения из заголовка IP-пакета или адресного листа, содержащего сотни
записей.
Дальше говорится о непосильном труде маршрутизаторов,
обременённых сложными правилами проверки каждого пакета в 100-мегабитных
сетях. Вычислительная нагрузка на процессор стремительно растёт, что,
по сути, приводит к невозможности использования этого способа маркировки
при управлении большими потоками данных.

Цитата:

Fortunately if connection tracking is enabled, we can use connection marks to optimize our setup.

К счастью, если включено отслеживание соединений, мы можем помечать соединения, что гораздо лучше!
Вот
оно - преимущество работы с образностью высокого уровня. Чем выше
уровень обобщения, тем меньше труда тебе приходится затрачивать на
достижение цели!

/ip firewall mangle
add chain=forward protocol=tcp port=!80 dst-address-list=first connection-state=new action=mark-connection \
new-connection-mark=first
add chain=forward connection-mark=first action=mark-packet new-packet-mark=first passthrough=no

Add chain=forward protocol=udp dst-address-list=second connection-state=new action=mark-connection \
new-connection-mark=second
add chain=forward connection-mark=second action=mark-packet new-packet-mark=second passthrough=no


Цитата:

Now
first rule will try to match data from IP header only from first packet
of new connection and add connection mark. Next rule will no longer
check IP header for each packet, it will just compare connection marks
resulting in lower CPU consumption. Additionally passthrough=no was
added that helps to reduce CPU consumption even more.


Значица, первое правило проверяет данные лишь в заголовке первого пакета нового соединения, считая, что в пределах этого соединения все прочие будут с ним совпадать. Следующее правило, вместо того, что бы проверять заголовок каждого пакета смотрит только на метку соединения, что значительно снижает нагрузку на CPU. В добавок правило "passthrough=no" сразу прерывает прохождение пакетов по этой таблице переводя в следующую, что так же разгружает CPU!

Ооу... Хитрый приём! Теперь понятно, почему в примере с PCC мы сначала помечали соединение, а потом на основании этой метки ставили второю - о маршрутизации.
Но возникают вопросы.
Первый: а как можно понять, что пакет принадлежит тому или иному соединению не заглянув в его заголовок? Очевидно - никак. Значит каждый пакет в любом случае обрабатывается отдельно, но происходит это за пределами IPTables и это не вызывает особой нагрузки на центральный процессор, в отличии от обработки по списку правил внутри IPTables.

И второй вопрос: как можно пометить соединение?
Если с пакетом всё относительно понятно: у него есть заголовок, в который мы вносим изменения, то что является вещественным выражением понятия "соединение", с которым мы можем хоть как-то работать? Что мы помечаем?