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
- Man kan tunnelere flere VLAN gjennom samme L2TP-forbindelse om man ønsker; bytt i så fall tag-en fra 93 til noe annet for disse.
- Om man bruker «ip pmtu» knekker IPv6, eller i hvert fall pakker nær MTU-grensen.
- Det ser ut til at om man bruker 802.1q på den ene siden, må man bruke 802.1q på den andre siden også. Det er ukjent om dette er en feature eller en bug.
- bablefisk, ca. den sløveste boksen vi har som takler dette (en 2650xm) drar 21Mbit/sek med trafikk på full guffe.
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
- Du kan også legge VLAN på l2tpeth0 og bruke et subinterface, men det er ukjent hvordan det fungerer mot IOS på 802.1q. I motsetning til IOS-til-IOS-oppsettet dokumentert over, er dette eksempeloppsettet altså gjort uten 802.1q, på begge sider.
- «bridge-group 111» er et triks for å få IOS-enheten til å gå i promiscious mode. Det kan være du ikke trenger dette, avhengig av enhet og IOS-versjon.
Epost: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2012-04-13 21:07 | Revisjon: 4 (historie, blame) | Totalt: 1905 kB | Rediger