Hoofdstuk 27. PPP en SLIP | FreeBSD Documentation Portal

# Hoofdstuk 27. PPP en SLIP

This translation may be out of date. To help with the translations please access the FreeBSD translations instance.

## 27.1. Overzicht

FreeBSD heeft een aantal manieren om de ene computer met de andere te verbinden. Om een netwerk of internet verbinding op te zetten door een inbelmodem, of om anderen toe te staan dit te doen door de machine heen vereist het gebruik van PPP en SLIP. Dit hoofdstuk beschrijft het opzetten van op modems gebaseerde diensten in meer detail.

Na het lezen van dit hoofdstuk weet u:

- Hoe gebruikers PPP opgezet kan worden.

- Hoe kernel-PPP opgezet kan worden (alleen voor FreeBSD 7.X).

- Hoe PPPoE opgezet kan worden (PPP over Ethernet).

- Hoe PPPoA opgezet kan worden (PPP over ATM).

- Hoe een SLIP-server en cliënt opgezet kan worden en hoe dat geconfigureerd wordt (alleen voor FreeBSD 7.X).

Voordat dit hoofdstuk gelezen wordt, moet u:

- Bekend zijn met basis netwerk terminologie.

- De basis en doeleinden van een inbel verbinding en van PPP en/of SLIP.

U kunt zich afvragen wat het verschil is tussen gebruiker-PPP en kernel-PPP. Het antwoord is simpel: gebruiker-PPP verwerkt inkomend en uitgaande data in het gebruikersland in plaats van in de kernel. Dit is duur in de zin van het kopiëren van de data tussen de kernel en het gebruikersland, maar levert meer mogelijkheden voor de PPP implementatie. Gebruikers PPP gebruikt het tun apparaat om te communiceren met de buitenwereld. Kernel-PPP maakt gebruik van het ppp apparaat.

| Voor de rest van dit hoofdstuk, zal gebruiker-PPP gebruikt worden als ppp tenzij er onderscheid gemaakt moet worden met andere PPP software zoals pppd. Tenzij anders vermeld moeten alle uitgelegde commando’s in dit hoofdstuk gestart worden als de `root` gebruiker.

## 27.2. Gebruikmaken van gebruiker-PPP

### 27.2.1. Gebruiker-PPP

#### 27.2.1.1. Vereisten

Dit document gaat er vanuit dat u de volgende punten beschikbaar heeft:

- Een account bij een Internet Service Provider (ISP) waarmee verbinding gemaakt wordt door middel van PPP.

- Een modem of een ander apparaat verbonden met uw PC en correct geconfigureerd zodat u verbinding kan maken met uw ISP.

- De inbelnummers van uw ISP.

- Uw loginnaam en wachtwoord (danwel een combinatie van een standaard UNIX®-stijl login en wachtwoord of een PAP of CHAP login en wachtwoordcombinatie).

- Het IP-adres van één of meerdere naamservers. Normaal gesproken krijgt u twee IP adressen van uw ISP om te gebruiken. Als u er echter geen één gekregen heeft, kunt u het commando `enable dns` gebruiken in ppp.conf en ppp zal de naamservers voor u configureren. Deze optie is afhankelijk van de PPP implementatie van de ISP, welke DNS onderhandeling moet ondersteunen.

De volgende informatie kan aangeleverd worden door uw ISP maar is niet echt noodzakelijk:

- Het IP-adres van de router van uw ISP. De router is de machine waarmee u verbinding maakt en welke ingesteld wordt als de standaard route. Als u deze informatie niet heeft, kunt u een willekeurig adres verzinnen waarna de PPP server van de ISP het juiste adres vertelt zodra u verbinding maakt.

  Dit IP-adres wordt door ppp `HISADDR` genoemd.

- Het netwerkmasker wat gebruikt moet worden. Als uw ISP deze niet heeft opgegeven, kan `255.255.255.255` gebruikt worden.

- Als uw ISP u een vast IP-adres en hostnaam levert, kunt u deze invoeren. In andere gevallen bepaalt de andere kant welk adres er uitgegeven wordt.

Als u niet in bezit bent van de vereiste informatie, moet u contact opnemen met uw ISP.

| Door de rest van dit hoofdstuk worden in veel van de voorbeelden configuratie bestanden genummerd per regel. Deze nummers dienen alleen als hulp voor de presentatie en discussie en zijn verder niet bedoeld om daadwerkelijk geïmplementeerd te worden. Een juiste inspringing met tabs en spaties zijn daarbij ook belangrijk.

#### 27.2.1.2. Automatische configuratie van PPP

Zowel `ppp` als `pppd` (de implementatie van PPP op kernel niveau) gebruiken de configuratie bestanden die zich in de map /etc/ppp bevinden. Voorbeelden configuraties voor gebruiker-PPP kunnen gevonden worden in /usr/shared/examples/ppp/.

Het configureren van `ppp` vereist dat u een aantal bestanden bewerkt, afhankelijk van uw eisen. Wat u moet invoeren is deels afhankelijk van wat uw ISP u aanbied met oog op statische IP-adressen (lees u krijgt een statisch adres welke u altijd gebruikt) of dynamisch (lees: uw IP-adres veranderd elke keer als u verbinding maakt met uw ISP).

##### PPP en statische IP-adressen

U moet het /etc/ppp/ppp.conf bewerken. Het zou dan als volgend eruit moeten zien:

| Regels die eindigen met een `:` starten in de eerste kolom (het begin van de regel) - alle andere regels moeten inspringen zoals getoond door middel van spaties of tabs.

    1     default:
    2       set log Phase Chat LCP IPCP CCP tun command
    3       ident user-ppp VERSION (built COMPILATIONDATE)
    4       set device /dev/cuau0
    5       set speed 115200
    6       set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
    7                 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
    8       set timeout 180
    9       enable dns
    10
    11    provider:
    12      set phone "(123) 456 7890"
    13      set authname foo
    14      set authkey bar
    15      set login "TIMEOUT 10 \"\" \"\" gin:--gin: \\U word: \\P col: ppp"
    16      set timeout 300
    17      set ifaddr x.x.x.x y.y.y.y 255.255.255.255 0.0.0.0
    18      add default HISADDR

Regel 1

  Deze regel identificeert de standaard regel. Commando’s in deze regel worden automatisch gestart zodra ppp gestart wordt.

Regel 2

  Zet de log paramaters aan. Zodra de configuratie naar verwachting werkt, moet deze regel aangepast worden naar:

      set log phase tun

  om te voorkomen dat er extreem grote log files gemaakt worden.

Regel 3

  Vertelt PPP hoe het zich moet identificeren aan de router aan de andere kant, als deze problemen heeft met het onderhandelen en het opzetten van de link en het leveren van informatie die de beheerders van de andere kant nuttig kunnen vinden om zulke problemen te onderzoeken.

Regel 4

  Identificeert het apparaat waarmee het modem verbonden is. COM1 is /dev/cuau0 en COM2 is /dev/cuau1.

Regel 5

  Stelt de snelheid in waarmee verbinding gemaakt wordt. Als 115200 niet werkt (wat wel zou moeten kunnen met elk nieuw modem), probeert u dan de instelling van 38400.

Regels 6 & 7

  De inbelregel. Gebruiker-PPP gebruikt een "expect-send" syntax wat vergelijkbaar is met het chat(8) programma. Bekijk de handleiding voor meer informatie over de mogelijkheden van deze taal.

  Let op dat dit commando doorgaat op de volgende regel zodat deze leesbaar blijft. Elk commando in ppp.conf kan dit doen als het laatste karakter op een regel, het \ karakter is.

Regel 8

  Stelt de idle timeout in voor een link. 180 seconden is standaard, dus deze regel is puur cosmetisch.

Regel 9

  Vertelt PPP om de andere kant te vragen om een bevestiging van de lokale naamserver instellingen. Als u een lokale naamserver draait moet deze regel uitgecommentarieërd of verwijderd worden.

Regel 10

  Een blanco regel voor de leesbaarheid. Blanco regels worden door PPP genegeerd.

Regel 11

  Identificeert een sectie voor de provider die "provider" genoemd wordt. Dit kan gewijzigd worden in de naam van uw provider zodat er later gebruik gemaakt van worden bij de optie `load provider` om een verbinding op te zetten.

Regel 12

  Stelt het telefoonnummer in voor deze provider. Meerdere telefoonnummers kunnen gespecificeerd worden door gebruik te maken van de dubbele punt (`:`) of het pipe karakter (`|`) als scheidingsteken. Het verschil tussen de twee scheidingstekens wordt beschreven in de ppp(8) handleiding. Om samen te vatten, als u wilt rouleren tussen de nummers gebruikt u dan een dubbelepunt. Als u altijd het eerste nummer als eerste wilt draaien en alleen de andere nummers wilt draaien als het eerste nummer niet werkt, gebruik dan het pipe karakter. Quote altijd de hele set van telefoonnummers zoals getoond.

  U moet het telefoonnummer citeren met dubbele quotes (`"`) als er enige intentie is in het gebruik van spaties in het telefoonummer. Dit kan een simpele, maar subtiele fout creeëren.

Regels 13 & 14

  Identificeert de gebruikersnaam en het wachtwoord. Wanneer gebruik gemaakt wordt van een UNIX® stijl login worden deze waarden verwezen door het `set login` commando door gebruik te maken van de \U en \P variabelen. Wanneer er verbinding gemaakt wordt door PPP en CHAP worden deze waardes gebruikt tijdens het authenticeren.

Regels 15

  Als u gebruik maakt van PPP en CHAP, zal er geen login op dit moment zijn, en moet deze regel uitgecommentarieërd of verwijderd worden. Zie het PAP en CHAP authenticatie hoofdstuk voor meer details.

  De login regel is hetzelfde als de chat-achtige syntax van de inbelregel. In dit voorbeeld werkt de reegl voor een dienst wiens login sessie als volgt eruit ziet:

      J. Random Provider
      login: foo
      password: bar
      protocol: ppp

  U moet dit script aanpassen om aan uw behoeften te voldoen. Wanneer u dit script voor het eerst schrijft, moet u ervoor zorgen dat u de "chat" log optie heeft aangezet zodat u kunt bepalen of de communicatie gaat zoals verwacht.

Regel 16

  Selt de standaard idle timeout in (in seconden) voor de connectie. Hier wordt de connectie automatisch afgesloten na 300 seconden van inactiviteit. Als u nooit een timeout wilt krijgen, kunt u de waarde op nul zetten of gebruik maken van de optie `-ddial` op de commando regel.

