Gebruikerstip 35 (Februari 2004)


HOWTO; verbinding onder Linux met Wanadoo/Casema

Wanadoo Cable Modem en MandrakeLinux HOWTO
Door: Joost Koopman,
nabewerkt door Hendrik-Jan Heins,
met dank aan Jasper Reuhman


Deze HOWTO beschrijft hoe verbinding te maken met Wanadoo Cable, via Casema, gebruikmakend van een modem (SB5100E SURFBoard Cable Modem; de zwarte Motorola modem) onder MandrakeLinux 9.2. (fivestar). Globaal is deze howto ook voor andere distributies te gebruiken, hoewel er waarschijnlijk wel bepaalde commando's op andere plekken moeten staan of gegeven moeten worden.
De howto is gebaseerd op de howto voor Debian van Miquel Smoorenburg

1. Protocollen

Wanadoo/Casema heeft op dit moment drie typen modems in gebruik:

Demos. Het oude seriëele systeem dat niet vooruit te branden is. Aan dit modem zit een 115k2 seriëele poort, waarover een standaard dialup-modem geëmuleerd wordt. Verbinding is standaard PPP. Com21. Dit is redelijk recent, vele steden hebben het. Dit modem moet via ethernet op de PC aangesloten worden, en er wordt verbinding gelegd via PPPoE. Com21 is echter recentelijk failliet gegaan en is dus voor kabelbedrijven geen optie meer.
EuroDocsis. Dit is het allernieuwste. Dit modem wordt ook via ethernet op de PC aangesloten. De PC verkrijgt dan via DHCP een IP adres binnen een RFC1918 netwerk (in de 10.x.y.z reeks). Binnen dat netwerk staat een l2tp server, waarop over IP een verbinding moet worden gelegd. Dan wordt een l2tp tunnel opgebouwd die de verbinding met de buitenwereld is.

Waarom zo ingewikkeld bij Eurodocsis? Eurodocsis is een gerouteerd systeem, op basis van IP. Dat betekent dat bij het eerste actieve headend de ethernet headers verwijderd worden en alleen IP getransporteerd wordt. Een PPPoE oplossing is dus niet mogelijk. Wanadoo/Casema wil toch graag weten wie er achter een bepaalde aansluiting/IP adres zit, dus is de hack met L2TP over IP bedacht.

Dit kan normaal gesproken ook anders. Het 1e actieve headend is ook DHCP relay, en die zou via een agent-optie het MAC adres van het kabel modem mee kunnen sturen naar de DHCP server, zodat IP adressen uitgedeeld worden op basis van modem-mac-adres. Het schijnt echter zo te zijn dat Casema heeft gekozen voor de allergoedkoopste uitvoering van de apparatuur waar deze mogelijkheid niet in zit .. helaas voor ons allemaal.

2. Benodigde software

Om verbinding te maken onder Mandrake moeten de volgende pakketten geïnstalleerd zijn:

De netwerk-kit
De dhcp=client software
de ppp software
gcc
binutils
libc6-dev

Ook is benodigd de rp-l2tp software, die is (nog) niet als Mandrake rpm pakket beschikbaar, dus die moeten we zelf compileren en installeren. Die software is te vinden op: http://sourceforge.net/projects/rp-l2tp/

Klik op deze pagina op 'download' om rp-l2tp-0.3.tar.gz te downloaden.

Er is ook een ander project dat een l2tp tunnel aanlegt,http://www.l2tpd.org/. Dit project maar die hebben wij tot op heden (december 2003) niet aan de praat gekregen, Er zaten ook nog fouten in de broncode, en het is dus niet eenvoudig te compileren en al helemaal niet eenvoudig te configureren. Vandaar dat wij het eerstgenoemde pakket aangeven als werkend.

3. Benodigde kernel-opties

Er moeten een aantal dingen aanstaan in de Linux kernel. Ten eerste is een recente 2.4 kernel benodigd (Mandrake 8.x of hoger is dus voldoende). Zorg er dan voor dat minimaal ingeconfigureerd is:

TCP/IP ["Networking" -> "TCP/IP networking" ]
Driver voor de ethernet kaart ["Network device support" -> "Ethernet (10 or 100Mbit)" ]
PPP ["Network device support" -> PPP support, PPP support for async serial ports, PPP support for sync tty ports ]

Standaard zit dit al in de kernel gecompileerd, of is dit als module geïnstalleerd. Compileer en installeer anders de kernel, en herstart.

