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

#irzOS #роутеры #L2TP #tunnel #IPSec

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

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

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

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

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

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

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

Чтобы создать туннель:

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

  2. Нажмите Add и дайте название создаваемому туннелю.

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

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

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

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

L2TPv3 2
Параметры роутера 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 (указывается пользователем)

Настройка роутера R1 в 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
Параметры роутера 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 (указывается пользователем)

Настройка роутера R2 в 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, указанный ранее в настройках туннеля.

Настройка для роутера R1 в 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

Настройка для роутера 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

L2TPv3 7
Параметры роутера 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 (указывается пользователем)

Настройка роутера R1 в 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
Параметры роутера 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 (указывается пользователем)

Настройка роутера R2 в 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. Перейдите в раздел настройки бриджа и введите port L2TPv3. После чего введите Apply, чтобы подтвердить новые настройки бриджа.

    /network bridge bridge0 port L2TPv3
    apply
    /

    L2TPv3 - название интерфейса туннеля

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

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

Проверка связности

Для проверки связности перейдите в Ping (/tools → Ping) на одном роутере и Sniffer (/tools → Sniffer) – на другом.

L2TPv3 10
L2TPv3 11

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

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

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