Regel 17

  Stelt het interface adres in. De regel x.x.x.x moet vervangen worden door het IP-adres dat uw provider aan u heeft uitgegeven. De regel y.y.y.y moet vervangen worden door het IP-adres dat uw provider aan u heeft gegeven voor de router (de machine waarmee u verbinding maakt). Als uw ISP u geen router adres heeft gegeven, gebruik dan `10.0.0.2/0`. Als u gebruik moet maken van een "gegokt", zorg ervoor dat er een regel staat in /etc/ppp/ppp.linkup zoals beschreven in de instructies voor PPP en dynamische IP adressen. Als deze regel weggelaten wordt kan `ppp` niet in `-auto` mode starten.

Regel 18

  Voegt een standaard routering toe naar uw providers router. Het speciale `HISADDR` woord, wordt vervangen door het router adres zoals gespecificeerd op regel 17. Het is belangrijk dat deze regel na regel 17 komt, anders is `HISADDR` nog niet geïnitialiseerd.

  Als u ppp niet in `-auto` mode wilt draaien, moet deze regel verplaatst worden naar het ppp.linkup bestand.

Het is niet nodig om een regel toe te voegen aan ppp.linkup wanneer u een statisch IP-adres krijgt en ppp met de `-auto` mode gestart is omdat uw routerings tabel al correcte regels heeft voordat u verbinding maakt. U kunt echter een regel aanmaken om programma’s te starten nadat de verbinding opgezet is. Dit wordt later uitgelegd met een voorbeeld over sendmail.

Voorbeeld van configuratiebestanden kunnen gevonden worden in de map usr/shared/examples/ppp.

##### PPP en dynamische IP-adressen

Als uw provider geen statisch IP-adres aanlevert kan `ppp` geconfigureerd worden om het lokale en het remote adres te onderhandelen. Dit wordt gedaan door het "gokken" van een IP-adres en PPP toestaan dit adres te corrigeren door gebruik te maken van het IP Configuration Protocol (IPCP) nadat er een verbinding opgezet is. De ppp.conf configuratie is verders hetzelfde als voor de PPP en statische IP adressen, met de volgende wijziging:

    17      set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255 0.0.0.0

Nogmaals, het regelnummer hoeft niet te worden toegevoegd, deze dient puur ter referentie. Indentatie van minstens één spatie is vereist.

Regel 17

  Het nummer achter het `/` karakter is het aantal netwerk master bits van het adres die ppp eist. Het is mogelijk dat u IP-adressen wilt gebruiken die meer van toepassing zijn op uw situatie, maar bovenstaand voorbeeld zal altijd werken.

  Het laatste argument (`0.0.0.0`) vertelt PPP om te onderhandelen met het adres `0.0.0.0` in plaats van met `10.0.0.1` en is benodigd voor sommige ISPs. Gebruik `0.0.0.0` niet als eerste argument voor het commando `set ifaddr`, omdat dit ervoor zorgt dat PPP geen initiële route kan opzetten in `-auto` mode.

Als u niet draait in `-auto` mode, moet u een nieuwe regel toevoegen aan /etc/ppp/ppp.linkup. ppp.linkup wordt uitgevoerd nadat een connectie is opgezet. Op dit moment krijgt `ppp` het interface adres en is het mogelijk om regels toe te voegen aan de route tabel:

    1     provider:
    2      add default HISADDR

Regel 1

  Bij het tot stand brengen van een verbinding zal `ppp` kijken voor een corresponderende regel in ppp.linkup volgens de volgende criteria: Als eerste, probeert het hetzelfde label te vinden zoals gebruikt in ppp.conf. Als dat mislukt, zoek dan een regel waarin het IP-adres van onze router in voorkomt. Deze regel bevat een IP stijl van 4 octetten. Als nu nog steeds geen corresponderende regel gevonden is wordt er gezocht naar de `HISADDR` regel.

Regel 2

  Deze regel verteld `ppp` om een standaard routering toe te voegen die wijst richting `HISADDR`. `HISADDR` wordt vervangen door het IP-adres van de router zoals onderhandeld door IPCP.

Zie de `pmdemand` regel in de bestanden /usr/shared/examples/ppp/ppp.conf.sample en /usr/shared/examples/ppp/ppp.linkup.sample voor een gedetailleerd voorbeeld.

##### Het ontvangen van binnenkomende gesprekken

Wanneer ppp geconfigureerd is om inkomende gesprekken te ontvangen op een machine die verbonden is met een LAN, moet u beslissen of er pakketten worden doorgestuurd naar het LAN. Als u dat doet, moet u de andere kant een IP-adres geven uit het subnet van uw LAN, en zult u gebruik moeten maken van het command `enable proxy` in het /etc/ppp/ppp.conf bestand. U zult ook moeten controleren of het /etc/rc.conf bestand het volgende bevat:

    gateway_enable="YES"

##### Welke getty?

Het configureren van FreeBSD voor inbel diensten levert een goede beschrijving van het inschakelen van inbeldiensten door gebruik te maken van getty(8).

Een alternatief voor `getty` is mgetty (van de port comms/mgetty+sendfax), een betere versie van `getty` ontworpen voor onder andere inbellijnen.

De voordelen van het gebruik van `mgetty` is dat het actief communiceert met modems, wat betekent dat als de port uitgeschakeld is in /etc/ttys, het modem de telefoon niet zal beantwoorden.

Latere versies van `mgetty` (vanaf 0.99beta en later) ondersteunen ook het automatisch detecteren van PPP stromen waardoor cliënten zonder extra scripting toegang kunnen krijgen tot uw server.

Raadpleeg naar Mgetty en AutoPPP voor meer informatie over `mgetty`.

##### PPP Permissies

Het `ppp` commando moet normaal gesproken gestart worden door de `root` gebruiker. Als u echter wilt toestaan dat `ppp` in server mode gestart wordt door een normale gebruiker door het uitvoeren van `ppp`, zoals beschreven hieronder, moet deze gebruiker permissie krijgen om `ppp` te starten. Dit kan gedaam worden door de gebruiker toe te voegen aan de `network` groep van het /etc/group bestand.

U moet de gebruiker ook toegang geven tot één of meerdere secties van het configuratie bestand door gebruik te maken van het `allow` commando:

    allow users fred mary

Als dit commando wordt gebruikt in de `default` sectie, geeft ppp alle opgegeevn gebruikers toegang tot alle opties.

##### PPP shells voor dynamische IP-gebruikers

Creeër een bestand genaamd /etc/ppp/ppp-shell welke de volgende gegevens bevat:

    #!/bin/sh
    IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'`
    CALLEDAS="$IDENT"
    TTY=`tty`

    if [ x$IDENT = xdialup ]; then
            IDENT=`basename $TTY`
    fi

    echo "PPP voor $CALLEDAS op $TTY"
    echo "Starten van PPP voor $IDENT"

    exec /usr/sbin/ppp -direct $IDENT

Dit script moet uitvoerbaar zijn. Ook moet er een symbolische link gemaakt worden naar dit script met de naam ppp-dialup door gebruik te maken van de volgende commando’s:

    # ln -s ppp-shell /etc/ppp/ppp-dialup

U moet dit script gebruiken als de shell voor al uw inbel gebruikers. Dit is een voorbeeld uit /etc/passwd voor een PPP inbelgebruiker met de gebruikersnaam `pchilds` (Let op, u mag niet direct het wachtwoord bestand bewerken, gebruik daarom het programma vipw(8)).

    pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup

Creeër vervolgens een map /home/ppp die door iedereen gelezen en beschreven kan worden en zet daar de volgende 0 byte grote bestanden in:

    -r--r--r--   1 root     wheel           0 May 27 02:23 .hushlogin
    -r--r--r--   1 root     wheel           0 May 27 02:22 .rhosts

welke voorkomen dat /etc/motd getoond wordt.

##### PPP shells voor statische IP-gebruikers

Creeër het ppp-shell bestand zoals hierboven, en voor elk account met een statisch toegewezen IP-adres creeërt u een symbolische link naar ppp-shell.

Als u bijvoorbeeld drie inbel gebruikers hebt genaamd `fred`, `sam` en `mary` waar u een /24 CIDR netwerk voor routeert, moet u het volgende typen:

    # ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred
    # ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam
    # ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary

