L2TP

Когда есть необходимость на оборудовании CISCO прокинуть L2 поверх L3, сразу на ум приходят мысли о чем-то очень сложном, например MPLS, оказывается

есть вполне простой способ осуществить задуманное, это L2TP. В моем примере используются роутеры 1841 с версией IOS 12.4(24)T8.

Простая настройка

Простая настройка L2TP для соединения двух ПК.

И так взглянем на топологию:

Нам необходимо поднять туннель 2-го уровня, что бы рабочие станции видели друг друга, как в локальной сети, т.е. что бы даже бродкаст ходил.

Замечу, что между маршрутизаторами R1 и R2 могут быть еще устройства, а так же работать различные протоколы, например популярно прокидывать L2TP поверх IPSec.

И так глянем на конфигурацию интерфейсов Fa0/1 обоих роутеров, сначала на R1:

interface FastEthernet0/1
 ip address 10.1.1.1 255.255.255.252
 duplex auto
 speed auto
end

А теперь на втором:

interface FastEthernet0/1
 ip address 10.1.1.2 255.255.255.252
 duplex auto
 speed auto
end

Мы добились что бы маршрутизаторы видели друг-друга, можно попинговать что бы проверить.

Далее настраиваем пвевдокласс, сначала на R1, назовем его bpm:

pseudowire-class bpm
 encapsulation l2tpv3
 ip local interface FastEthernet0/1

Видно, что указывается тип инкапсуляции и интерфейс с которого будет устанавливаться соединение с удаленным маршрутизатором, в нашем случае это Fa0/1, но вполне может быть и какой-нибудь Loopback.

Такая же настройка будет и на R2:

pseudowire-class bpm
 encapsulation l2tpv3
 ip local interface FastEthernet0/1

Теперь настроим наши интерфейсы, в которые подключены ПК, т.е. именно через них будет проходить L2. Итак на R1:

interface FastEthernet0/0
 no ip address
 duplex auto
 speed auto
 xconnect 10.1.1.2 1 encapsulation l2tpv3 pw-class bpm

Тут вы уже не можете указать IP адрес на интерфейсе, командой xconnect, вы указываете IP удаленного компьютера, затем номер туннеля, тип инкапсуляции и имя класса.

На втором роутере похоже:

interface FastEthernet0/0
 no ip address
 duplex auto
 speed auto
 xconnect 10.1.1.1 1 encapsulation l2tpv3 pw-class bpm

Смотрим поднялся ли xconnect:

R1#sh xconnect all
Legend: XC ST=Xconnect State, S1=Segment1 State, S2=Segment2 State
UP=Up, DN=Down, AD=Admin Down, IA=Inactive, NH=No Hardware
XC ST  Segment 1                         S1 Segment 2                         S2
------+---------------------------------+--+---------------------------------+--
UP     ac   Fa0/0(Ethernet)              UP l2tp 10.1.1.2:1                   UP

Видим, что соединение установлено, мы так же можем видеть такую картину (к примеру с R2):

R2#sh l2tp
L2TP Tunnel and Session Information Total tunnels 1 sessions 1
LocTunID   RemTunID   Remote Name   State  Remote Address  Sessn L2TP Class/
                                                           Count VPDN Group
62489      50410      R1            est    10.1.1.1        1     l2tp_default_cl
LocID      RemID      TunID      Username, Intf/      State  Last Chg Uniq ID  
                                 Vcid, Circuit                                 
14862      27219      62489      1, Fa0/0             est    00:18:35 4

Если в State видим Circuit, значит все работает и машины могут видеть друг друга.

Это самая простая конфигурация которую мне удалось настроить, что бы показать как оно работает и не забивать голову лишней информацией.

Прокидываем несколько VLAN

Можно немного усложнить топологию и пробросить несколько VLAN через L2TP, например так:

В данном примере конфигурация роутеров R1 и R2 совершенно не меняется, по тунелю начинают ходить кадры dot1q.

Пример настройки одного из коммутаторов:

interface FastEthernet0/1
 switchport mode trunk
!
interface FastEthernet0/2
 switchport access vlan 1
 switchport mode access
 spanning-tree portfast
!
interface FastEthernet0/3
 switchport access vlan 10
 spanning-tree portfast

Само собой 10-й влан тоже нужно создать.

Конфигурация с подинтерфейсом dot1q

Долго у меня не получалось поднять конфигурацию, когда есть коммутатор и порт в режиме trunk в который включен роутер и создан подинтерфейс для

определенного VLAN, что бы этот VLAN вытянуть через L2TP, например как показано на схеме ниже.

В Интернете встречал такие конфигурации и все у людей работало, у меня же затыкалось xconnect не поднимался. Перепробовал

все возможные варианты с MTU и все было тщетно. Заработало только тогда, когда в pseudowire-class добавил опцию interworking ethernet,

конфигурация R1 для такого случая:

pseudowire-class bpm
 encapsulation l2tpv3
 interworking ethernet
 ip local interface FastEthernet0/1
interface FastEthernet0/0
 no ip address
 duplex auto
 speed auto
!
interface FastEthernet0/0.10
 encapsulation dot1Q 10
 xconnect 10.1.1.2 1 encapsulation l2tpv3 pw-class bpm
!
interface FastEthernet0/1
 ip address 10.1.1.1 255.255.255.252
 duplex auto
 speed auto

Опять же многое зависит от версии IOS, скажем опцию interworking я не нашел в C2600-ADVIPSERVICESK9-M Version 12.4(21). Обидно.

Более подробную информацию о L2TP можно посмотреть здесь:

http://www.cisco.com/en/US/docs/ios/12_0s/feature/guide/l2tpv325.html