Zet in "/etc/modules" de volgende namen, op nieuwe regels (en zonder "):
"ppp_generic"
"slhc"
"n_hdlc"
"ppp_synctty"
Dit om standaard deze modules ingeladen te hebben. Je hebt ze nodig voor je verbinding.

4. Installeren DHCP

Is niet nodig. Als het goed is doet Mandrake dit zelf, wanneer je je netwerk instelt. Voor andere distributies kan het nodig zijn deze stap uit te voeren.In Mandrake is dit alles uitstekend via het Mandrake Configuratie Centrum uit te voeren. Hier gewoon aangeven dat de netwerkkaart via DHCP een adres toegewezen krijgt.

Als je nu intikt 'ifup eth0' dan zal het systeem proberen een IP adres te krijgen van de DHCP server. Als dit lukt dan zal je zien met het commando /sbin/route dat het systeem zich ergens in het 10.0.0.0 netwerk bevind.

Er zal ook een default route zijn naar een gateway. Hier hebben we al een probleem. We moeten contact maken met een L2TP server die waarschijnlijk niet rechtstreeks in ons lokale netwerk staat, dus bereikt moet worden via de default gateway; echter zodra we een verbinding hebben opgezet met de L2TP gateway en er een L2TP tunnel interface is wordt de default gateway over die tunnel gezet .. waarvoor een default gateway nodig is om te bereiken.

Om dit probleem niet te hoeven confronteren, staat er in /etc/init.d/rp-l2tpd een stukje tekst dat de gateway direct goed zet. Dit is een vooruitwijzing naar een bestand dat verderop in deze howto te vinden is.

Pak nu de papieren van Wanadoo erbij, en zoek op wat jouw L2TP gateway is. Waarschijnlijk staat het onder de naam VPN gateway vermeld. Als het niet in de documentatie staat dan is het wellicht te vinden op de bijgeleverde CDROM (onder windows).
L2TPGW=10.255.253.1
De kans is vrij groot dat dit al het correcte adres is.

In de output van route kunnen we zien dat er een lokaal netwerk is en dat er een route naar de L2TP server is via een gateway adres:

# route ( -n ) Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface
10.255.253.1 10.1.223.254 255.255.255.255 UGH 0 0 0 eth0
10.1.216.0 0.0.0.0 255.255.248.0 U 0 0 0 eth0

Als het goed is, is nu de L2TP server gewoon te pingen.
# ping 10.255.253.1 [*]
PING 10.255.253.1 (10.255.253.1) 56(84) bytes of data.
64 bytes from 10.255.253.1: icmp_seq=1 ttl=57 time=18.4 ms
64 bytes from 10.255.253.1: icmp_seq=2 ttl=57 time=18.8 ms

[*] Vervang eventueel 10.255.253.1 door jou daadwerkelijke IP adres.

Hiermee is het DHCP gedeelte van de setup compleet.

5. Installeren L2TP

Allereerst moeten we de L2TP software compileren. Download de rp-l2tp-0.3.tar.gz tar van http://sourceforge.net/projects/rp-l2tp/. Pak dit uit, compileer het en installeer het:
# tar xvfz rp-l2tp-0.3.tar.gz
# cd rp-l2tp-0.3
# more README (of gebruik less)
# ./configure && make
# make install

De laatste stap, "make install" moet als root. De rest hoeft niet als root.
Rp-l2tp is geinstalleerd. Nu moeten we het nog configureren.

Eerst moet /etc/l2tp/l2tp.conf geconfigureerd worden. Een voorbeeld BIJLAGE_1_l2tp.conf staat hier. Zet die in /etc/l2tp/l2tp.conf en bewerk het bestand. Pas het commando
"peer 10.255.253.1""
aan naar het juiste L2TP server adres.

Nu moet het ppp gedeelte (L2TP gebruikt PPP intern) opgezet worden. Hiervoor moet een /etc/ppp/options.l2tpd file aangemaakt worden. Een voorbeeld BIJLAGE_2_options.l2tpd staat hier. Plaats dit bestand in /etc/ppp/options.l2tpd en bewerk het bestand. Pas het commando
user c1234567@wanadoo
aan naar de gebruikersnaam die opgegeven is door Wanadoo.

Dan moeten we het wachtwoord in /etc/ppp/pap-secrets zetten. Ga naar /etc/ppp en bewerk het bestand "pap-secrets". Zet hierin:
c1234567@wanadoo wanadoo XXYYZZ
waarin XXYYZZ het wachtwoord is zoals opgegeven door Wanadoo.

Bij het pakket zitten twee gebruiksaanwijzingen: man:/l2tp.conf(5) en man:/l2tpd , ze zijn absoluut de moeite waard om even door te lezen!

6. Installeren initscript

Om de l2tp service makkelijk te kunnen starten en stoppen hebben we een init-script nodig dat in /etc/init.d/rp-l2tpd geplaatst wordt. Een voorbeeld BIJLAGE_3_rp-l2tpd bestand staat hier. Copieer dit bestand naar /etc/init.d/ en maak hem uitvoerbaar:
# cp rp-l2tpd.init /etc/init.d/rp-l2tpd
# chmod 755 /etc/init.d/rp-l2tpd

We zijn er bijna, ready to rock-and-roll!

Voordat je dit bestand kan gebruiken, moet je eerst de gateway aanpassen. Het nummer dat op dit moment in het script staat, werkt waarschijnlijk niet.
Met de onderstaande commando's, is de default gateway te vinden. Hierbij representeert $gw de gateway waar het om gaat. Het nummer dat $ gw is, is het nummer dat u in rp-l2tpd moet zetten:
route del default gw $gw
route add -host $L2TPGW gw $gw

De Mandrake PPP daemon logt naar ......... var/log/messages Maar hier is niet veel info te vinden, dus het onderstaande deel is waarschijnlijk alleen van nut wanneer je echt problemen hebt. Lees anders gewoon verder.

Open nu 2 consoles, op de ene start je een tail -f /var/log/messages commando (of, als je met "less" om kan gaan, gebruik je less in (F)ollow mode - hoofdletter F). Op de andere start je de l2tp client:

# /etc/init.d/rp-l2tpd start

Hierbij wel opletten dat je "bash" als commandoregel ingesteld hebt staan! zoniet, type dan "bash /etc/init.d/rp-l2tpd start"
Als het goed is zie je nu in de messages file dat je inlogt en er een IP verbinding opgezet wordt. Iets als:
Jan 31 21:39:29 jjk pppd[3622]: pppd 2.4.1 started by root, uid 0
Jan 31 21:39:29 jjk pppd[3622]: Using interface ppp0
Jan 31 21:39:29 jjk pppd[3622]: Connect: ppp0 <--> /dev/pts/0
Jan 31 21:39:29 jjk /etc/hotplug/net.agent: assuming ppp0 is already up
Jan 31 21:39:33 jjk pppd[3622]: local IP address 212.64.104.214
Jan 31 21:39:33 jjk pppd[3622]: remote IP address 212.64.104.1
Jan 31 21:39:33 jjk pppd[3622]: primary DNS address 194.134.5.5
Jan 31 21:39:33 jjk pppd[3622]: secondary DNS address 194.134.0.97

De routing tabel moet nu ook laten zien dat er een verbinding is met 'het Internet' via ppp0, en dat de default gateway via deze verbinding loopt:

# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
c12345678.cable * 255.255.255.255 UH 0 0 0 ppp0
wanadoo.nl 10.194.240.1 255.255.255.255 UGH 0 0 0 eth0
10.194.240.0 * 255.255.240.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default c12345678.cable 0.0.0.0 UG 0 0 0 ppp0

Als dit allemaal goed werkt, willen we natuurlijk dat dit bij het booten vanzelf gaat. Het rp-l2tpd script kan tijdens booten automatisch gestart worden door: in /etc/rc.d/ waarbij een nummer tussen de 1 en de 5 is, een koppeling te zetten (met "S" ervoor) naar "/etc/init.d/rp-l2tpd" Zorg er hierbij wel voor dat de l2tpd service na het opstarten van het netwerk wordt gestart!
de service is handmatig te starten met:

"service rp-l2tpd start"
De verbinding kan gestopt- en geherstart worden. Dit kan dmv:
service rp-l2tpd stop
service rp-l2tpd restart

Bij de herstart geeft dit script wel enige meldingen, maar die zijn niet van belang. (niet mooi, maar de schrijvers dezes zijn geen programmeurs).
Een laatste opmerking: bij de eerste keer dat u verbinding maakt, dient u zich aan te melden bij de Wanadoo/Casema server. Zolang u dit niet gedaan heeft, komt u internet niet op!

Succes!

Wanneer u aanvullingen, verbeteringen of anderszins heeft op deze howto, kunt u contact opnemen met de schrijvers, of met Passys.

Heeft u vragen of opmerkingen over dit onderwerp? Stuur ons dan een e-mail.



home