Решил создать отдельную тему, чтобы поделиться своим опытом настройки домашнего интернета Билайн на таком без преувеличения выдающемся устройстве как Mikrotik RouterBoard. Извините, если не туда.
Немного теории. Билайн реализует специфичную для России, Израиля и еще некоторых стран схему подключения [Russian]-dual-access. В этой схеме “локальные” сетевые ресурсы доступны через сеть интерфейса, к которому подключен кабель провайдера, а собственно интернет – через VPN-канал поднятый на этом же интерфейсе.
Так сетевая карта, настроенная на автоматическую конфигурацию по DHCP, получает от сервера Билайн адрес вида: 10.x.y.z/21, шлюз по умолчанию 10.x.y.1, маршрут в сеть 10.0.0.0/8 через
этот же шлюз и адреса DNS-серверов. Соответственно, 10.0.0.0/8 – и есть локальная сеть Билайн, в которой доступен личный кабинет пользователя, официальный сайт, VPN-сервера для подключения к интернет и т. д.
При подключении к Билайн Mikrotik сталкивается с двумя проблемами. Во-первых, в отличие от Windows (но в полном соответствии с RFC3442) он игнорирует получаемый по DHCP шлюз по умолчанию, без которого не может обратиться к DNS-серверам Билайн (они имеют публичные IP-адреса), а, следовательно, и определить IP-адрес tp.internet.beeline.ru для выхода в интернет. Во-вторых, не поддерживает “из коробки” Round-robin DNS, используемый Билайном для балансировки нагрузки на VPN-сервера.
Первая проблема решается добавлением статического маршрута по умолчанию через тот же шлюз, который получен по DHCP для сети 10.0.0.0/8:
Код:
/ip route add gateway=[/ip route get [/ip route find dst-address=10.0.0.0/8] gateway] distance=20
(значение distance выбрано таким для того, чтобы при подключении к интернету активным стал новый маршрут, получаемый при поднятии сессии L2TP-VPN).
Теперь, имея маршрут по умолчанию, можно разрешить имя tp.internet.beeline.ru в IP-адрес с помощью DNS-серверов Билайн. Особенность Mikrotik заключается в том, что он вовсе не пытается делать это при каждом подключении. Да, в свойствах L2TP-подключения можно указать имя tp.internet.beeline.ru в поле Dial-in, но оно тут же, единожды будет разрешено в IP-адрес и сохранено именно в таком виде.
Но, как уже отмечалось, Билайн имеет несколько VPN-серверов и распределяет нагрузку на них, используя Round-robin DNS. То есть, DNS-сервера выдают разные IP-адреса при каждом запросе tp.internet.beeline.ru. Полагаться на то, что единожды запомненный VPN-сервер будет всегда доступен, было бы как-то самонадеянно, да и некрасиво по отношению к провайдеру. Таким образом, необходимо разрешать имя tp.internet.beeline.ru в IP при каждой попытке подключения.
Для решения этой задачи я сначала использовал скрипт “corbina-l2tp_soft_refresh” из
этой замечательной статьи (саму статью можно почитать лишь для общего развития, т. к. большинство описанных в ней проблем почему-то не характерны для подключения к Билайн в Иркутске). Но, немного подумав, понял, что в одном скрипте можно решить обе проблемы сразу. Вышло из этого вот что:
Код:
:local vpnIface "l2tp-out1"
:local ethIface "ether1-gateway"
:local vpnserver "tp.internet.beeline.ru"
#
:if ([/interface l2tp-client get $vpnIface running] = false) do={
:if ([/ip dhcp-client get [/ip dhcp-client find interface=$ethIface] status] = "bound") do={
/ip route remove [/ip route find dst-address=0.0.0.0/0 distance=20]
/ip route add gateway=[/ip route get [/ip route find dst-address=10.0.0.0/8] gateway] distance=20
/ip dns cache flush
/interface l2tp-client set [/interface l2tp-client find name="$vpnIface"] connect-to=[:resolve $vpnserver]
}
}
Скрипт, прямо скажем, не идеальный (в том смысле, что он никогда не проверяет необходимость обновления маршрута по умолчанию и адреса подключения L2TP, а просто берет и меняет, даже если новые значения равны старым) зато простой.
Тем, кто собирается использовать скрипт, необходимо установить в переменных vpnIface и ethIface значения, соответствующие настройкам вашего Mikrotik, и создать задание в sheduler’е, запускающее его, скажем, каждые 10 секунд.
Я не описываю в данной теме настройки DHCP, L2TP, NAT и Firewall, так как они тривиальны. Эта тема – скорее шпаргалка для тех, кто пытался подружить Mikrotik с Билайном, но на чем-то споткнулся. С другой стороны, если будет реальный интерес от тех, кто не знаком с Mikrotik, выложу все в подробностях и картинках.
Да, в отличие от распространенных маршрутизаторов, что настраиваются в два клика, с Mikrotik придется немного повозиться. Но оно того стоит!