Hardcore PPP Setup
Natuurlijk kun je gewoon het control-center van je Linux distributie gebruiken om een Internet-inbelverbinding op te zetten. Maar dit artikel leert je hoe je het met de hand kan doen. Niet voor watjes!
PPP staat voor Point to Point Protocol, en het is een manier om een TCP/IP (Het Internet Protocol) tot stand te brengen tussen twee punten, bijvoorbeeld jouw computer en de inbelserver van de provider.
Wij gebruiken het programma pppd. Dit is een krachtige tool die zelf kan inbellen, maar ook als inbelserver kan fungeren. Daarnaast kan het netwerkverbindingen onderhouden met PDA's, via seriële kabels, via infrarood, enz enz, maar dat valt buiten het bestek van dit artikel. Hier gaan we pppd gebruiken om een andere computer op te bellen.
- Installeer het programma
pppd
. Dit zit standaard bij alle distributies. - Nu moeten we eerst zorgen dat we de nameserver doorgeven aan het systeem.
De nameserver van je provider kan een domeinnaam omzetten in het IP adres (IP =
Internet Protocol). Maak een bestand
/etc/resolv.conf
met als inhoud:
search wbsoft.nl nameserver 194.109.6.66 nameserver 194.109.9.99
In plaats van wbsoft.nl
zet je het domein van je computer of gewoon
een punt (.). De adressen voor de nameserver heb je als het goed is van je
provider gekregen; deze voorbeelden gelden voor Xs4all. Je kunt er maximaal drie
invullen, elk op een nieuwe regel. Meestal zijn er twee gegeven.
Let op 1: soms zorgen automatische configuratiescripts van je distributie (bijv.
bij SuSE) ervoor dat de nameservers correct worden vermeld in dit bestand. Zie
de verwijzigen in /etc/resolv.conf
naar het systeembrede bestand waar
je de nameservers kunt instellen.
Let op 2: sommige inbelservers kunnen de namen van de nameservers
doorgeven bij het inbellen. Dit is een Microsoft extensie op het PPP protocol,
maar wordt ook door pppd ondersteund. In dat geval hoef je niet zelf de
/etc/resolv.conf
aan te maken, maar kun je dat pppd laten doen.
Zie voor meer informatie hierover
de manual page van pppd: man pppd
. Trefwoord:
usepeerdns
.
/etc/hosts
:127.0.0.1 nutnix.wbsoft.nl nutnix localhost
waarbij je natuurlijk je eigen computernaam op de plaats van nutnix invult.
/etc/ppp/
(aanmaken
indien nodig)./etc/ppp/options
(dat de standaard
opties bevat voor de inbelverbindingen) zodanig dat het leeg is (of alleen
commentaarregels)./etc/ppp/peers/
aan.xs4all
.In dit bestand vermeld je alle instellingen die voor de verbinding met deze provider gelden. Voorbeeld:
/dev/modem 115200 # modem device en snelheid (max. 115200) name "jenaam" # je loginnaam bij de provider noipdefault # je computer moet een IP adres toegewezen worden defaultroute # maak deze verbinding de standaard gateway asyncmap 0 # control characters niet escapen crtscts # gebruik hardware flowcontrol lock # maak een lockfile in (/var/lock/LCK..modem) aan, # gebruik daarom voor alle programma's die de # modem gebruiken hetzelfde device (/dev/ttyS0, # of /dev/modem, etc.) detach # fork pppd als een background proces. # soms moet er een beetje gepraat worden met de modem (zoals # wachten op de kiestoon, het nummer draaien etc). chat kan dit. connect '/usr/sbin/chat -f /etc/ppp/myprovider.chat' vj-max-slots 16 # deze opties beïnvloeden de gebruikte compressie, deflate 15,15 # zie man pppd. bsdcomp 15,15
Enige uitleg:
/dev/modem
wijst naar de modem. Meestal is dat al in orde. Als
/dev/modem
op jouw systeem niet bestaat, doe dan (als root):
ln -s ttyS1 /dev/modem
als de modem aan COM2 hangt, en als hij aan COM1 hangt, doe dan:
ln -s ttyS0 /dev/modem
Hiermee maak je een symbolic link aan, /dev/modem, die naar het werkelijke apparaat wijst. Je kunt natuurlijk ook gewoon de poort (bijv. /dev/ttyS0) direct noemen. Een nadeel is dan dat als je de modem aan een andere poort hangt, je op allerlei plaatsen dingen moet veranderen. Één enkele symlink veranderen is dan makkelijker!
/etc/ppp/myprovider.chat
(dezelfde naam als je invulde achter connect
). Dit is het inbelscript.
Meestal volstaat alsvolgt:TIMEOUT 60 ABORT 'BUSY' ABORT 'RING' ABORT 'NO CARRIER' ABORT 'NO DIALTONE' '' AT OK ATZ OK AT+FCLASS=0DTnnnnnnnnnnn CONNECT ''
Soms moet je ook nog inloggen voordat PPP tot stand komt. Breid het bestandje dan uit met de volgende regel:
ogin: uwnaam
Het vergt soms wat gepuzzel om achter het goede inbelscript te komen. Minicom is een goed terminalprogramma om met de modem en je provider te communiceren. Ook kan je provider een scriptje verstrekken!
Op de plaats van nnnnnnnnnnn
vul je het telefoonnummer van je provider in.
Als je de modem niet ook om te faxen gebruikt kan het gedeelte
+FCLASS=0
weggelaten worden.
/etc/ppp/pap-secrets
. Alsvolgt (ervan uitgaande dat
er 1 uitgaande verbinding is):uwnaam * wachtwrd
chmod 0600 /etc/ppp/pap-secrets chmod go-w /etc/ppp/*
Op sommige systemen (SuSE) heeft alleen de groep dialout
permissie om
naar /dev/modem
te schrijven. Voeg iedereen die u permissie wilt geven
om te internetten dus toe aan de groep dialout
in
/etc/group
.
/usr/sbin/pppd call myprovider
online gaan. Pppd leest dan het bestand /etc/ppp/peers/myprovider
en maakt de verbinding.
killall pppd
of, eleganter:
kill -TERM `ps axw | grep "pppd call myprovider" | grep -v grep | awk '{print $1}'`
(Als u de optie detach
niet gebruikt, kunt u gewoon Ctrl+C typen
om pppd weer af te breken.)
Simpel ;-) Uiteraard kunnen beide commando's in een shellscriptje worden
gezet met namen als ppp-on
en ppp-off
. Veel plezier!
Eerste versie: maart 2000
Laatste update: wo mei 8 10:59:46 CEST 2002