Когда есть необходимость на оборудовании 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 autoendА теперь на втором:
interface FastEthernet0/1 ip address 10.1.1.2 255.255.255.252 duplex auto speed autoendМы добились что бы маршрутизаторы видели друг-друга, можно попинговать что бы проверить.
Далее настраиваем пвевдокласс, сначала на 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 allLegend: XC ST=Xconnect State, S1=Segment1 State, S2=Segment2 StateUP=Up, DN=Down, AD=Admin Down, IA=Inactive, NH=No HardwareXC ST Segment 1 S1 Segment 2 S2------+---------------------------------+--+---------------------------------+--UP ac Fa0/0(Ethernet) UP l2tp 10.1.1.2:1 UPВидим, что соединение установлено, мы так же можем видеть такую картину (к примеру с R2):
R2#sh l2tpL2TP Tunnel and Session Information Total tunnels 1 sessions 1LocTunID RemTunID Remote Name State Remote Address Sessn L2TP Class/ Count VPDN Group62489 50410 R1 est 10.1.1.1 1 l2tp_default_clLocID 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 через 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-й влан тоже нужно создать.
Долго у меня не получалось поднять конфигурацию, когда есть коммутатор и порт в режиме trunk в который включен роутер и создан подинтерфейс для
определенного VLAN, что бы этот VLAN вытянуть через L2TP, например как показано на схеме ниже.
В Интернете встречал такие конфигурации и все у людей работало, у меня же затыкалось xconnect не поднимался. Перепробовал
все возможные варианты с MTU и все было тщетно. Заработало только тогда, когда в pseudowire-class добавил опцию interworking ethernet,
конфигурация R1 для такого случая:
pseudowire-class bpm encapsulation l2tpv3 interworking ethernet ip local interface FastEthernet0/1interface 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