Elk van deze inbelgebruikers moet de shell ingesteld hebben op de symbolische link die hierboven is gecreeërd (bijvoorbeeld `mary`'s shell moet zijn /etc/ppp/ppp-mary).

##### Het instellen van ppp.conf voor dynamische IP-gebruikers

Het /etc/ppp/ppp.conf bestand moet iets zoals hieronder bevatten:

    default:
      set debug phase lcp chat
      set timeout 0

    ttyu0:
      set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255
      enable proxy

    ttyu1:
      set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255
      enable proxy

| Het inspringen is belangrijk.

De `default:` sectie wordt altijd geladen. Voor elke inbellijn die ingeschakeld is in /etc/ttys moet een soortgelijke regel worden gemaakt als die voor `ttyu0:` hierboven. Elke regel moet een uniek IP-adres krijgen van uw pool van IP-adressen voor dynamische gebruikers.

##### Het instellen van ppp.conf voor statische IP-gebruikers.

Samen met de inhoud van het voorbeeld /usr/shared/examples/ppp/ppp.conf bestand hierboven moet een sectie aangemaakt worden voor elke van de statisch ingestelde inbelgebruikers. We gaan door met ons `fred`, `sam` en `mary` voorbeeld.

    fred:
      set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255

    sam:
      set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255

    mary:
      set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255

Het /etc/ppp/ppp.linkup bestand moet ook informatie over routeringen bevatten voor elke statische IP-gebruiker waar nodig. De regel hieronder voegt een routering toe voor het `203.14.201.0/24` netwerk via de ppp link van de gebruiker.

    fred:
      add 203.14.101.0 netmask 255.255.255.0 HISADDR

    sam:
      add 203.14.102.0 netmask 255.255.255.0 HISADDR

    mary:
      add 203.14.103.0 netmask 255.255.255.0 HISADDR

##### `mgetty` en AutoPPP

Standaard staat de optie `AUTO_PPP` in de port comms/mgetty+sendfax welke `mgetty` in staat stelt om de LCP fase van PPP connecties te detecteren en aan de hand daarvan automatisch een ppp shell te creeëren. Echter, de standaard login procedure vindt in deze mode niet plaats, waardoor het nodig is om de gebruikers te authenticeren door middel van PAP of CHAP.

De volgende sectie gaat er vanuit dat u succesvol de port comms/mgetty+sendfax op uw systeem heeft gecompileerd en geïnstalleerd.

Zorg ervoor dat uw /usr/local/etc/mgetty+sendfax/login.config bestand de volgende inhoud heeft:

    /AutoPPP/ -     -		      /etc/ppp/ppp-pap-dialup

Dit verteld `mgetty` om het ppp-pap-dialup script te starten wanneer er een PPP connectie gedetecteerd wordt.

Creeër een bestand genaamd /etc/ppp/ppp-pap-dialup met de volgende inhoud (het bestand moet uitvoerbaar zijn):

    #!/bin/sh
    exec /usr/sbin/ppp -direct pap$IDENT

Voor elke inbelregel die ingeschakeld is in /etc/ttys, creeër een corresponderende regel in /etc/ppp/ppp.conf. Dit gaat goed samen met de definities die hierboven gedaan zijn.

    pap:
      enable pap
      set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40
      enable proxy

Elke gebruiker die op deze manier inlogt moet een gebruikersnaam en wachtwoord hebben in het /etc/ppp/ppp.secret bestand of de volgende optie moet worden toegevoegd om gebruikers te authenticeren via PAP vanuit het /etc/passwd bestand.

    enable passwdauth

Als u een aantal gebruikers een statisch IP-adres wilt geven, kan dat gespecificeerd worden als het derde argument in /etc/ppp/ppp.secret. Zie /usr/shared/examples/ppp/ppp.secret.sample voor een voorbeeld.

##### Microsoft® Extensies

Het is mogelijk om PPP dusdanig te configuren dat deze DNS en NetBIOS naamserver adressen meegeeft.

Om deze extensies in te schakelen met PPP versie 1.x kunnen de volgende regels toegevoegd worden aan de relevante sectie in /etc/ppp/ppp.conf:

    enable msext
    set ns 203.14.100.1 203.14.100.2
    set nbns 203.14.100.5

en voor PPP versie 2 en hoger:

    accept dns
    set dns 203.14.100.1 203.14.100.2
    set nbns 203.14.100.5

Dit verteld de cliënt het primaire en secundaire naamserver adres, en geeft een NetBIOS naamserver adres.

In versie 2 en hoger zal PPP gebruik maken van de instellingen in /etc/resolv.conf als de regel `set dns` niet wordt gevonden.

##### PAP en CHAP authenticatie

Sommige providers stellen hun systemen dusdanig in dat het authenticatie gedeelte van uw verbinding wordt afgehandeld door het PAP of CHAP authenticatie mechanisme. Als dit het geval is zal uw provider u niet voorzien van een `login:` prompt wanneer u verbinding maakt maar zal deze meteen gaan communiceren over het PPP protocol.

PAP is minder veilig dan CHAP, maar beveiliging is meestal geen probleem omdat wachtwoorden, ook al worden deze in platte tekst verstuurd met PAP, alleen worden verstuurd via een seriële lijn. Hier is maar weinig ruimte voor crackers om stiekem mee te luisteren.

Terug verwijzende naar de PPP en statische IP-adressen of PPP en dynamische IP-adressen secties moeten de volgende aanpassingen gedaan worden:

    13      set authname Mijngebruikersnaam
    14      set authkey Mijnwachtwoord
    15      set login

Regel 13

  Deze regel geeft uw PPP/CHAP gebruikersnaam aan. U moet de juiste waardes invullen voor Mijngebruikersnaam.

Regel 14

  Deze regel geeft uw PPP/CHAP wachtwoord aan. U moet de juiste waarde invullen voor Mijnwachtwoord. Misschien wilt u een extra regel toevoegen als:

      16      accept PAP

  of

      16      accept CHAP

  om duidelijk te maken op welke manier u wilt authenticeren, standaard worden zowel PAP als CHAP geaccepteerd.

Regel 15

  Uw ISP zal normaal gesprokken niet eisen dat u op de server aanlogt als u gebruik maakt van PAP of CHAP. Daarom moet u de "set login" regel uitschakelen.

##### Het aanpassen van uw `ppp` configuratie terwijl deze in gebruik is

Het is mogelijk om tegen met het `ppp` programma te communiceren terwijl deze in gebruik is op de achtergrond, maar dat kan alleen als er een geschikte diagnostische poort ingesteld is. Om dit te kunnen doen moet de volgende regel worden toegevoegd aan de configuratie:

    set server /var/run/ppp-tun%d DiagnosticPassword 0177

Dit vertelt PPP om te luisteren naar het gespecificeerde UNIX® domein socket, waarbij de cliënten gevraagd worden om het opgegeven wachtwoord voordat toegang verleend kan worden. Het `%d` in de naam wordt vervangen door het tun apparaat dat gebruikt wordt voor de verbinding.

Zodra een socket ingesteld is kan het pppctl(8) programma gebruikt worden in scripts die het draaiende programma willen bewerken.

#### 27.2.1.3. De vertaalmogelijkheden van PPP voor netwerkadressen gebruiken

PPP heeft de mogelijkheid om interne NAT te gebruiken zonder dat de kernel hiervoor iets hoeft te doen. Deze functionaliteit kan worden ingeschakeld door de volgende regel in /etc/ppp/ppp.conf:

    nat enable yes

Ook kan PPP NAT ingeschakeld worden door de optie `-nat`. Er is ook een /etc/rc.conf optie genaamd `ppp_nat` welke standaard ingeschakeld is.

Als u gebruik wilt maken van deze optie, kunt u de volgende /etc/ppp/ppp.conf opties ook nuttig vinden om binnenkomende connecties door te sturen:

    nat port tcp 10.0.0.2:ftp ftp
    nat port tcp 10.0.0.2:http http

of als u niets vertrouwd vanaf buitenaf:

    nat deny_incoming yes

#### 27.2.1.4. Laatste systeemconfiguratie

U heeft nu `ppp` geconfigurerd, maar er moeten nog een aantal dingen gedaan worden voordat deze klaar is om te kunnen werken. Hiervoor moeten een aantal aanpassingen gedaan worden in het bestand /etc/rc.conf.

Van boven naar beneden kijkende zorgen we er als eerste voor dat de `hostname=` regel ingesteld is met bijvoorbeeld:

    hostname="foo.example.com"

Als uw provider u een statisch adres en een naam heeft gegeven is het waarschijnlijk handig dat u deze naam gebruikt als uw hostnaam.

Zoek naar de `network_interfaces` variabele. Als u uw systeem wilt configuren om in te bellen bij uw provider wanneer nodig, zorg er dan voor dat het tun0 apparaat is toegevoegd aan deze lijst. Haal deze anders weg.

    network_interfaces="lo0 tun0"
    ifconfig_tun0=

| De `ifconfig_tun0` variabele moet leeg zijn, en een bestand genaamd /etc/start_if.tun0 moet aangemaakt worden met de volgende inhoud:
    ppp -auto mysystem
Dit script wordt uitgevoerd tijdens de netwerk configuratie, waarbij uw ppp daemon wordt gestart in automatische mode. Als u een LAN heeft waarvoor deze machine een router is wilt u wellicht ook de `-alias` meegeven. Bekijk de handleiding voor verdere details.

Zorg ervoor dat het router programma is ingesteld op `NO` door middel van de volgende regel in uw /etc/rc.conf bestand:

    router_enable="NO"

Het is belangrijk dat de `routed` daemon niet gestart wordt, omdat `routed` de neiging heeft om de standaard routeringtabel regels die gemaakt worden door `ppp` te verwijderen.

Het is waarschijnlijk een goed idee om te zorgen dat de `sendmail_flags` regel de `-q` optie niet wordt meegenomen, anders zal `sendmail` periodiek een zoek actie verrichten op het netwerk, wat ervoor zorgt dat uw machine gaat uitbellen. U kunt het volgende instellen:

    sendmail_flags="-bd"

Het nadeel hiervan is dat u `sendmail` moet forceren om de mailqueue periodiek te bekijken zodra de ppp link op is door het typen van:

    # /usr/sbin/sendmail -q

U wilt wellicht gebruik maken van het `!bg` commando in ppp.linkup om dit automatisch te doen:

    1     provider:
    2       delete ALL
    3       add 0 0 HISADDR
    4       !bg sendmail -bd -q30m

Als u dit niet wilt doen, is het mogelijk om een "dfiler" in te stellen welke SMTP verkeer blokkeert. Raadpleeg naar de voorbeeld bestanden voor verdere details.

Alles wat nu nog nodig is, is het herstarten van de machine. Na het herstarten kunt het volgende typen:

    # ppp

en daarna `dial provider` om de PPP sessie te starten, of u indien u dat wilt kan `ppp` automatisch sessies opzetten wanneer er uitgaand verkeer is (en wanneer u geen start_if.tun0 script heeft aangemaakt), typt u:

    # ppp -auto provider

#### 27.2.1.5. Samenvatting

Om samen te vatten zijn de volgende stappen benodigd om PPP voor de eerste keer in te stellen:

Aan de cliënt zijde:

1. Zorg ervoor dat het tun apparaat is ingeschakeld in uw kernel.

2. Zorg ervoor dat het apparaatbestand tunN beschikbaar is in de map /dev.

3. Creeër een regel in /etc/ppp/ppp.conf. Het pmdemand voorbeeld zou moeten volstaand voor de meeste providers.

4. Als u dynamische IP-adressen heeft, creeër een regel in /etc/ppp/ppp.linkup.

5. Update uw /etc/rc.conf bestand.

6. Creeër een start_if.tun0 script als u op verzoek wilt inbellen.

Aan de server zijde:

1. Zorg ervoor dat het tun apparaat is ingeschakeld in uw kernel.

2. Zorg ervoor dat het apparaatbestand tunN beschikbaar is in de map /dev.

3. Creeër een regel in /etc/passwd (door gebruik te maken van het vipw(8) programma).

4. Creeër een profiel in deze gebruikers home directory die `ppp -direct direct-server` start of iets in die trant.

5. Creeër een regel in /etc/ppp/ppp.conf. Het direct-server voorbeeld zou moeten volstaan.

6. Creeër een regel in /etc/ppp/ppp.linkup.

7. Update uw /etc/rc.conf bestand.

## 27.3. Kernel-PPP gebruiken

### 27.3.1. Het opzetten van kernel-PPP

| Deze sectie geldt en is alleen geldig voor FreeBSD 7.X.

Voordat u begint met het opzetten van PPP op uw machine, zorg ervoor dat het `pppd` commando zich bevindt in de map /usr/sbin en dat de map /etc/ppp bestaat.

`pppd` kan in twee verschillende modes werken:

1. Als een "cliënt" - u wilt uw machine verbinden met de buitenwereld via een seriële PPP-verbinding of een modemlijn.

2. Als een "server" - uw machine bevind zich in het netwerk en wordt gebruikt om andere computers te verbinden door middel van PPP.

In beide gevallen moet u een bestand met opties instellen (/etc/ppp/options of ~/.ppprc als er meer dan één gebruiker is op uw machine die gebruik maakt van PPP).

U heeft ook enige modem/seriële software nodig (comms/kermit wordt aanbevolen), zodat u de andere kant kunt bellen en een verbinding kunt opzetten.

### 27.3.2. Gebruik maken van `pppd` als cliënt

De volgende /etc/ppp/options kan gebruikt worden om met een Cisco terminal server PPP lijn verbinding te maken.

    crtscts         # Schakel hardware flow controle in
    modem           # modem controle lijn
    noipdefault     # De PPP-server aan de andere kant moet uw IP-adres
                    # opgeven, als de machine aan de andere kant uw IP
                    # adres niet meegeeft tijdens de IPCP onderhandeling
                    # moet deze optie worden verwijderd
    passive         # Wacht op LCP pakketten
    domain ppp.foo.com      # Vul uw domein naam hier in

    :remote_ip    # Vul het IP-adres van de PPP
                    # server in deze wordt gebruikt om pakketten te
                    # routeren via de PPP link.  Als u de noipdefault optie
                    # niet heeft aangegeven verander dan deze regel in
                    # local_ip:remote_ip

    defaultroute    # Vul dit in als u wilt dat de PPP server de standaard
                    # router wordt

Om verbinding te maken:

1. Bel naar de machine aan de andere kant door middel van Kermit (of een ander modem programma), en vul uw gebruikersnaam en wachtwoord in (of wat er ook nodig is om de verbinding op te brengen met de machine aan de andere kant).

2. Stop Kermit (zonder de lijn op te hangen).

3. Type het volgende:

       # /usr/sbin/pppd /dev/tty01 19200

   Wees er zeker van dat de juiste snelheid en het juiste apparaat wordt aangesproken.

Uw computer is nu verbonden met PPP. Als de connectie faalt, kan de `debug` optie worden meegegeven in het /etc/ppp/options bestand waarna op de console berichten kunnen worden geraadpleegd om het probleem te achterhalen.

Het volgende /etc/ppp/pppup script zal alle drie de stappen automatisch doen:

    #!/bin/sh
    pgrep -l pppd
    pid=`pgrep pppd`
    if [ "X${pid}" != "X" ] ; then
            echo 'killing pppd, PID=' ${pid}
            kill ${pid}
    fi
    pgrep -l kermit
    pid=`pgrep kermit`
    if [ "X${pid}" != "X" ] ; then
            echo 'killing kermit, PID=' ${pid}
            kill -9 ${pid}
    fi

    ifconfig ppp0 down
    ifconfig ppp0 delete

    kermit -y /etc/ppp/kermit.dial
    pppd /dev/tty01 19200

/etc/ppp/kermit.dial is een Kermit script dat belt en alle benodigde authorisaties doet op de machine aan de andere kant (een voorbeeld van zo’n script is bijgevoegd aan het einde van dit document).

Gebruik het volgende /etc/ppp/pppdown script om de PPP lijn af te breken:

    #!/bin/sh
    pid=`pgrep pppd`
    if [ X${pid} != "X" ] ; then
            echo 'killing pppd, PID=' ${pid}
            kill -TERM ${pid}
    fi

    pgrep -l kermit
    pid=`pgrep kermit`
    if [ "X${pid}" != "X" ] ; then
            echo 'killing kermit, PID=' ${pid}
            kill -9 ${pid}
    fi

    /sbin/ifconfig ppp0 down
    /sbin/ifconfig ppp0 delete
    kermit -y /etc/ppp/kermit.hup
    /etc/ppp/ppptest

Controleer of `pppd` nog steeds draait door het uitvoeren van /usr/etc/ppp/ppptest, welke er als volgend uitziet:

    #!/bin/sh
    pid=`pgrep pppd`
    if [ X${pid} != "X" ] ; then
            echo 'pppd running: PID=' ${pid-NONE}
    else
            echo 'No pppd running.'
    fi
    set -x
    netstat -n -I ppp0
    ifconfig ppp0

Om het modem op te hangen, voer het /etc/ppp/kermit.hup script uit welke het volgende bevat:

    set line /dev/tty01	; vul hier uw modem in
    set speed 19200
    set file type binary
    set file names literal
    set win 8
    set rec pack 1024
    set send pack 1024
    set block 3
    set term bytesize 8
    set command bytesize 8
    set flow none

    pau 1
    out +++
    inp 5 OK
    out ATH0\13
    echo \13
    exit

Hier is een alternatieve methode welke gebruik maakt van `chat` in plaats van `kermit`:

De volgende twee regels zijn voldoende om een `pppd` verbinding op te zetten.

/etc/ppp/options:

    /dev/cuad1 115200

    crtscts         # Schakel hardware flow controle in
    modem           # modem controle lijn
    connect "/usr/bin/chat -f /etc/ppp/login.chat.script"
    noipdefault     # De PPP server aan de andere kant moet uw IP-adres
                    # opgeven, als de machine aan de andere kant uw IP
                    # adres niet meegeeft tijdens de IPCP onderhandeling
                    # moet deze optie worden verwijderd
    passive         # Wacht op LCP pakketten
    domain your.domain   # Vul uw domein naam hier in

    :remote_ip    # Vul het IP-adres van de PPP
                    # server in deze wordt gebruikt om pakketten te
                    # routeren via de PPP link.  Als u de noipdefault optie
                    # niet heeft aangegeven verander dan deze regel in
                    # local_ip:remote_ip

    defaultroute    # Vul dit in als u wilt dat de PPP server de standaard
                    # router wordt

/etc/ppp/login.chat.script:

| Het volgende moet op één regel.

    ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDTtelefoon.nummer
      CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: login-id
      TIMEOUT 5 sword: password

Zodra deze zijn geïnstalleerd en correct aangepast is het enige dat gedaan moet worden, het starten van `pppd` zoals volgt:

    # pppd

### 27.3.3. Gebruik maken van `pppd` als server

/etc/ppp/options moet ongeveer het volgende bevatten:

    crtscts                         # Hardware flow controle
    netmask 255.255.255.0           # netmask (niet vereist)
    192.114.208.20:192.114.208.165  # IP's van lokale en niet lokale hosten
                                    # het lokale IP moet anders zijn dan
                                    # degeen die is toegewezen aan de
                                    # Ethernet (of andere) interface op uw
                                    # machine.  remote IP is het IP-adres
                                    # dat wordt toegewezen aan de machine
                                    # aan de andere kant
    domain ppp.foo.com              # uw domein
    passive                         # Wacht op LCP
    modem                           # modem lijn

Het volgende /etc/ppp/pppserv script zal pppd vertellen zich te gedragen als server:

    #!/bin/sh
    pgrep -l pppd
    pid=`pgrep pppd`
    if [ "X${pid}" != "X" ] ; then
            echo 'killing pppd, PID=' ${pid}
            kill ${pid}
    fi
    pgrep -l kermit
    pid=`pgrep kermit`
    if [ "X${pid}" != "X" ] ; then
            echo 'killing kermit, PID=' ${pid}
            kill -9 ${pid}
    fi

    # reset ppp interface
    ifconfig ppp0 down
    ifconfig ppp0 delete

    # enable autoanswer mode
    kermit -y /etc/ppp/kermit.ans

    # run ppp
    pppd /dev/tty01 19200

Gebruik dit /etc/ppp/pppservdown script om de server te stoppen:

    #!/bin/sh
    pgrep -l pppd
    pid=`pgrep pppd`
    if [ "X${pid}" != "X" ] ; then
            echo 'killing pppd, PID=' ${pid}
            kill ${pid}
    fi
    pgrep -l kermit
    pid=`pgrep kermit`
    if [ "X${pid}" != "X" ] ; then
            echo 'killing kermit, PID=' ${pid}
            kill -9 ${pid}
    fi
    ifconfig ppp0 down
    ifconfig ppp0 delete

    kermit -y /etc/ppp/kermit.noans

Het volgende Kermit script (/etc/ppp/kermit.ans) zal het automatisch beantwoorden van uw modem in of uitschakelen. Het moet eruit zien als volgend:

    set line /dev/tty01
    set speed 19200
    set file type binary
    set file names literal
    set win 8
    set rec pack 1024
    set send pack 1024
    set block 3
    set term bytesize 8
    set command bytesize 8
    set flow none

    pau 1
    out +++
    inp 5 OK
    out ATH0\13
    inp 5 OK
    echo \13
    out ATS0=1\13   ; Verander dit in out ATS0=0\13 als u automatisch
                    ; beantwoorden wilt uitschakelen
    inp 5 OK
    echo \13
    exit

Een script genaamd /etc/ppp/kermit.dial wordt gebruikt voor het bellen en authenticeren van de machine aan de andere kant. U moet deze aanpassen aan uw wensen. Vul in dit script uw inlognaam en wachtwoord in, u moet ook het input statement aanpassen afhankelijk hoe uw modem antwoordt en de communicatie van de machine aan de andere kant.

    ;
    ; Vul de seriële lijn in welke verbonden is met het modem
    ;
    set line /dev/tty01
    ;
    ; Stel het modem snelheid in:
    ;
    set speed 19200
    set file type binary            ; volledige 8 bit bestands xfer
    set file names literal
    set win 8
    set rec pack 1024
    set send pack 1024
    set block 3
    set term bytesize 8
    set command bytesize 8
    set flow none
    set modem hayes
    set dial hangup off
    set carrier auto                ; Daarna stel SET CARRIER in indien nodig
    set dial display on             ; Stel daarna SET DIAL in indien nodig
    set input echo on
    set input timeout proceed
    set input case ignore
    def \%x 0                       ; login prompt teller
    goto slhup

    :slcmd                          ; stel het modem in op commandomodus
    echo Stel het modem in op commandomodus.
    clear                           ; Verwijder ongelezen karakters uit de input buffer
    pause 1
    output +++                      ; hayes escape sequence
    input 1 OK\13\10                ; wacht op OK
    if success goto slhup
    output \13
    pause 1
    output at\13
    input 1 OK\13\10
    if fail goto slcmd              ; Als het modem niet antwoordt met OK, probeer het opnieuw

    :slhup                          ; hang de telefoon op
    clear                           ; Verwijder ongelezen karakters uit de input buffer
    pause 1
    echo De telefoon wordt opgehangen.
    output ath0\13                  ; hayes command voo on hook
    input 2 OK\13\10
    if fail goto slcmd              ; Als er geen OK antwoord is, stel het modem in op commandomodus

    :sldial                         ; Draai het nummer
    pause 1
    echo Bellen.
    output atdt9,550311\13\10               ; put phone number here
    assign \%x 0                    ; zero the time counter

    :look
    clear                           ; Verwijder ongelezen karakters uit de input buffer
    increment \%x                   ; Tel de seconden
    input 1 {CONNECT }
    if success goto sllogin
    reinput 1 {NO CARRIER\13\10}
    if success goto sldial
    reinput 1 {NO DIALTONE\13\10}
    if success goto slnodial
    reinput 1 {\255}
    if success goto slhup
    reinput 1 {\127}
    if success goto slhup
    if < \%x 60 goto look
    else goto slhup

    :sllogin                        ; login
    assign \%x 0                    ; Stel de tijd teller in op nul
    pause 1
    echo Zoeken naar de login prompt

    :slloop
    increment \%x                   ; Tel de seconden
    clear                           ; Verwijder ongelezen karakters uit de input buffer
    output \13
    ;
    ; Stel hier de verwachte login prompt in:
    ;
    input 1 {Username: }
    if success goto sluid
    reinput 1 {\255}
    if success goto slhup
    reinput 1 {\127}
    if success goto slhup
    if < \%x 10 goto slloop         ; Probeer 10 x om een login prompt te krijgen
    else goto slhup                 ; Hang op en probeer het nogmaals als er 10 mislukte pogingen zijn

    :sluid
    ;
    ; Vul hier uw gebruikersnaam in:
    ;
    output ppp-login\13
    input 1 {Password: }
    ;
    ; Vul hier uw wachtwoord in:
    ;
    output ppp-password\13
    input 1 {Entering SLIP mode.}
    echo
    quit

    :slnodial
    echo \7Er is geen kiestoon, controleer de telefoon lijn!\7
    exit 1

    ; local variables:
    ; mode: csh
    ; comment-start: "; "
    ; comment-start-skip: "; "
    ; end:

## 27.4. Het problemen oplossen van PPP-verbindingen

Deze sectie behandelt een paar problemen die kunnen optreden wanneer PPP wordt gebruikt over een modemverbinding. Bijvoorbeeld, misschien moet u exact weten wat de prompt is die het systeem waarop u inbelt presenteert. Sommige providers presenteren de `ssword` prompt terwijl anderen `password` tonen als het `ppp` script niet goed geschreven is en de inlogin poging faalt. De meest standaard manier om `ppp` verbindingen te onderzoeken op problemen is door handmatig een connectie op te zetten. De volgende informatie helpt u om stap voor stap een handmatige connectie op te zetten.

### 27.4.1. Controleer de apparaatknooppunten

Als er een eigen kernel gebruikt wordt, vergeet dan niet om de volgende regel in uw kernelinstellingenbestand op te nemen:

    device	uart

Het apparaat uart is al in de kernel `GENERIC` opgenomen, dus zijn er in dit geval geen extra stappen nodig. Controleer de resultaten van het commando `dmesg` voor het modemapparaat door middel van:

    # dmesg | grep uart

U zou enige informatie moeten ontvangen over de uart apparaten. Deze bevinden zich op de COM-poorten die we nodig hebben. Als uw modem zich gedraagt als een standaard seriële poort zou u deze moeten vinden als zijnde uart1 of COM2. Als dat klopt hoeft u de kernel niet opnieuw te bouwen. Wanneer u de sio-apparaten controleert en het modem is op uart1 te vinden of als COM2 als u zich onder MS-DOS® bevindt, dan is uw modemapparaat /dev/cuau1.

### 27.4.2. Handmatig verbinding maken

Verbinding maken met het internet door handmatig controle te hebben over `ppp` is snel, makkelijk en een geweldige manier om problemen te vinden bij een verbinding of zelfs voor alleen het verkrijgen van inforamtie over hoe uw provider de `ppp` cliënt verbindingen behandelt. Laten we starten met PPP vanaf de commando regel. Let op dat in al onze voorbeelden we gebruik maken van example als hostnaam van de machine die PPP draait. U start `ppp` door enkel het commando `ppp` te typen:

    # ppp

We hebben nu `ppp` gestart.

    ppp ON example> set device /dev/cuau1

We stellen ons modem in, in dit geval is dat cuau1.

    ppp ON example> set speed 115200

We stellen de verbindings snelheid in, in dit geval gebruiken we 115,200 kbps.

    ppp ON example> enable dns

Vertel `ppp` om onze naam vertaler te configuren, en de juiste naamserver regels toe te voegen aan /etc/resolv.conf. Als `ppp` onze hostnaam niet kan bepalen, kunnen we deze later instellen.

    ppp ON example> term

Wissel naar "terminal" mode zodat we handmatig het modem kunnen bedienen.

    deflink: Entering terminal mode on /dev/cuau1
    type '~h' for help

    at
    OK
    atdt123456789

Gebruik `at` om het modem te initialiseren, en daarna `atdt` en het nummer voor uw provider om het inbel proces te beginnen.

    CONNECT

Bevestiging van de verbinding, als we tegen problemen aanlopen met de verbinding, welke niet gerelateerd zijn aan de hardware, is dit de plek om te beginnen om de problemen op te lossen.

    provider login:myusername

Hier wordt u gevraagd om een gebruikersnaam. Geef de gebruikersnaam op welke aangeleverd is door de provider.

    provider pass:mypassword

Deze keer worden we gevraagd voor een wachtwoord. Vul uw wachtwoord in welke u is aangeleverd door de provider. Net zoals het aanloggen op FreeBSD zal het wachtwoord niet getoond worden.

    Shell or PPP:ppp

Afhankelijk van uw provider wordt deze prompt wellicht nooit getoond. Hier wordt ons gevraagd of we een shell willen starten op de host van de provider, of dat we `ppp` willen starten. In dit geval is er gekozen voor `ppp` omdat we een internet verbinding willen.

    Ppp ON example>

Let op dat in dit voorbeeld de eerste `p` een hoofdletter geworden is. Dit geeft aan dat we succesvol verbonden zijn met de provider.

    PPp ON example>

We hebben ons succesvol geauthenticeerd bij onze provider en we wachten op een IP-adres dat ons wordt toegewezen.

    PPP ON example>

We hebben een IP adres verkregen en hebben succesvol een verbinding opgebouwd.

    PPP ON example>add default HISADDR

Hier wordt een standaard route toegevoegd. Deze moet worden toegevoegd voordat we kunnen communiceren met de buitenwereld aangezien de enige verbinding op dit moment met de andere machine is. Als dit niet lukt omdat er al een route bestaat, kan er een "bang" karakter (`!`) geplaatst worden voor de `add` optie. Als alternatief kan dit ook gedaan worden voordat de verbinding opgezet wordt, waarna een nieuwe route onderhandeld wordt.

Als alles goed gegaan is, zou er nu een actieve verbinding moeten zijn met het internet, welke in de achtergrond gezet kan worden door `CTRL`+`z` te gebruiken. Als u ziet dat het commando `PPP` terugkeert naar `ppp` is de verbinding afgebroken. Dit is goed om te weten, aangezien dit de status van de verbinding toont. Hoofdletter P’s betekenen dat er een verbinding is met de provider, en kleine letters betekend dat de verbinding verloren is gegaan om welke reden dan ook. `ppp` kent alleen deze twee statussen.

#### 27.4.2.1. Debuggen

Als u een directe lijn heeft en geen verbinding kan maken, zet dan hardware flow CTS/RTS uit met de `set ctsrts off` optie. Dit is meestal het geval voor een PPP terminal server waar PPP hangt wanneer deze probeert te schrijven naar uw communicatie link, dus moet deze wachten op een CTS of een Clear To Send signaal welke misschien nooit komt. Als u deze optie gebruikt, moet u ook de `set accmap` optie gebruiken welke benodigd kan zijn om hardware afhankelijkheden te omzeilen door bepaalde karakters over en weer te sturen, meestal XON/XOFF. Zie de ppp(8) handleiding voor meer informatie over deze optie en hoe deze gebruikt kan worden.

Als u een ouder modem heeft, kan het voorkomen dat u ook de `set parity even` optie moet gebruiken. De parity is standaard ingesteld op none maar wordt gebruikt voor fout controle (met als gevolg een grote verhoging van de hoeveelheid data) bij oudere modems en sommige providers. Dit is bijvoorbeeld een benodigde optie bij de Compuserve provider.

Het kan voorkomen dat PPP niet terugkeert naar de commando mode, wat meestal betekent dat er een onderhandelings fout is waarbij de provider wacht op uw kant om de onderhandeling te kunnen beginnen. Op dit moment kunt u gebruik maken van het `~p` commando om ppp te forceren om de configuratie informatie te versturen.

Als u nooit een inlogin prompt krijgt is het zeer waarschijnlijk dat u PAP of CHAP authenticatie moet gebruiken in plaats van de UNIX® stijl in het voorbeeld hierboven. Om gebruik te maken van PAP of CHAP voegt u het volgende opties toe aan PPP voordat u de terminal mode ingaat:

    ppp ON example> set authname mijngebruikersnaam

Waarbij mijngebruikersnaam moet worden vervangen met de gebruikersnaam die wordt toegewezen door de provider.

    ppp ON example> set authkey mijnwachtwoord

Waarbij mijnwachtwoord moet worden vervangen door het wachtwoord wat u is toegewezen door de provider.

Als u een goed werkende verbinding kunt maken maar het onmogelijk lijkt om een domeinnaam te vinden, probeert u dan ping(8) te gebruiken met een IP adres en kijk of er enige informatie terugkomt. Als u 100 procent (100%) packet loss ziet is het zeer waarschijnlijk dat u geen default route heeft gekregen. Controleer nogmaals of de optie `add default HISADDR` ingesteld is tijdens de connectie. Als u verbinding kunt maken met een extern IP adres is het mogelijk dat een naamserver niet is toegevoegd aan het /etc/resolv.conf bestand. Dit bestand moet er uitzien als volgend:

    domain example.com
    nameserver x.x.x.x
    nameserver y.y.y.y

Waar x.x.x.x en y.y.y.y moet worden vervangen door het IP adres van uw providers naamservers. Deze informatie kan mogelijk wel of niet geleverd zijn toen u zich inschreef, maar een snel telefoontje naar uw provider zou hierin uitkomst kunnen bieden.

U kunt ook syslog(3) gebruiken om een log functie voor PPP aan te maken. Voeg het volgende toe aan /etc/syslog.conf:

    !ppp
    *.*     /var/log/ppp.log

Deze functionaliteit bestaat in de meeste gevallen al.

## 27.5. PPP gebruiken over Ethernet (PPPoE)

Deze sectie beschrijft hoe PPP over Ethernet opgezet kan worden (PPPoE).

### 27.5.1. Het configureren van de kernel

Inmiddels is het niet langer benodigd om de kernel configuratie aan te passen voor PPPoE. Als de benodigde netgraph ondersteuning niet in de kernel aanwezig is zal deze dynamisch geladen worden door ppp.

### 27.5.2. Het instellen van ppp.conf

Hieronder volgt een voorbeeld van een werkende ppp.conf:

    default:
      set log Phase tun command # Er kan meer gedetailleerde logging ingeschakeld worden indien gewenst
      set ifaddr 10.0.0.1/0 10.0.0.2/0

    name_of_service_provider:
      set device PPPoE:xl1 # Vervang x11 met uw ethernet apparaat
      set authname UWLOGINNAAM
      set authkey UWWACHTWOORD
      set dial
      set login
      add default HISADDR

### 27.5.3. Het draaien van ppp

Als de `root` gebruiker kunt u het volgende draaien:

    # ppp -ddial name_of_service_provider

### 27.5.4. Het pstarten van ppp tijdens het opstarten

Voeg het volgende toe aan uw /etc/rc.conf bestand:

    ppp_enable="YES"
    ppp_mode="ddial"
    ppp_nat="YES"	# Indien u nat wilt inschakelen voor het lokale netwerk, gebruik anders NO
    ppp_profile="naam_van_service_provider"

### 27.5.5. Gebruik maken van een PPPoE service label

Soms is het nodig om een service tag te gebruiken om verbinding te kunnen maken. Service tags worden gebruikt om onderscheid te maken tussen de verschillende PPPoE servers die verbonden zijn met een netwerk.

Uw provider zou u de juiste service tag gegevens verstrekt moeten hebben in de documentatie die opgeleverd is. Als u deze niet kunt vinden in de documentatie moet u deze opvragen bij uw technische support afdeling van uw provider.

Als allerlaatste optie kunt u de aangerade methode gebruiken van het Roaring Penguin PPPoE programma welke gevonden kan worden in de Ports Collectie. Houd u echter in uw achterhoofd dat dit uw modem ernstige schade kan toebrengen, dus denkt u er goed over na voordat u het uitprobeert. Installeer simpelweg het programma dat is meegeleverd bij het modem door uw provider. Open hierna het System menu vanuit het programma. De naam van uw profiel moet hier te vinden zijn. Meestal is deze ISP.

De naam van het profiel (servicetag) zal worden gebruikt in de PPPoE configuratie regel van ppp.conf in het provider gedeelte van het `set device` commando (zie de ppp(8) handleiding voor meer informatie hierover). Dit zou er als volgend uit moeten zien:

    set device PPPoE:xl1:ISP

Vergeet u niet om xl1 te vervangen door het juiste apparaat voor uw Ethernet kaart.

Vergeet u niet om ISP te vergangen door het profiel wat hierboven ingesteld is.

Voor meer informatie zie:

- Cheaper Broadband with FreeBSD on DSL door Renaud Waldura.

### 27.5.6. PPPoE met een 3Com® HomeConnect™ ADSL Modem Dual Link

Dit modem volgt RFC 2516 niet (Een methode voor het versturen van PPP over Ethernet (PPPoE) geschreven door by L. Mamakos, K. Lidl, J. Evarts, D. Carrel, D. Simone, and R. Wheeler). Daarentegen is een ander type pakket code gebruikt voor de Ethernet frames. Klaagt u alstublift bij 3Com als u vind dat ze zich aan de PPPoE specificatie moeten houden.

Om FreeBSD in staat te stellen om te communiceren met dit apparaat, moet er een sysctl ingesteld worden. Dit kan automatisch tijdens het opstarten gedaan worden door het bewerken van /etc/sysctl.conf:

    net.graph.nonstandard_pppoe=1

Dit kan ook direct gedaan worden met het commando:

    # sysctl net.graph.nonstandard_pppoe=1

Helaas is het, doordat dit een systeem brede instelling is, niet mogelijk om tegelijkertijd met een normale PPPoE cliënt of server en een 3Com® HomeConnect™ ADSL-modem te communiceren.

## 27.6. Gebruik maken van PPP over ATM (PPPoA)

Het volgende beschrijft hoe PPP over ATM (PPPoA) opgezet kan worden. PPPoA is een populaire keuze binnen Europese DSL providers.

### 27.6.1. Gebruik maken van PPPoA met de Alcatel SpeedTouch™ USB

PPPoA ondersteuning voor dit apparaat wordt geleverd door middel van een port in FreeBSD omdat de firmware wordt gedistribueerd onder Alcatel’s licentie overeenkomst en mag derhalve niet vrijelijk verspreid worden met het basis systeem van FreeBSD.

Om de software te installeren, wordt simpelweg de Ports Collectie gebruikt. Installeer de net/pppoa port en volg de instructies die meegeleverd worden.

Zoals de meeste USB apparaten moet de Alcatel SpeedTouch™ USB zijn firmware downloaden van de host computer om correct te kunnen werken. Het is mogelijk om dit proces te automatiseren binnen FreeBSD zodat deze overdracht elke keer gebeurd als het apparaat in een USB poort wordt gestoken. De volgende informatie kan worden toegevoegd aan het /etc/usbd.conf bestand om deze automatische overdracht in te schakelen. Dit bestand moet bewerkt worden door de `root` gebruiker.

    device "Alcatel SpeedTouch USB"
        devname "ugen[0-9]+"
        vendor 0x06b9
        product 0x4061
        attach "/usr/local/sbin/modem_run -f /usr/local/libdata/mgmt.o"

Om de USB daemon, usbd, te starten moet de volgende regel toegevoegd worden aan /etc/rc.conf:

    usbd_enable="YES"

Het is ook mogelijk om ppp op te zetten om in te bellen tijdens het opstarten. Om dit te doen moet de volgende regel worden toegevoegd aan /etc/rc.conf. Voor deze procedure moet er ook aangelogt zijn als de `root` gebruiker.

    ppp_enable="YES"
    ppp_mode="ddial"
    ppp_profile="adsl"

Om dit correct te laten werken moet het voorbeeld ppp.conf bestand gebruikt worden welke geleverd wordt door de net/pppoa port.

### 27.6.2. Gebruik maken van mpd

U kunt mpd gebruiken om met een variateit aan diensten verbinding te maken, in het bijzonder PPTP diensten. U kunt mpd vinden in de Ports Collectie, net/mpd. Veel ADSL-modems vereisen dat er een PPTP tunnel wordt gecreeërd tussen het modem en de computer, een voorbeeld van zo’n modem is de Alcatel SpeedTouch™ Home.

Eerst moet u de port installeren waarna mpd geconfigureerd kan worden om uw eisen en provider instellingen op te geven. De port plaatst een verzameling voorbeeldconfiguratiebestanden welke goed gedocumenteerd zijn in PREFIX/etc/mpd/. Let op dat PREFIX betekend dat dit de directory is waar uw ports in worden geïnstalleerd. Standaard is dit /usr/local/. Een complete handleiding om mpd te configureren is beschikbaar in HTML formaat zodra de port geïnstalleerd is. Deze wordt geplaatst in PREFIX/shared/doc/mpd/. Hieronder staat een voorbeeld configuratie om verbinding te maken met een ADSL dienstverlener door het gebruik van mpd. De configuratie is verspreid over twee bestanden, allereerst het mpd.conf bestand:

| Dit voorbeeld van het bestand mpd.conf werkt alleen met mpd 4.X.

    default:
        load adsl

    adsl:
        new -i ng0 adsl adsl
        set bundle authname gebruikersnaam (1)
        set bundle password wachtwoord (2)
        set bundle disable multilink

        set link no pap acfcomp protocomp
        set link disable chap
        set link accept chap
        set link keep-alive 30 10

        set ipcp no vjcomp
        set ipcp ranges 0.0.0.0/0 0.0.0.0/0

        set iface route default
        set iface disable on-demand
        set iface enable proxy-arp
        set iface idle 0

        open

1 | De gebruikersnaam die gebruikt wordt om uzelf te authenticeren aan uw provider.
2 | Het wachtwoord wat gebruikt wordt om uzelf te authenticeren aan uw provider.

Het mpd.links bestand bevat informatie over de link, of linken waarmee u verbinding wilt maken. Een voorbeeld mpd.links wat bij bovenstaand voorbeeld hoort is hieronder gegeven:

    adsl:
        set link type pptp
        set pptp mode active
        set pptp enable originate outcall
        set pptp self 10.0.0.1 (1)
        set pptp peer 10.0.0.138 (2)

1 | Het IP-adres van uw FreeBSD computer waar vanaf mpd gebruikt wordt.
2 | Het IP-adres van uw ADSL-modem. Voor de Alcatel SpeedTouch™ Home is dit adres standaard `10.0.0.138`.

Het is mogelijk om de verbinding makkelijk te initialiseren door het volgende commando als `root` uit te voeren:

    # mpd -b adsl

U kunt de status van de verbinding zien met het volgende commando:

    % ifconfig ng0
    ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500
         inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff

Het gebruik van mpd is de aangeraden manier om met een ADSL dienst te verbinden met FreeBSD.

### 27.6.3. Gebruik maken van pptpclient

Het is ook mogelijk om FreeBSD te gebruiken om naar een andere PPPoA dienstenm verbinding te maken door middel van de net/pptpclient port.

Om gebruik te maken van net/pptpclient om naar een DSL dienst verbinding te maken, installeert u de port of package en bewerkt u /etc/ppp/ppp.conf U moet dit onder de `root` gebruiker doen, om beide acties uit te voeren. Een voorbeeld sectie van ppp.conf is hieronder gegeven. Voor meer informatie over ppp.conf consulteert u de ppp(8) handleiding.

    adsl:
     set log phase chat lcp ipcp ccp tun command
     set timeout 0
     enable dns
     set authname gebruikersnaam (1)
     set authkey wachtwoord (2)
     set ifaddr 0 0
     add default HISADDR

1 | De gebruikersnaam van uw account bij uw DSL provider.
2 | Het wachtwoord voor uw account.

| Omdat u het wachtwoord van uw account in het ppp.conf bestand in leesbare vorm moet plaatsen, moet u ervoor zorgen dat niemand anders de inhoud van dit bestand kan lezen. De volgende serie van commando’s zorgt ervoor dat het bestand alleen leesbaar is door de `root` gebruiker. Raadpleeg de handleidingen van chmod(1) en chown(8) voor verdere informatie.
    # chown root:wheel /etc/ppp/ppp.conf
    # chmod 600 /etc/ppp/ppp.conf

Dit opent een tunnel voor een PPP sessie naar uw DSL router. Ethernet DSL-modems hebben een voor geconfigureerd LAN IP adres waarmee u verbinding maakt. In het geval van de Alcatel SpeedTouch™ home is `10.0.0.138` het adres. Uw router documentatie vertelt u welk adres uw apparaat gebruikt. Om de tunnel te openen en om een PPP sessie op te zetten, start u het volgende commando:

    # pptp address adsl

| Het kan wenselijk zijn om een ampersand ("&") toe te voegen aan het einde van het vorige commando, omdat pptp uw prompt niet teruggeeft.

Er wordt een tun virtueel tunnel apparaat gecreeërd voor interactie tussen de pptp en ppp processen. Zodra u terugbent op uw prompt, of als pptp bevestigd dat er een verbinding is, kunt u de tunnel als volgend inzien:

    % ifconfig tun0
    tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
            inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00
            Opened by PID 918

Als het niet mogelijk is om verbinding te maken, controleert u de configuratie van uw router, welke meestal bereikbaar is door middel van telnet of via een web browser. Als u nog steeds geen verbinding kunt maken moet u de resultaten van het `pptp` onderzoeken en de inhoud van het ppp log bestand, /var/log/ppp.log voor meer hints over wat er mis kan zijn.

## 27.7. Gebruik maken van SLIP

| Deze sectie geldt en is alleen geldig voor FreeBSD 7.X.

### 27.7.1. Het opzetten van een SLIP-cliënt

Het volgende is één manier om een FreeBSD machine in te stellen voor gebruik met SLIP op een statisch host netwerk. Voor dynamische hostnaam toewijzing (uw adres veranderd elke keer als u inbelt), heeft u waarschijnlijk een meer complexe opzet nodig.

Bepaal eerst aan welke seriële poort uw modem verbonden is. Veel mensen gebruiken hiervoor een symbolische link zoals /dev/modem welke verwijst naar de echte naam van het apparaat /dev/cuadN. Dit geeft de mogelijkheid om naam abstract te houden, voor het geval het modem ooit verplaatst wordt naar een andere poort. Het kan best een vervelende klus zijn wanneer er een aantal bestanden in /etc en .kermrc bestanden verspreid over het gehele systeem gerepareerd moeten worden!

| /dev/cuad0 is COM1, cuad1 is COM2, etc.

Zorg ervoor dat u het volgende in uw kernel configuratie bestand hebt:

    device   sl

Deze is standaard opgenomen in de GENERIC kernel, dus dat zou geen problemen moeten opleveren tenzij u deze verwijderd heeft.

#### 27.7.1.1. Dingen die u maar eenmalig hoeft uit te voeren

1. Voeg uw machine, de router en de naamservers toe aan uw /etc/hosts bestand. Ons bestand ziet er als volgend uit:

       127.0.0.1               localhost loghost
       136.152.64.181          water.CS.Example.EDU water.CS water
       136.152.64.1            inr-3.CS.Example.EDU inr-3 slip-gateway
       128.32.136.9            ns1.Example.EDU ns1
       128.32.136.12           ns2.Example.EDU ns2

2. Zorg ervoor dat u `files` voor `dns` in de `hosts:` sectie van uw /etc/nsswitch.conf bestand. Zonder deze parameters zouden er interessante dingen kunnen gebeuren.

3. Bewerk het /etc/rc.conf bestand.

   1. Stel uw hostnaam in door de regel te bewerken die aangeeft:

          hostname="myname.my.domain"

      De volledig gekwalificeerde internet hostnaam moet hier geplaatst worden.

   2. Stel de standaard router in door het aanpassen van de volgende regel van:

          defaultrouter="NO"

      naar:

          defaultrouter="slip-gateway"

4. Creeër en bestand genaamd /etc/resolv.conf welke het volgende bevat:

       domain CS.Example.EDU
       nameserver 128.32.136.9
       nameserver 128.32.136.12

   Zoals u kunt zien, stellen deze de naamserver hosten in. Uiteraard is het echte domein en adres afhankelijk van uw omgeving.

5. Stel het wachtwoord in voor de `root` en de `toor` gebruikers (en elke andere gebruiker die geen wachtwoord heeft).

6. Herstart de machine en controleeer of deze opkomt met de correcte hostnaam.

#### 27.7.1.2. Het opzetten van een SLIP-verbinding

1. Bel in, type `slip` op de prompt en voer uw machine naam en wachtwoord in. Wat is vereist, is afhankelijk van uw omgeving. Als u gebruik maakt van Kermit kan een script als de volgende gebruikt worden:

       # kermit setup
       set modem hayes
       set line /dev/modem
       set speed 115200
       set parity none
       set flow rts/cts
       set terminal bytesize 8
       set file type binary
       # De volgende macro zal inbellen en ons inloggen.
       define slip dial 643-9600, input 10 =>, if failure stop, -
       output slip\x0d, input 10 Username:, if failure stop, -
       output silvia\x0d, input 10 Password:, if failure stop, -
       output ***\x0d, echo \x0aCONNECTED\x0a

   Uiteraard moet u uw gebruikersnaam en wachtwoord wijzigen zodat deze overeenkomen met die van u. Nadat dit gedaan is kunt u `slip` invullen op de Kermit prompt om verbinding te maken.

   | Het achterlaten van uw wachtwoord in leesbare tekst waar dan ook op het bestandssysteem is zeker een slecht idee. Doe dit op eigen risico.

2. Laat Kermit daar (het programma kan tijdelijk uitgeschakeld worden door `Ctrl`+`z`) en type vervolgens als `root`:

       # slattach -h -c -s 115200 /dev/modem

   Als u in staat bent om andere hosten met `ping` te benaderen aan de andere kant van de router, bent u verbonden! Als dit niet werkt kunt u wellicht de `-a` gebruiken in plaats van de `-c` als argument voor `slattach`.

#### 27.7.1.3. Hoe de verbinding afgebroken moet worden

Doe het volgende

    # kill -INT `cat /var/run/slattach.modem.pid`

om `slattach` te stoppen. Houd in uw achterhoofd dat u dit als `root` moet doen. Ga hierna terug naar `kermit` (door het intypen van `fg` als u deze tijdelijk uitgeschakeld had) en verlaat de applicatie (`q`).

De slattach(8) handleiding zegt dat `ifconfig sl0 down` uitgevoerd moet worden om de interface uit te schakelen, maar dit lijkt geen verschil op te leveren. (`ifconfig sl0` lijkt hetzelfde resultaat te geven.)

Soms kan het gebeuren dat het modem weigert om de carrier los te laten. Start in dat geval simpelweg `kermit` en stop deze wederom. Meestal stopt het met de tweede poging.

#### 27.7.1.4. Problemen oplossen

Als dit niet werkt, voelt u zich dan vrij om rond te vragen op de freebsd-net mailing lijst. De volgende dingen zijn mensen al eens tegen aangelopen:

- Het niet gebruiken van de `-c` of `-a` optie voor `slattach` (Dit zou niet fataal moeten zijn, maar sommige mensen hebben aangegeven dat het de problemen oplostte.)

- Het intypen van `s10` in plaats van `sl0` (het verschil is wellicht lastig te zien met sommige fonts).

- Probeer `ifconfig sl0` uit te voeren om de interface status te zien. U kunt bijvoorbeeld krijgen:

      # ifconfig sl0
      sl0: flags=10<POINTOPOINT>
              inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00

- Als u `no route to host` krijgt van het ping(8) commando, is er mogelijk een probleem met uw route tabel. U kunt het `netstat -r` commando uitvoeren om de huidige routes te zien:

      # netstat -r
      Routing tables
      Destination      Gateway            Flags     Refs     Use  IfaceMTU    Rtt    Netmasks:

      (root node)
      (root node)

      Route Tree for Protocol Family inet:
      (root node) =>
      default          inr-3.Example.EDU  UG          8   224515  sl0 -      -
      localhost.Exampl localhost.Example. UH          5    42127  lo0 -       0.438
      inr-3.Example.ED water.CS.Example.E UH          1        0  sl0 -      -
      water.CS.Example localhost.Example. UGH        34 47641234  lo0 -       0.438
      (root node)

  Het voorgaand voorbeeld komt van een relatief druk systeem. De getallen op uw systeem zullen anders zijn naar gelang de netwerk activiteiten.

### 27.7.2. Het opzetten van een SLIP-server

Dit document levert suggesties voor het opzetten van een SLIP-server op een FreeBSD systeem, welke meestal betekent het configureren van uw systeem om automatisch verbindingen op te zetten wanneer er wordt ingelogt met remote SLIP cliënten.

#### 27.7.2.1. Eisen vooraf

Deze sectie is vrij technisch van aard, dus achtergrond informatie is vereist. Er wordt aangenomen dat u bekend bent met het TCP/IP-netwerk protocol, en in dan in het bijzonder met netwerk en node adresseringen, netwerk adres maskers, subnetten, routes en dynamische routering protocollen zoals RIP. Het configureren van een SLIP-dienst op een inbel server vereist kennis van deze concepten en als u daarmee niet bekend bent, leest u dan aub een versie van of Craig Hunt’s TCP/IP Network Administration gepubliceerd door O’Reilly & Associates, Inc. (ISBN Number 0-937175-82-X), of Douglas Comer’s boeken over het TCP/IP protocol.

Daarnaast wordt er vanuit gegaan dat u reeds uw modem(s) heeft geconfigureerd en dat u de juiste systeem bestanden heeft aangepast zodat er logins mogelijk zijn door uw modem(s) heen. Als u dat nog niet heeft gedaan, zie dan Inbeldienst voor details over het opzetten van inbel diensten. Wellicht wilt u ook de handleiding bekijken voor sio(4) voor meer informatie over de seriële port device driver en de ttys(5), gettytab(5), getty(8), & init(8) handleidingen voor informatie die relevant zijn voor het configureren van het systeem zodat logins mogelijk worden op modems, en wellicht stty(1) voor informatie over het instellen van de seriële poort (zoals `clocal` voor direct verbonden seriële interfaces).

#### 27.7.2.2. Snel overzicht

In een typische configuratie, werkt het gebruik van FreeBSD als een SLIP-server als volgend: een SLIP-gebruiker belt in op uw FreeBSD SLIP-server systeem en logt in met een speciaal SLIP-login ID dat gebruik maakt van /usr/sbin/sliplogin. Het `sliplogin` programma leest door het /etc/sliphome/slip.hosts bestand om een corresponderende regel te vinden voor de speciale gebruiker en als deze een match vindt verbind het de seriële lijn met een beschikbare SLIP-interface waarna het shellscript /etc/sliphome/slip.login wordt uitgevoerd om de SLIP-interface te configureren.

##### Een voorbeeld van SLIP-server login

Bijvoorbeeld, als een SLIP-user-ID `Shelmerg` is, kan `Shelmerg`'s regel in /etc/master.passwd er als volgt uitzien:

    Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin

Wanneer `Shelmerg` inlogt, zoekt het `sliplogin` programma in het /etc/sliphome/slip.hosts bestand voor een regel dat een corresponderende user ID heeft, er kan bijvoorbeeld een regel staan in /etc/sliphome/slip.hosts dat eruit ziet als volgend:

    Shelmerg        dc-slip sl-helmer       0xfffffc00		  autocomp

`sliplogin` zal de corresponderende regel vinden en de seriële lijn koppelen aan de eerste beschikbare SLIP-interface, waarna /etc/sliphome/slip.login wordt uitgevoerd zoals volgend:

    /etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp

Als alles goed gaat, zal /etc/sliphome/slip.login een `ifconfig` commando uitvoeren voor de SLIP interface waaraan `sliplogin` zichzelf koppelt (SLIP-interface 0 zoals in bovenstaand voorbeeld was de eerste parameter in de lijst welke gegeven is aan slip.login) om een lokaal IP-adres in te stellen (`dc-slip`), een remote IP adres (`sl-helmer`), een netwerk master voor de SLIP-interface (`0xfffffc00`), en enkele additionele vlaggen (`autocomp`). Als er iets misgaat zal `sliplogin` meestal voldoende goede informatie loggen via de syslogd daemon faciliteiten, welke meestal logt naar /var/log/messages (zie de handleidingen van syslogd(8) en syslog.conf(5) en controleer het /etc/syslog.conf bestand om te zien wat syslogd logt en waar dit naartoe gelogt wordt).

#### 27.7.2.3. Kernel-configuratie

FreeBSD’s standaard kernel (GENERIC) heeft reeds ondersteuning voor SLIP (sl(4)), in het geval van een custom kernel moet de volgende regel worden toegevoegd aan de kernel configuratie:

    device   sl

Standaard zal uw FreeBSD machine geen pakketten doorsturen. Als u wilt dat uw FreeBSD SLIP-server zich gedraagt als router zult u het bestand /etc/rc.conf moeten bewerken en de instelling van de `gateway_enable` variabele moeten aanpassen naar `YES`. Dit zorgt ervoor dat de machine na een herstart zich zal blijven gedragen als router.

Om de instellingen meteen actief te maken kunt u het volgende commando als `root` uitvoeren:

    # service routing start

Raadpleeg aub De FreeBSD-kernel instellen over het configureren van de FreeBSD kernel voor meer hulp over het herconfigureren van uw kernel.

#### 27.7.2.4. Sliplogin-configuratie

Zoals eerder vermeld, zijn er drie bestanden in de map /etc/sliphome die onderdeel zijn van de configuratie voor /usr/sbin/sliplogin (zie sliplogin(8) voor de actuele handleiding voor `sliplogin`): slip.hosts, welke de SLIP-gebruikers definieert en de gekoppelde IP adressen; slip.login, welke meestal de SLIP-interface configureert en (optioneel) slip.logout, welke de effecten van slip.login ongedaan maakt wanneer de seriële verbinding verbroken wordt.

##### slip.hosts configuratie

/etc/sliphome/slip.hosts bevat regels welke minstens vier onderdelen heeft die gescheiden worden door een spatie:

- SLIP-gebruikers login ID

- Lokale adres (lokaal voor de SLIP-server) van de SLIP-link

- Remote adres van de SLIP-link

- Netwerk masker

De lokale en remote adressen mogen host namen zijn (Welke naar IP-adressen vertaald kunnen worden door /etc/hosts of door de DNS diensten, afhankelijk van uw specificaties in het /etc/nsswitch.conf, het netwerk masker mag een naam zijn dat vertaald kan worden door een zoek opdracht in /etc/networks. Op een voorbeeld systeem ziet het /etc/sliphome/slip.hosts bestand er als volgt uit:

    #
    # login local-addr      remote-addr     mask            opt1    opt2
    #                                               (normal,compress,noicmp)
    #
    Shelmerg  dc-slip       sl-helmerg      0xfffffc00      autocomp

Aan het einde van deze regel staan één of meerdere opties:

- `normal` - geen compressie van de header

- `compress` - comprimeer headers

- `autocomp` - comprimeer de headers als de remote kant dit accepteert

- `noicmp` - schakelt ICMP pakketten uit (dus alle "ping" pakketten worden geweigerd in plaats van dat deze bandbreedte verbruiken)

Uw keuze van een lokaal en remote adres voor uw SLIP verbindingen is afhankelijk van of u een speciaal toegewezen TCP/IP-subnet gebruikt, of dat u gebruik gaat maken van "proxy ARP" op uw SLIP-server (het is geen echte "proxy ARP", maar het is de terminologie welke in deze sectie gebruikt wordt om het te beschrijven). Als u niet zeker bent welke methode u moet kiezen, of hoe u IP-adressen moet toewijzen, raadpleegt u dan de TCP/IP boeken die vermeld worden in de SLIP vereisten (Eisen vooraf) en/of vraag uw IP-netwerk manager om hulp.

Als u gebruik gaat maken van een separaat subnet voor uw SLIP-cliënten, moet u een subnet alloceren uit de voor u toegewezen IP-ruimte, en elke SLIP-cliënt een IP-adres geven uit dat subnet. Daarna moet u waarschijnlijk een statische route configureren voor uw SLIP-subnet via uw SLIP-server naar de dichtsbijzijnde IP-router.

In het andere geval moet u gebruik maken van de "proxy ARP" methode, u moet elke SLIP cliënt een IP-adres geven uit het Ethernet-subnet van uw SLIP-server, daarnaast moet u het /etc/sliphome/slip.login en het /etc/sliphome/slip.logout script aanpassen om gebruik te maken van arp(8) om de "proxy ARP" regels te beheren in de SLIP servers ARP tabel.

##### slip.login configuratie

Een typisch /etc/sliphome/slip.login bestand ziet er als volgend uit:

    #!/bin/sh -
    #
    #       @(#)slip.login  5.1 (Berkeley) 7/1/90

    #
    # generiek loginbestand voor een SLIP-lijn.  sliplogin voert deze uit
    # met de volgende parameters:
    #      1        2         3        4          5         6     7-n
    #   slipunit ttyspeed loginname local-addr remote-addr mask opt-args
    #
    /sbin/ifconfig sl$1 inet $4 $5 netmask $6

Dit slip.login bestand start alleen het `ifconfig` commando voor de betreffende SLIP-interace met het lokale en remote adres met het netwerkmasker van de SLIP-interface.

Als u besloten heeft om gebruik te maken van de "proxy ARP" methode (in plaats van het gebruiken van een apart subnet voor uw SLIP-cliënten) moet u het /etc/sliphome/slip.login bestand aanpassen zodat deze er ongeveer als volgend uitziet:

    #!/bin/sh -
    #
    #       @(#)slip.login  5.1 (Berkeley) 7/1/90

    #
    # generiek loginbestand voor een SLIP-lijn.  sliplogin voert deze uit
    # met de volgende parameters:
    #      1        2         3        4          5         6     7-n
    #   slipunit ttyspeed loginname local-addr remote-addr mask opt-args
    #
    /sbin/ifconfig sl$1 inet $4 $5 netmask $6
    # Beantwoord ARP Verzoeken voor de SLIP-cliënt met ons Ethernet
    # adres
    /usr/sbin/arp -s $5 00:11:22:33:44:55 pub

De extra regel in het slip.login bestand, `arp -s $5 00:11:22:33:44:55 pub`, creeërt een ARP-regel in de ARP-tabel van de SLIP-server. Deze ARP regel zorgt ervoor dat de SLIP-server antwoord geeft met het Ethernet MAC adres van de SLIP-server wanneer een andere IP-node op het Ethernet vraagt om te communiceren met het IP-adres van de SLIP-cliënt.

Wanneer u gebruik maakt van het voorbeeld hierboven, wees u er dan zeker van dat u het Ethernet MAC adres (`00:11:22:33:44:55`) veranderd in het MAC adres van uw systeem’s Ethernet kaart, anders werkt uw "proxy ARP" zeker niet! U kunt het Ethernet MAC adres van uw SLIP-server achterhalen door het bekijken van het resultaat van `netstat -i`; de tweede regel met resultaten moet er ongeveer als volgend uitzien:

    ed0   1500  <Link>0.2.c1.28.5f.4a         191923	0   129457     0   116

Dit geeft aan dat het specifieke Ethernet MAC adres van het systeem is `00:02:c1:28:5f:4a` - de punten in het Ethernet MAC adres welke gegeven wordt door `netstat -i` moet worden veranderd in dubbele punten (":") en voorloop nullen moeten worden toegevoegd aan elk enkel hexadecimaal getal om het adres te converteren naar de vorm die arp(8) wenst; zie de handleiding van arp(8) voor een compleet overzicht van het gebruik hiervan.

| Wanneer u /etc/sliphome/slip.login en /etc/sliphome/slip.logout, aanmaakt moet het "uitvoerbare" bitje gezet zijn (bijvoorbeeld `chmod 755 /etc/sliphome/slip.login /etc/sliphome/slip.logout`) anders is `sliplogin` niet in staat om deze uit te voeren.

##### slip.logout configuratie

/etc/sliphome/slip.logout is niet strict noodzakelijk (tenzij u "proxy ARP" implementeert), maar als beslist om deze aan te maken is dit een voorbeeld basis slip.logout script:

    #!/bin/sh -
    #
    #       slip.logout

    #
    # uitlogbestand voor een SLIP-regel.  sliplogin voert deze uit met de
    # parameters:
    #      1        2         3        4          5         6     7-n
    #   slipunit ttyspeed loginname local-addr remote-addr mask opt-args
    #
    /sbin/ifconfig sl$1 down

Als u gebruik maakt van "proxy ARP" wilt u waarschijnlijk dat het /etc/sliphome/slip.logout bestand de ARP regel weghaalt voor de SLIP-cliënt:

    #!/bin/sh -
    #
    #       @(#)slip.logout

    #
    # uitlogbestand voor een SLIP-regel.  sliplogin voert deze uit met de
    # parameters:
    #      1        2         3        4          5         6     7-n
    #   slipunit ttyspeed loginname local-addr remote-addr mask opt-args
    #
    /sbin/ifconfig sl$1 down
    # Stop met het beantwoorden van ARP verzoeken voor de SLIP-cliënt
    /usr/sbin/arp -d $5

Het `arp -d $5` verwijderd de ARP regel, die "proxy ARP" heeft toegevoegd toen de SLIP-cliënt inlogde.

Het is belangrijk om dit te herhalen: zorg ervoor /etc/sliphome/slip.logout het uitvoerbare bitje heeft gezet nadat deze gecreeërd is (b.v. `chmod 755 /etc/sliphome/slip.logout`).

#### 27.7.2.5. Routering-overwegingen

Als u geen gebruik maakt van de "proxy ARP" voor het routeren van pakketten tussen uw SLIP-cliënten en de rest van uw netwerk (en wellicht het internet), moeten er misschien een aantal statische routeringen naar de best bereikbare standaard router ingesteld worden om uw SLIP cliënts te routeren via uw SLIP0server.

##### Statische routeringen

Het toevoegen van statische routeringen naar de dichts bijzijnde router kan problematisch zijn (of zelfs onmogelijk als u niet de bevoegdheden heft om dit te doen). Als u een netwerk heeft met meerdere routers binnen uw organisatie kan het zijn dat sommige routers, zoals die van Cisco en Proteon , niet alleen geconfigureerd moeten worden met de statische route naar het SLIP-subnet, maar deze moeten dan ook geconfigureerd worden over welke statische routes aan andere routers verteld moeten worden. Enige expertise en fine tunen kan nodig zijn om statische routing te laten werken.

Last modified on: 18 juni 2026 by Alexander Ziaee

Prev
Home
Next