UUlug de website voor de Linux user group van de Universiteit Utrecht en de Hogeschool van Utrecht

WANADOO BROADBAND HOWTO

Copyrights 2003-2004, Joor Loohuis (joor at uulug.nl)

Versie 0.13, 4 maart 2004
    Aanvulling over de SB5100E
Versie 0.12, 17 juli 2003
    Informatie over de USB connectie
Versie 0.11, 6 juli 2003
    Referentie naar alternatieve HOWTO
Versie 0.1, 30 mei 2003
    Kleine correcties, 
    aanvulling fair use policy, 
    credits sectie
    bandbreedte update
Versie 0.02, 16 maart 2003
    Kleine correcties
Versie 0.01, 13 maart 2003
    Eerste versie

Dit document beschrijft de benodigde stappen om Wanadoo (Casema) breedband
kabelmodems te gebruiken voor het verbinden met het Internet in Nederland. 
Correcties, aanvullingen en suggesties worden zeer op prijs gesteld.

Het origineel van dit document is te vinden op 
http://www.uulug.nl/Wanadoo-Broadband-HOWTO.php

INHOUD

    1. INLEIDING
        1.1 TODO
    2. INSTALLATIE
        2.1 SOFTWARE
        2.2 CONFIGURATIE
    3. NAZORG
    4. TROUBLESHOOTING
    5. REFERENTIES
    6. CREDITS


1. INLEIDING

Wanadoo biedt verschillende abonnementen aan voor een internetverbinding via de
kabel. Er bestaat nog steeds een verouderde service genaamd Cable Basic, die
gebruik maakt van een DEMOS modem dat op de seriele poort wordt aangesloten,
met snelheden van 80Kbit/s downstream en 32Kbit/s upstream. Naar verluid wordt
deze technologie uitgefaseerd. Daarnaast zijn er twee abonnnementen die als
'Broadband' worden omschreven. Broadband Basic heeft een snelheid van 150Kbit/s
downstream en 32Kbit/s upstream, maar zou uiterlijk 1 juni 2003 een snelheid
bieden van 300Kbit/s downstream en 64Kbit/s upstream. Broadband Premium betreft
een snelheid van 512Kbit/s downstream en 128Kbit/s upstream, maar de downstream
capaciteit moet voor de genoemde datum opgewaardeerd zijn naar 800Kbit/s. In
mijn geval blijkt dat erg snel geregeld te zijn, ik had in april 2003 al
800Kbit/s tot mijn beschikking. Graag hoor ik van abonnees die nog geen hogere
bandbreedte hebben.

Voor de verschillende services zijn drie verschillende modems in omloop. Zoals
gezegd wordt de Cable Basic dienst uitgefaseerd, en dit document zal dan ook
geen aandacht besteden aan de installatie van de DEMOS modem, maar zie de
referenties. De tweede modem in gebruik is de zogenaamde COM21 modem, beter
bekend als de 'zwarte' modem. De derde modem is de Motorola SurfBoard SB4200E,
beter bekend als de 'witte' modem. Ik heb me laten vertellen dat de COM21 modem
wordt gebruikt voor Broadband Basic, en de Motorola modem voor Broadband
Premium, maar ik heb zelf het vermoeden dat Wanadoo aan het migreren is naar
nieuwe technologie (EURODOCSIS), en de COM21 (DOCSIS) modem ook uitgefaseerd
wordt ten gunste van de Motorola modem.

Een opmerking vooraf over NAT. Het is altijd een twistpunt of dit nu fair use
is, zoals gedicteerd in de policy statement van de ISP. In het geval van
Wanadoo kunnen we daar kort in zijn, het mag gewoon. Sterker nog, Wanadoo
levert voor hun ADSL abonnementen zelfs online documentatie hoe dit (voor
Windows) op te zetten. De fair use policy van Wanadoo is bepaald liberaal te
noemen, en kijkt in wezen alleen naar het gemiddelde dataverbruik.

