Каталог товаров
Новости
TL-MR6400 - беспроводной 4G LTE-маршрутизатор
Инструкция по конфигурированию Mikrotik RouterOS для работы в сети интернет-провайдера Корбина Телеком (Билайн)
Введение
Настройки роутеров Mikrotik для работы с
интернет-провайдером Корбина Телеком
(Билайн) имеет ряд особенностей, обусловленных архитектурой
сети провайдера.
В частности:
1. У Корбины Телеком не настроены маршруты к vpn серверам. Поэтому, после
установления vpn соединения и последующей активации шлюза по
умолчанию, для
установленного vpn соединения пропадает связь с vpn сервером
и тоннель внутри vpn-
соединения рвётся.
2. В качестве RemoteIP внутри тоннеля Корбина-Телеком выдаёт
ip-адрес vpn-сервера к
которому происходит подключение. В сочетании со статическими
маршрутами к vpn-
серверам это также нарушает маршрутизацию через тоннель.
3. Корбина Телеком осуществляет балансировку нагрузки на
vpn-сервера с помощью
ротации серверов через DNS (так называемый round robin dns).
Первичная настройка
vpn-соединения происходит нормально, но роутер Mikrotik в
конфигурации vpn-
соединения (в текущей версии Mikrotik RouterOS) запоминает
ip адрес конкретного
vpn-сервера. Это приводит к потере связи при остановке
данного vpn-сервера,
поскольку автоматическое переключение на альтернативные
сервера не происходит.
Первая проблема решается добавлением статических маршрутов к
vpn серверам.
Вторая проблема решается подменой RemoteIP в тоннеле на
приватный адрес из
неиспользуемой подсети (например 192.168.255.254).
Третья проблема решается созданием скрипта, регулярно
проверяющего состояние vpn-
соединения, и производящего повторное преобразование имени
vpn сервера в ip-адрес и
переконфигурирование vpn-соединения в случае прерывания
связи.
Пример настройки роутера
Рассмотрим настройку роутера для работы в сети Корбина
Телеком на конкретном
примере.
Перед подключением к сети провайдера, убедитесь что пароли
пользователей в роутере
Mikrotik заменены на безопасные и/или файрвол блокирут
подключения к роутеру из
публичной сети. Настройка по умолчанию в RB/750, RB/750G,
RB/MRT и RB/MRTG
блокирует все входящие подключения с интерфейса
ether1-gateway, но не блокирует
остальные интерфейсы включая создаваемые vpn-подключения.
Предполагаем что настройки IP для внутренней сети сделаны и
безопасность обеспечена.
Подключаем кабель сети Корбина Телеком в порт eth1 роутера.
Убедимся что DHCP-client для интерфейса ether1-gateway
работает и получил настройки ip
для локальной сети Корбина Телеком.
[admin@MikroTik]
> /ip dhcp-client print detail
Flags: X -
disabled, I - invalid
0 ;;; default configuration
interface=ether1-gateway
host-name="rssonhome" add-default-route=yes
default-route-distance=1 status=bound
address=10.73.250.237/21
dhcp-server=83.102.233.200
primary-dns=85.21.192.3
secondary-dns=213.234.192.8
expires-after=6d23h40m23s
Установим для полученного по DHCP маршрута по умолчанию,
метрку больше чем будет у
маршрута по умолчанию у vpn подключения.
/ip dhcp-client set ether1-gateway default-route-distance=2
Включим DNS в роутере. В качестве серверов указываем
primary-dns и secondary-dns из
полученных параметров dhcp (эта настройка может не
требоваться, поскольку можт быть
выполнене автоматически dhcp клиентом при включённой опции
Peer DNS).
[admin@]
> /ip dns set servers=85.21.192.3,213.234.192.8 allow-remote-requests=yes
После этого DNS должен работать. Проверяем:
:ping
www.ru
194.87.0.50
ping timeout
194.87.0.50
ping timeout
194.87.0.50
ping timeout
3 packets
transmitted, 0 packets received, 100% packet loss
Видно что преобразование имени www.ru в адрес 194.87.0.50
произошло. но ping на внешний
ip невозможен, поскольку vpn еще не настроен.
В некотрых сегментах сети Корбина может не работать из за
отсутствия маршрута к DNS
серверам. Маршруты к DNS серверам добавляются аналогично
маршрутам к VPN серверам.
Для того чтобы добавить маршруты к vpn серверам, определим
их адреса. В ОС Microsoft
Windows это осуществляется командой:
Для pptp тоннеля:
C:\>nslookup
vpn.internet.beeline.ru
: router
Address: 192.168.1.4
Получаем такой ответ (от не заслуживающего доверия
dns-сервера):
: vpn.internet.beeline.ru
Addresses:
85.21.0.105
85.21.0.117
78.107.1.48
85.21.0.226
Аналогично для l2tp тоннеля:
C:\>nslookup
tp.internet.beeline.ru
: router
Address: 192.168.1.4
Ответ (от не заслуживающего доверия dns-сервера):
: tp.internet.beeline.ru
Addresses:
85.21.0.241
85.21.0.243
В данном случае все сервера находятся в двух подсетях
85.21.0.0/24
78.107.1.0/24
Для добавления маршрутов на эти подсети требуется выяснить
ip-адрес-шлюза в локальной
сети Корбина Телеком. Его можно найти в любом из маршрутов
добавленных автоматически
при DHCP настройке.
[admin@MikroTik]
> /ip route print detail
...
6 ADS dst-address=10.0.0.0/8
gateway=10.73.248.1
gateway-status=10.73.248.1 reachable
ether1-gateway distance=1 scope=30
target-scope=10 ...
Искомый маршрут отмечен флагами ADS и адрес шлюза лежит в
локальной подсети Корбина
Телеком.
Добавляем маршруты на эту подсеть через шлюз в локальной
сети Корбина Телеком:
[admin@MikroTik]
> /ip route
[admin@MikroTik]
> add comment="vpn servers subnet" dst-address=78.107.1.0/24 \
gateway=10.73.248.1
[admin@MikroTik]
> add comment="vpn servers subnet" dst-address=85.21.0.0/24 \
gateway=10.73.248.1
Теперь создадим профиль соединения для Корбина Телеком. В
нем укажем remote-address
произвольно из неиспользуемых приватных подсетей:
/ppp
profile
add change-tcp-mss=yes comment=""
name=Corbina only-one=default \
remote-address=192.168.255.254 use-compression=no
use-encryption=no use-vjcompression=no
Создадим
l2tp-подключение. В параметры user и password вместо corbinauser и password надо
указать ваш логин и пароль в Корбине для установления
подключения, а в качестве connect-to
один из ip-адресов в которые разрешалось имя
tp.internet.beeline.ru :
[admin@MikroTik]
> /interface l2tp-client add name=corbina-l2tp profile=Corbina \
user=corbinauser password=password \
connect-to=85.21.0.241 disabled=no
add-default-route=yes\
max-mru=1420 max-mtu=1420 mrru=disabled
И добавляем правило NAT для интерфейса VPN
[admin@MikroTik]
> /ip firewall nat add out-interface=corbina-l2tp \
chain=srcnat action=masquerade
Теперь роутер подключен к Интернет .
Чтобы автоматизировать действия по восстановлению vpn-
соединения в случае
обрыва/дисконнекта, добавим скрипты для обновления ip-
адреса vpn-сервера:
/system
script
add
name=corbina-l2tp_soft_refresh policy=ftp,read,write,winbox
source=":local\
\_interface \"corbina-l2tp\"\r\
\n:local vpnserver
\"tp.internet.beeline.ru\"\r\
\n#:log debug message=\"Soft resolv script
run\"\r\
\n:if ([/interface l2tp-client get \$interface
running] = false) do={\r\
\n :log
\n /ip dns cache flush\r\
\n :local \"current-ip\" [:resolve
\$vpnserver]\r\
\n :local \"old-ip\" [/interface
l2tp-client get [/interface l2tp-client\
\_find name=\"\$interface\"]
connect-to]\r\
\n :if (\$\"current-ip\" !=
\$\"old-ip\") do= {\r\
\n :log
\"current-ip\"\"\r\
\n /interface l2tp-client set [/interface
l2tp-client find name=\"\$i\
nterface\"]
connect-to=\$\"current-ip\"\r\
\n }\r\
\n}"
add
name=corbina-l2tp_refresh policy=ftp,read,write,winbox source=":local
inte\
rface \"corbina-l2tp\"\r\
\n:local vpnserver
\"tp.internet.beeline.ru\"\r\
\n:log debug message=\"Hard resolv script
run\"\r\
\n#:if ([/interface l2tp-client get
\$interface running] = false) do={\r\
\n /ip dns cache flush\r\
\n :local \"current-ip\" [:resolve
\$vpnserver]\r\
\n :local \"old-ip\" [/interface
l2tp-client get [/interface l2tp-client\
\_find name=\"\$interface\"]
connect-to]\r\
\n :if (\$\"current-ip\" !=
\$\"old-ip\") do= {\r\
\n :log
\"current-ip\"\"\r\
\n /interface l2tp-client set [/interface
l2tp-client find name=\"\$i\
nterface\"]
connect-to=\$\"current-ip\"\r\
\n }\r\
\n#}"
И финальный штрих - добавляем задания в планировщик заданий
роутера:
/system
scheduler
add
disabled=no interval=1s name=corbina-l2tp_soft_refresh \
on-event="/system script run
corbina-l2tp_soft_refresh" \
policy=reboot,read,write,policy,test \
start-time=00:00:00
add
disabled=no interval=0s name=corbina-l2tp_refresh \
on-event="/system script run
corbina-l2tp_refresh" \
policy=reboot,read,write,policy,test
\
start-time=04:30:00
В результате, скрипт corbina-l2tp_soft_refresh выполняется
каждую секунду, и обновляет ip
только если vpn-соединение неактивно, а скрипт
corbina-l2tp_refresh выполняется каждый
день в 4:30, при этом соединение пере-устанавливается
История изменений документа:
• Версия 0.8 от 01.03.2013 — рекомендованный remote-address
изменён с адреса из
локальной подсети 127.0.2.1 на адрес из приватной подсети
192.168.255.254 .
Протестировано на RouterOS 5.22 (это устраняет
несовместимость с новыми
версиями RouterOS). В образцах команд консоли убраны
приглашения, для
облегчения копирования и вставки в терминал. Исправлен
копирайт.
• Версия 0.7 от 07.07.2011 — рекомендованный remote-address
изменён с адреса из
приватной подсети 192.168.200.1 на адрес из локальной
подсети 127.0.2.1.
Протестировано на RouterOS 5.4.
• Версия 0.6 от 20.10.2010 — Исправлена ошибка с метрикой
маршрутов по
умолчанию в DHCP Client, приводившая к отсутствию связи
после изменения
конфигурации корбины (ориентировочно 18.10.2010).
• Версия 0.5 от 15.08.2010 — Исправлены задания в
планировщике. Добавлена
инструкция по включению NAT на интерфейсе corbina-l2tp.
Добавлены указания
по добавлению маршрутов к DNS серверам.
• Версия 0.4 от 14.08.2010 — Удалены пробелы в конце строк в
многострочных
скриптах.
• Версия 0.3 от 12.08.2010 — Исправлена ошибка использования
несоответствия
используемого имени профиля при создании профиля и l2tp
подключения.
• Версия 0.2 от 24.06.2010 — Исправлены опечатки в примерах
команд.
• Версия 0.1 от 23.06.2010 — Начальная редакция документа.
© ООО «Роутерз», 2013 год