L2TP

L2TP (Layer-2 Tunneling Protocol) er en protokoll som lar deg enkapsulere hele Ethernet-lokalnett inn i IP-pakker og tunnelere dem et annet sted. (Om det vrir hjernen din litt, er det greit.) Typisk bruksområde er når du har et IP-nett tilgjengelig, men ønsker å transportere et helt VLAN med DHCP og det hele, f.eks. Dødens Dal under UKA hvor man har det vanlige Samfundet-VLANet tilgjengelig, men også ønsker å transportere ned WLANet, evt. kassenett, o.a..

Om man kan, er det bedre å kjøre vanlig L3-ruting enn å tunnelere L2-nett.

L2TP er en standard protokoll; man trenger minst versjon 3 (L2TPv3) for å kunne tunnelere Ethernet (tidligere versjoner støttet bare PPP). Alternativer til L2TP er OpenVPN, som har en tilsvarende men proprietær løsning, og Q-in-Q (VLAN pakket inn i andre VLAN).

Cisco-oppsett

Vi har primært testet L2TPv3 på IOS-bokser, altså Cisco-routere. Tanken er at L2TP-forbindelsen danner en «pseudowire», eller virtuell tråd, mellom to porter eller VLAN. Det er altså, i motsetning til de fleste andre tunnelløsninger i IOS, ikke snakk om nye virtuelle grensesnitt som dukker opp, bare en krysskobling («xconnect») mellom to eksisterende. Følgelig kan ikke grensesnitt ha IP-adresser o.a. på seg.

Typisk oppsett er som følger:

Router på Samfundet (bablefisk)

Denne tar inn vanlig internett på Fa0/0.10 (det vanlige Samfundetnettet), og sender Fa0/0.15 (VLAN 15, WLAN-VLANet) inn i en L2TP-tunnel over det nettet.

l2tp-class UKA
 authentication
 password <passord>
!
pseudowire-class uketunnel
 encapsulation l2tpv3
 protocol l2tpv3 UKA
 ip local interface FastEthernet0/0.10
!
interface FastEthernet0/0.15
 encapsulation dot1Q 15
 xconnect 129.241.93.27 93 encapsulation l2tpv3 pw-class uketunnel

Router i Dødens Dal (fnis)

Denne tar inn vanlig internett på Gi0/0, og spytter ut VLAN 15 (WLAN-VLANet) på en 802.1q-trunk på Gi0/1.

l2tp-class UKA
 authentication
 password <passord>
!
pseudowire-class uketunnel
 encapsulation l2tpv3
 protocol l2tpv3 UKA
 ip local interface GigabitEthernet0/0
!
interface GigabitEthernet0/1.15
 encapsulation dot1Q 15
 xconnect 129.241.93.91 93 encapsulation l2tpv3 pw-class uketunnel

Merknader

IOS/Linux-interop

Siden 2.6.35 kan Linux også gjøre L2TPv3, og det snakker fint med Cisco-utstyr. Imidlertid støtter Linux bare enkapsuleringsdelen, ikke sesjonsprotokollen, så konfigurasjonen er litt mer manuell, og man har ikke støtte for autentisering og slikt. Oppsettet blir med andre ord litt annerledes.

Linux-siden

Her antar vi at du har 3.2-kjerne eller nyere, samt rimelig ny iproute2 (antageligvis fra git). Ellers må du bruke l2tpv3tun, som har en lignende syntaks. eth1 kobles her sammen med et VLAN-interface (vlan4) på den andre siden.

# cleanup
ifconfig br0 down
brctl delbr br0
ip l2tp del tunnel tunnel_id 911
ip l2tp del session tunnel_id 911 session_id 911

# setup
ip l2tp add tunnel remote 84.73.73.227 local 192.168.0.2 tunnel_id 911 peer_tunnel_id 911 encap ip
ip l2tp add session tunnel_id 911 session_id 911 peer_session_id 911
ifconfig l2tpeth0 up
ifconfig eth1 up

# bridge-setup
brctl addbr br0
brctl stp br0 off
brctl addif br0 eth1
brctl addif br0 l2tpeth0
ifconfig br0 up

Merk at ebtables har en tendens til å gjøre at ting ikke fungerer, så unload den (modprobe -r ebtable_filter ; modprobe -r ebtables).

Cisco-siden

pseudowire-class tvtunnel
 encapsulation l2tpv3
 interworking ethernet
 protocol none
 ip local interface FastEthernet4
!
interface Vlan4
 no ip address
 load-interval 30
 xconnect 79.160.45.8 911 encapsulation l2tpv3 manual pw-class tvtunnel
  l2tp id 911 911
  l2tp cookie local 4 0
  l2tp cookie remote 4 0
 bridge-group 111

Merknader

Lenker: Start, dodensdal

Epost: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2012-04-13 21:07 | Revisjon: 4 (historie, blame) | Totalt: 1905 kB | Rediger