Настройка туннеля L2TPv3 на роутере на базе irzOS
L2TPv3 - туннельный протокол, позволяющий инкапсулировать трафик канального уровня (L2) через IP-сети.
Работает по принципу точка-точка, имеет несколько режимов работы: как работу напрямую в качестве IP протокола (имеет номер 115), так и работу поверх UDP, что позволяет ему проходить через NAT.
Режим с использованием протокола IP должен использоваться при отсутствии между адресами сторон туннеля NAT, в противном случае следует использовать режим UDP.
Подобно многим другим туннельным протоколам L2TPv3 не имеет встроенной поддержки шифрования, поэтому должен использоваться либо в закрытых сетях, либо использовать дополнительное шифрование, например, с помощью IPSec
Туннели уровня L2 поверх сетевого уровня (L3) стоит использовать только в случае крайней необходимости, когда задачу невозможно решить с помощью маршрутизации внутри L3 туннелей.
В примере оба роутера имеют внешние IP адреса, туннель будет настроен поверх них. Так же роутеры имеют локальные адреса из одной подсети, их мы и объединим в один L2 сегмент с помощью L2TPv3 туннеля. Во избежание конфликта адресов на обоих роутерах должен быть выключен DHCP сервер для локальных сетей, которые будут объединены посредством туннеля.
Для создания туннеля необходимо проделать следующие шаги:
-
В WEB или CLI интерфейсе зайдите в раздел /tunnel → l2tpv3.
-
Кликните по кнопке Add и дайте название создаваемому туннелю.
-
Заполните поля.
Пример настройки туннеля LvTPv3 с использованием инкапсуляции UDP, без использования IPSec
В качестве названий интерфейсов туннеля в данном примере используется L2TPv3, интерфейсы wan имеют название WAN.
Настройка роутера R1
Поле |
Значение |
Local IP |
WAN (выбирается из перечня) |
Remote IP |
200.1.1.2 |
L2 Spec |
Default (выбирается из перечня) |
Tunnel ID |
1000 (указывается пользователем) |
Peer Tunnel ID |
2000 (указывается пользователем) |
Session ID |
3000 (указывается пользователем) |
Peer Session ID |
4000 (указывается пользователем) |
Encapsulation |
UDP (выбирается из перечня) |
Peer UDP Port |
9001 (указывается пользователем) |
UDP Port |
9000 (указывается пользователем) |
Настройка в CLI
Залогиньтесь в CLI консоль роутера и используйте следующие команды:
/tunnel l2tp-v3 add name=L2TPv3
disabled false
encap udp
encryption none
local-ip WAN
l2spec-type default
macaddr auto
mtu 1458
peer-session-id 4000
peer-tunnel-id 2000
remote-ip 200.1.1.2
session-id 3000
tunnel-id 1000
tunnel-ip -
udp-dport 9001
udp-sport 9000
apply
/
Настройка роутера R2
Поле |
Значение |
Local IP |
WAN (выбирается из перечня) |
Remote IP |
200.1.1.1 |
L2 Spec |
Default (выбирается из перечня) |
Tunnel ID |
2000 (указывается пользователем) |
Peer Tunnel ID |
1000 (указывается пользователем) |
Session ID |
4000 (указывается пользователем) |
Peer Session ID |
3000 (указывается пользователем) |
Encapsulation |
UDP (выбирается из перечня) |
Peer UDP Port |
9000 (указывается пользователем) |
UDP Port |
9001 (указывается пользователем) |
Настройка в CLI
/tunnel l2tp-v3 add name=L2TPv3
disabled false
encap udp
encryption none
local-ip WAN
l2spec-type default
macaddr auto
mtu 1458
peer-session-id 3000
peer-tunnel-id 1000
remote-ip 200.1.1.1
session-id 4000
tunnel-id 2000
tunnel-ip -
udp-dport 9000
udp-sport 9001
apply
/
В результате мы можем увидеть состояние туннеля в статусной зоне панели управления:
Файрволл
Необходимо настроить файрволл на прием пакетов, настройка выполняется в разделе /firewall → filter.
На R1:
В качестве номера порта необходимо использовать номер порта UDP Port, указанный ранее в настройках туннеля.
Настройка в режиме CLI:
/firewall filter add chain=input
action accept
dst-addr :9000
protocol udp
src zone-wan
reorder position=-1
apply
/firewall filter status
/
/
На R2:
Настройка в режиме CLI:
/firewall filter add chain=input
action accept
dst-addr :9001
protocol udp
src zone-wan
reorder position=-1
apply
/firewall filter status
/
/
Пример настройки туннеля LvTPv3 с использованием инкапсуляции UDP, c использованием IPSec
Настройка роутера R1
Поле |
Значение |
Local IP |
WAN (выбирается из перечня) |
Remote IP |
200.1.1.2 |
Encryption |
ipsec |
Pre-Shared Key |
пароль |
L2 Spec |
Default (выбирается из перечня) |
Tunnel ID |
1000 (указывается пользователем) |
Peer Tunnel ID |
2000 (указывается пользователем) |
Session ID |
3000 (указывается пользователем) |
Peer Session ID |
4000 (указывается пользователем) |
Encapsulation |
UDP (выбирается из перечня) |
Peer UDP Port |
9001 (указывается пользователем) |
UDP Port |
9000 (указывается пользователем) |
Настройка в CLI
/tunnel l2tp-v3 add name=L2TPv3
encap udp
encryption ipsec
local-ip bridge1
l2spec-type default
macaddr auto
mtu 1458
peer-session-id 4000
peer-tunnel-id 2000
psk password
remote-ip 200.1.1.2
session-id 3000
tunnel-id 1000
udp-dport 9001
udp-sport 9000
/tunnel l2tp-v3 apply
Настройка роутера R2
Поле |
Значение |
Local IP |
WAN (выбирается из перечня) |
Remote IP |
200.1.1.1 |
Encryption |
ipsec |
Pre-Shared Key |
пароль |
L2 Spec |
Default (выбирается из перечня) |
Tunnel ID |
2000 (указывается пользователем) |
Peer Tunnel ID |
1000 (указывается пользователем) |
Session ID |
4000 (указывается пользователем) |
Peer Session ID |
3000 (указывается пользователем) |
Encapsulation |
UDP (выбирается из перечня) |
Peer UDP Port |
9000 (указывается пользователем) |
UDP Port |
9001 (указывается пользователем) |
Настройка в CLI
/tunnel l2tp-v3 add name=L2TPv3
encap udp
encryption ipsec
local-ip bridge1
l2spec-type default
macaddr auto
mtu 1458
peer-session-id 3000
peer-tunnel-id 1000
psk password
remote-ip 200.1.1.1
session-id 4000
tunnel-id 2000
udp-dport 9000
udp-sport 9001
/tunnel l2tp-v3 apply
| В случае настройки туннеля с шифрованием IPSec настраивать файрволл дополнительно НЕ НУЖНО. |
Связь между соединяемыми сегментами локальной сети
Туннель поднят и теперь необходимо обеспечить связь между соединяемыми сегментами локальной сети. Чтобы добиться этого, нужно добавить виртуальные интерфейсы туннеля в соответствующие локальным сетям бриджи на обоих роутерах в разделе /network → bridge.
Кликните на нужном бридже и выберите в выпадающем списке Untagged строку с названием, данным интерфейсу туннеля L2TPv3, после чего нажмите Apply.
С помощью CLI это можно сделать следующим образом:
-
С помощью команды /ip → interface → status выведите список существующих бриджей и их параметров.
-
Найдите в списке интерфейс бриджа, которому назначен нужный нам IP-адрес и подсеть, например, 192.168.1.1/24. В нашем примере bridge0 - нужный нам.
-
Теперь перейдите в раздел настройки бриджа командой /network → bridge → bridge0.
-
Выведите список портов в бридже командой port или /network → bridge → bridge0 → port. Изучите содержимое вывода, например, вывод port1.
-
Введите в командной строке port L2TPv3 (где L2TPv3 - название интерфейса данное, туннелю EoIP) и нажмите ввод.
-
Введите в командной строке Apply и нажмите ввод, чтобы подтвердить новые настройки бриджа.
Сокращенный пример выполнения команды:
/ip interface status
/network bridge bridge0 port L2TPv3
apply
/
Аналогично настраивается и на втором роутере.
| Туннельные интерфейсы по умолчанию не фильтруются с помощью файрволла, при необходимости фильтрация настраивается в разделе /firewall — filter! |
Теперь проверим связность с помощью инструмента Ping (/tools → Ping) на одном роутере и Sniffer (/tools → Sniffer) - на другом.
Обмен пакетами ICMP прошел успешно, задача выполнена.
Настройка с использованием инкапсуляции IP выполняется аналогичным образом.
Завершите настройку командой /system config commit.