17 октября 2012 г.

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 на интерфейсе). В один воткнул шнур от пчелок, в другой шнур идущий на кухню. Таким образом смог подключить ноут на прямую в сеть пчелок. Записал все необходимые параметры, вернул интерфейс в старый свич. Если бы этой возможности не было, пришлось бы на табуретке сидеть в коридоре :)
Отправить комментарий