Mikrotik и BeeLine

У моего старого домашнего провайдера начались проблемы. Причем эти проблемы приобрели регулярность. Решил попробовать домашний итернет от пчелайна.
Из-за особенностей организации сети пчелайна и фич микротика, подружить их между собой достаточно тяжело. Добрые люди написали толковый мануал, огромно спасибо им за это. Но, как обычно, в жизни не все так как в мануале 🙂 Учитывая, что старый провайдер пока от микротика не отключается, провод пчелайна был засунут в отключенный от общего свича интерфейс (ether5), появились маленькие тонкости.

1. Сначала подключитесь виндовым клиентом напрямую к сети  пчелок и запишите ip адреса DNS и VPN серверов пчелайна.

2. Почему то пчелайн DHCP сервер не отдает микротиковскому клиенту маршрут по умолчанию. Виндовому клиенту дает, микротику не дает. Поэтому приходится прописывать маршруты к сетям где находятся DNS и VPN серверам руками. Да и вообще, какой то странный их DHCP, выдал кучу всяких маршрутов, кроме вышеуказанных! Ну и по поводу его странности, см. следующий пункт.

3. Пчелайн редкосные бяки, их DHCP сервер выдает вот такой вот маршрут:
#      DST-ADDRESS  PREF-SRC  GATEWAY    DISTANCE
1 ADS  10.0.0.0/8             10.89.48.1 1
У моего старого провайдера внутренняя сеть тоже 10, но с маской /16. Т.е. старый провайдер честно дает маршрут на часть сети. Благо там pppoe подключение и можно не получать IP на интерфейс. Но пчелайн своим чудо маршрутом, просто заставил меня отказаться от использования внутренней сети старого провайдера. А там есть разные вкусности.

4. Вводить руками скрипт из мануала, занятие не для слабонервных. Поэтому, для тех кто пользуется winbox, привожу скрипты в нормальном виде.

corbina-l2tp_refresh
:local interface «BeeLine-l2tp»
:local vpnserver «tp.internet.beeline.ru»
:log debug message=»Hard resolv script run»
/ip dns cache flush
:local «current-ip» [:resolve $vpnserver]
:local «old-ip» [/interface l2tp-client get [/interface l2tp-client find name=»$interface»] connect-to]
:if ($»current-ip» != $»old-ip») do= {
:log info «VPN Server changed IP address from $»old-ip» to $»current-ip»»
/interface l2tp-client set [/interface l2tp-client find name=»$interface»] connect-to=$»current-ip»
}

corbina-l2tp_soft_refresh
:local interface «BeeLine-l2tp»
:local vpnserver «tp.internet.beeline.ru»
#:log debug message=»Soft resolv script run»
:if ([/interface l2tp-client get $interface running] = false) do={
:log info message=»VPN down. Refreshing»
/ip dns cache flush
:local «current-ip» [:resolve $vpnserver]
:local «old-ip» [/interface l2tp-client get [/interface l2tp-client find name=»$interface»] connect-to]
:if ($»current-ip» != $»old-ip») do= {
:log info «VPN Server changed IP address from $»old-ip» to $»current-ip»»
/interface l2tp-client set [/interface l2tp-client find name=»$interface»] connect-to=$»current-ip»
}
}

Разумеется вместо BeeLine-l2tp вы подставите свое имя l2tp интерфейса.

З.Ы. Очень понравились возможности микротика в части управления чипа свича! Для начала сформировал два интерфейса в отдельный свитч (смотрите параметр Master Port на интерфейсе). В один воткнул шнур от пчелок, в другой шнур идущий на кухню. Таким образом смог подключить ноут на прямую в сеть пчелок. Записал все необходимые параметры, вернул интерфейс в старый свич. Если бы этой возможности не было, пришлось бы на табуретке сидеть в коридоре 🙂