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