logo

Настройка туннеля L2TPv3 на роутере на базе irzOS

L2TPv3 - туннельный протокол, позволяющий инкапсулировать трафик канального уровня (L2) через IP-сети.

Работает по принципу точка-точка, имеет несколько режимов работы: как работу напрямую в качестве IP протокола (имеет номер 115), так и работу поверх UDP, что позволяет ему проходить через NAT.

Режим с использованием протокола IP должен использоваться при отсутствии между адресами сторон туннеля NAT, в противном случае следует использовать режим UDP.

Подобно многим другим туннельным протоколам L2TPv3 не имеет встроенной поддержки шифрования, поэтому должен использоваться либо в закрытых сетях, либо использовать дополнительное шифрование, например, с помощью IPSec

Туннели уровня L2 поверх сетевого уровня (L3) стоит использовать только в случае крайней необходимости, когда задачу невозможно решить с помощью маршрутизации внутри L3 туннелей.

L2TPv3 1
Figure 1. Схема сети

В примере оба роутера имеют внешние IP адреса, туннель будет настроен поверх них. Так же роутеры имеют локальные адреса из одной подсети, их мы и объединим в один L2 сегмент с помощью L2TPv3 туннеля. Во избежание конфликта адресов на обоих роутерах должен быть выключен DHCP сервер для локальных сетей, которые будут объединены посредством туннеля.

Для создания туннеля необходимо проделать следующие шаги:

  1. В WEB или CLI интерфейсе зайдите в раздел /tunnel → l2tpv3.

  2. Кликните по кнопке Add и дайте название создаваемому туннелю.

  3. Заполните поля.

Пример настройки туннеля LvTPv3 с использованием инкапсуляции UDP, без использования IPSec

В качестве названий интерфейсов туннеля в данном примере используется L2TPv3, интерфейсы wan имеют название WAN.

Настройка роутера R1

L2TPv3 2
Table 1. Параметры роутера 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

L2TPv3 3
Table 2. Параметры роутера 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
  /

В результате мы можем увидеть состояние туннеля в статусной зоне панели управления:

L2TPv3 4

Файрволл

Необходимо настроить файрволл на прием пакетов, настройка выполняется в разделе /firewall → filter.

На R1:

L2TPv3 5

В качестве номера порта необходимо использовать номер порта 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:

L2TPv3 6

Настройка в режиме 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

L2TPv3 7
Table 3. Параметры роутера 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

L2TPv3 8
Table 4. Параметры роутера 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.

L2TPv3 9

С помощью CLI это можно сделать следующим образом:

  1. С помощью команды /ip → interface → status выведите список существующих бриджей и их параметров.

  2. Найдите в списке интерфейс бриджа, которому назначен нужный нам IP-адрес и подсеть, например, 192.168.1.1/24. В нашем примере bridge0 - нужный нам.

  3. Теперь перейдите в раздел настройки бриджа командой /network → bridge → bridge0.

  4. Выведите список портов в бридже командой port или /network → bridge → bridge0 → port. Изучите содержимое вывода, например, вывод port1.

  5. Введите в командной строке port L2TPv3 (где L2TPv3 - название интерфейса данное, туннелю EoIP) и нажмите ввод.

  6. Введите в командной строке Apply и нажмите ввод, чтобы подтвердить новые настройки бриджа.

Сокращенный пример выполнения команды:

/ip interface status
/network bridge bridge0 port L2TPv3
apply
/

Аналогично настраивается и на втором роутере.

Туннельные интерфейсы по умолчанию не фильтруются с помощью файрволла, при необходимости фильтрация настраивается в разделе /firewall — filter!

Теперь проверим связность с помощью инструмента Ping (/tools → Ping) на одном роутере и Sniffer (/tools → Sniffer) - на другом.

L2TPv3 10
L2TPv3 11

Обмен пакетами ICMP прошел успешно, задача выполнена.

Настройка с использованием инкапсуляции IP выполняется аналогичным образом.

Завершите настройку командой /system config commit.