Deze howto vind zijn oorsprong in het gegeven dat de Motorola modem gepaard
gaat met een service die niet erg conventioneel is, en er op het moment dat ik
aangesloten werd hoegenaamd geen documentatie voor beschikbaar was. Helaas is
er op dit gebied ook weinig te verwachten van Casema en Wanadoo. De grootste
hindernis is het feit dat de tunneling wordt gedaan door middel van het Layer 2
Tunneling Protocol (l2tp). Het is niet het enige document in zijn soort, Miquel
van Smoorenburg heeft een vergelijkbare howto staan op
http://miquels.www.cistron.nl/wanadoo-eurodocsis/. Let er op dat als je deze
twee documenten door elkaar gebruikt dat er verschillende software wordt
gebruikt. De software van het ene document werkt dus niet noodzakelijk met de
configuratie van het andere.

De aanvankelijke versie van dit document bevat alleen de instructies voor het
in gebruik nemen van de SB4200E onder Linux via een netwerk interface. Ik heb
de modem via een netwerkkaart aangesloten, en de onderstaande informatie heeft
dan ook alleen daarop betrekking.  De SB4200E kan ook via een USB poort worden
aangesloten, maar ik heb aanwijzingen dat Wanadoo niet toestaat de modem via
een USB poort aan te sluiten. Ik weet niet wat daar de redenen voor zijn, en ik
houd het er op dat dit een supportkwestie is. Aangezien Wanadoo/Casema sowieso
geen ondersteuning biedt voor Linux is dit waarschijnlijk geen probleem, maar
het kan een contractovertreding inhouden.

Het blijkt dat Wanadoo in sommmige regio's ook een andere modem uitrolt, de
Motorola SurfBoard 5100E, die zich voor zover duidelijk als een router
gedraagt. Deze zorgt voor de verbinding met NAT, DHCP en alles wat nodig is. Op
de systemen die achter een dergelijke modem worden aangesloten volstaat het dus
om via DHCP een lease aan te vragen, en is hiermee de volledige
internetverbinding opgezet.


1.1 TODO

Dit hele document moet aangevuld worden zodat het ook de stappen voor de
installatie van de COM21 modem beschrijft. Voor zover ik heb begrepen maakt
deze service gebruik van PPPoE, en voorlopig verwijs ik dan ook graag door naar
de documentatie van rp-pppoe software, zie de referenties.


2. INSTALLATIE

Het onderstaande gaat er van uit dat de modem is aangesloten aan een correct
geinstalleerde netwerkkaart. Deze moet echter *niet* geactiveerd worden tijdens
het booten. Dit wordt in een later stadium verzorgd.

2.1 SOFTWARE

De volgende software pakketten zijn vereist:

- een DHCP client. Mijn persoonlijke voorkeur gaat uit naar dhclient, pump
schijnt niet erg goed te werken.

- de l2tp daemon. Er zijn verschillende versies in omloop die grotendeels van
hetzelfde project zijn geforkt. Ik heb goede resultaten met de versie van
l2tpd.org (http://www.l2tpd.org/download.html)

- de ppp daemon. Geen gepatchte versie voor pppoe of zo, gewoon de standaard
binary.

Locaties van configuratiebestanden en binaries zijn nogal afhankelijk van de
gebruikte distributie. Ik raad altijd aan zo veel mogelijk gebruik te maken van
de package manager van die distributie. Alleen in het geval van l2tpd is het
hoogst waarschijnlijk noodzakelijk die te compileren van de source uit de
tarball. Ik heb de binary geinstalleerd in /usr/sbin. Voor de rest zijn de
onderstaande gegevens van toepassing op een LFS installatie, wat andere woorden
zijn voor 'de bestanden staan waar je zelf uitmaakt'. Gebruik van alle software
de meest recente versie. Per 13 maart 2003 is l2tpd op versie 0.69.

2.2 CONFIGURATIE

Het is waarschijnlijk raadzaam in het begin alle daemons vanaf de prompt op te
starten, en de output in de gaten te houden. Op het eind, als alles loopt zoals
het moet, kan het een en ander in een script worden verzameld. Houdt verder de
systeemlogs in de gaten. Daar staat vaak veel nuttige informatie.

Om een verbinding op te zetten met een SB4200E zijn er een paar stappen nodig.
Ten eerste moet de gebruikte netwerk interface geinitialiseerd worden door
middel van DHCP. Dit houdt in dat je eerst probeert een lease te krijgen op de
interface die aan de modem is aangesloten, hier in een environment variabele
CABLE_IFACE opgeslagen:

$ dhclient $CABLE_IFACE

Als dit goed verloopt zie je uitvoer die je vertelt dat er een lease wordt
verkregen. Als dit niet het geval is, kan het zijn dat de modem offline is. Na
het verkrijgen van de lease hang je in het VPN van Wanadoo. In het bestand
waarin dhclient zijn leases bijhoudt (in mijn geval
/var/state/dhcp/dhclient.leases) staat veel nuttige informatie. Er staat onder
andere dat er een fixed address is, maar dit varieert naar mijn ervaring per
NIC (andere machine betekent ander adres). Daarnaast staan er twee static
routes in, die naar de DHCP server en die naar de VPN server. Die zullen
overeenkomen met de gegevens die je van Casema/Wanadoo hebt gekregen. Verder
staan er een subnet mask en een router. Er moeten dus wat gegevens uit de DHCP
lease worden gehaald: de gateway (CABLE_GW), het het toegewezen IP adres
(CABLE_IP), het subnet mask (CABLE_MASK), het netwerk adres (SUBNET), de DHCP
server (DHCP) en de VPN server (VPN). Vervolgens kan de routing table worden
opgezet. Allereerst pas ik de regel voor het subnet aan, omdat dhclient die
opzet zonder gateway:

------------------------------------------------------------------------------
$ route del -net $SUBNET netmask $CABLE_MASK
$ route add -net $SUBNET netmask $CABLE_MASK gw $CABLE_IP $CABLE_IFACE
------------------------------------------------------------------------------

Verder heb ik twee static routes naar de DHCP en VPN servers.

------------------------------------------------------------------------------
$ route add -host $DHCP gw $CABLE_GW
$ route add -host $VPN gw $CABLE_GW
------------------------------------------------------------------------------

Ik ben geen netwerk expert, dus het kan heel goed zijn dat deze configuratie
voor verbetering vatbaar is. Deze is namelijk tot stand gekomen door de Windows
routing table als uitgangspunt te nemen en alles eruit te wippen dat overbodig
leek.

Vervolgens moeten de l2tp en ppp daemons geconfigureerd worden. Voor de eerste
heb ik een minimaal configuratie bestand /etc/l2tp/l2tpd.conf:

------------------------------------------------------------------------------
[lac wanadoo]
lns = ddd.ddd.ddd.ddd
autodial = yes
ppp debug = no
------------------------------------------------------------------------------

Let op dat de waarde van het lns veld vervangen wordt door het adres van de VPN
server zoals die door Casema/Wanadoo is doorgegeven. Als er problemen zijn met
het krijgen van een verbinding is eventueel debugging aan te zetten, maar dit
zou veel output kunnen genereren.

De configuratie van pppd is ook zeer beperkt, maar valt uiteen in een paar
delen die allemaal in /etc/ppp thuishoren. Ten eerste is er pap-secrets.

------------------------------------------------------------------------------
# Secrets for authentication using PAP
"c???????@wanadoo"	"*"	"passwd"
------------------------------------------------------------------------------

Hierin moeten de vraagtekentjes vervangen worden door je klantnummer van
Wanadoo, en het juiste password ingevoerd worden. Let er op dat dit bestand
niet voor iedereen leesbaar is (permissies 0600). Vervolgens is er het bestand
options:

------------------------------------------------------------------------------
mtu 1400
lock 
defaultroute
name c???????@wanadoo
------------------------------------------------------------------------------

De MTU wordt gereduceerd omdat met de default waarde problemen ontstonden, maar
die moet nog geoptimaliseerd worden. In de plaats van de vraagtekens moet weer
het Wanadoo klantennummer ingevuld worden. Het derde bestand dat wordt aangepast
is ip-up, een shell script dat door pppd wordt aangeroepen als de verbinding is
opgezet, en waarin aanvullende zaken kunnen worden opgezet. Ik heb daarin het
volgdende staan:

------------------------------------------------------------------------------
#!/bin/sh
INT=$1
DEV=$2
SPEED=$3
IP=$4
REMOTE_IP=$5
IPPARAM=$6

/sbin/route add default gw $IP

./iptables start
------------------------------------------------------------------------------

De parameters aan het begin worden door pppd aan het script meegegeven. Ik voeg
een default route toe omdat die niet netjes door mijn pppd wordt opgezet maar
YMMV. Daarna wordt de firewall gestart, in dit geval een shell script dat de
juiste iptables (2.4 kernel) regels opzet. Dit is een deel waar deze howto nog
mee uitgebreid moet worden.

Als zowel l2tpd als pppd zijn geconfigureerd, kan de tunnel worden opgezet:

------------------------------------------------------------------------------
$ /usr/sbin/l2tpd
------------------------------------------------------------------------------

De daemon zorgt zelf voor het starten van pppd als de tunnel is opgezet (daar is
de autodial optie voor), dus hoeft er niets meer te gebeuren. Kijk in de log
files (welke hangt af van de distributie) hoe de connectie verloopt.

Als alle stappen netjes verlopen, is het handig om alle handelingen die vanaf de
prompt worden uitgevoerd in een script bij elkaar te brengen. Dat ziet er dan
ongeveer zo uit:

------------------------------------------------------------------------------
#!/bin/bash
# simple script to bring up Wanadoo cable connection
# requires ipcalc script (http://jodies.de/ipcalc)

# configuration section
CABLE_IFACE='eth1'
LEASE_FILE='/var/state/dhcp/dhclient.leases'
# end configuration section

# bring up interface
dhclient $CABLE_IFACE

# check for valid lease here and do something clever if there's a problem
IFACE_UP=`ifconfig | grep $CABLE_IFACE | cut -d ' ' -f1`
if [ -z $IFACE_UP ] ; then
        echo "no DHCP lease obtained, exiting..."
        killall dhclient
        exit 1
fi

# get gateway address from DHCP lease file
CABLE_GW=`grep routers $LEASE_FILE |tail -n 1|cut -d ";" -f1|cut -d ' ' -f5`
# determine the assigned ip address
CABLE_IP=`grep fixed-address $LEASE_FILE |tail -n 1|cut -d ";" -f1|cut -d ' ' -f4`
# mask for private network
CABLE_MASK=`grep subnet-mask $LEASE_FILE |tail -n 1|cut -d ";" -f1|cut -d ' ' -f5`
# calculate subnet from mask and address
SUBNET=`ipcalc -n $CABLE_IP/$CABLE_MASK | grep Network | cut -d '/' -f1 | cut -d ' ' -f4`

# get networking data necessary to set up VPN
# TODO: should also be extracted from DHCP lease file
DHCP=10.255.250.1
VPN=10.255.253.1

# add additional routes, should be revised
# DHCP sets up the subnet without a gateway, fix that
route del -net $SUBNET netmask $CABLE_MASK
route add -net $SUBNET netmask $CABLE_MASK gw $CABLE_IP $CABLE_IFACE
# add static routes to VPN servers
route add -host $DHCP gw $CABLE_GW
route add -host $VPN gw $CABLE_GW

# bring up VPN
/usr/sbin/l2tpd 

# after this, pppd takes over
# put any post processing in /etc/ppp/ip-up
------------------------------------------------------------------------------

Let hierbij op dat de lange regels niet omgevouwen worden, en op het feit dat
er nog paden en dergelijke hardcoded zijn.


3. NAZORG

Voor zover ik weet draait de VPN server Windows NT of Windows 2000 (ik weet
niet meer hoe ik aan deze info kwam). Het is dus bijna overbodig om te zeggen
dat een goede firewall noodzaak is, ook als je geen NAT gebruikt. De tunneling
gebruikt normaal gesproken poort udp/1701, maar de RFC vermeldt dat dit niet in
steen is geschreven, dus pas op wat je filtert over die interface.

Als je NAT gebruikt, zal je waarschijnlijk tegen het gegeven lopen dat sommige
sites niet goed bereikbaar zijn machines op je lokale netwerk. Dit heeft er mee
te maken dat sommige servers weigeren pakketjes te fragmenteren wanneer dit
nodig is als gevolg van de overhead door de tunneling (formulering?). Ik heb de
netwerkinterfaces van alle machines die via NAT naar buiten gaan allemaal een
MTU van 1452 gegeven, en ik ondervind geen problemen meer. Het kan zijn dat een
iets grotere MTU ook nog wil werken.

Een ander handigheidje is om een cron job te installeren die in de gaten houdt
of de PPP verbinding wel online blijft. Ik gebruik daarvoor het volgende script:

------------------------------------------------------------------------------
#!/bin/sh
# check-dialup: verifies ppp is still up,
# and tries to reconnect otherwize

# don't proceed if no connection on cable modem
ifconfig|grep eth1 || exit

EXISTS="`/bin/ps -A eo cmd|cut -d ' ' -f 1|grep bin/ppp`"

if [ -z $EXISTS ] ; then
	/bin/killall l2tpd
	/usr/sbin/l2tpd
fi
------------------------------------------------------------------------------

Let op dat hier paden en interfaces hardcoded zijn, dus pas deze aan naar je
eigen omstandigheden. Dit script draait bij mij elke drie minuten.


4. TROUBLESHOOTING

Passive FTP

In het geval dat er foutmeldingen komen met als inhoud '500 Illegal PORT
command' als je probeert over passive FTP een verbinding naar buiten te maken
vanaf een machine op je lokale netwerk, is de kans groot dat de 'ip_nat_ftp'
kernel module niet is geladen. Deze zorgt (onder andere) voor de correcte
vertaling van adressen in ftp commandos, en heb je nodig. Je kan handmatig
testen of het je probleem oplost door als root op de prompt 'modprobe
ip_nat_ftp' uit te voeren. Als dat het probleem oplost is het raadzaam in
/etc/modules/conf een regeltje op te nemen om dit altijd te doen als de
iptables module laadt. Hoewel ik het niet heb getest zou een vergelijkbare
situatie met andere protocollen kunnen ontstaan (IRC?).


5. REFERENTIES

De Casema kabelmodem howto van Jasper Aukes, dat de installatie van de DEMOS
modem beschrijft (let op, aangepaste url):
http://doc.nl.linux.org/HOWTO/Casema-kabelmodem-HOWTO-NL/Casema-kabelmodem-HOWTO-NL.html

The Roaring Penguin PPPoE software voor Linux:
http://www.roaringpenguin.com/pppoe/
De bijbehorende howto om een connectie op te zetten:
http://www.roaringpenguin.com/pppoe/how-to-connect.txt

Een andere bron van informatie voor COM21 modems is de (Wanadoo) Linux COM21
connection HOWTO, die sterk lijkt op de rp-pppoe documentatie, maar al langere
tijd niet onderhouden is:
http://home.wanadoo.nl/vwes/com21/

De homepage van l2tpd, de Layer 2 Tunnelling Protocol Daemon:
http://www.l2tpd.org/

RFC2661 beschrijft het Layer 2 Tunneling Protocol (l2tp).


6. CREDITS

Deze howto is in een continue staat van ontwikkeling. Daarvoor is het
belangrijk dat gebruikers hun bevindingen insturen. Denk aan informatie over
distributies, verbeterde scripts, maar ook gewoon typo's en andere kleine
correcties.

Aann deze HOWTO hebben bijgedragen:
- Barry Voeten
- Wim de Jonge
- Egbert-Jan Holleman
LinuxDot
    RSS feed temporarily unavailable...
 
Zoek op dmoz.org




© 2004 UUlug. Linux is een geregistreerd handelsmerk van Linus Torvalds.