28.4. Het problemen oplossen van PPP-verbindingen

Bijgedragen door Tom Rhodes.

WaarschuwingMet ingang van FreeBSD 8.0 vervangt het stuurprogramma uart(4) het stuurprogramma sio(4). Apparaatknooppunten voor seriële poorten zijn hernoemd van /dev/cuadN naar /dev/cuauN en van /dev/ttydN naar /dev/ttyuN. Gebruikers van FreeBSD 7.X zullen de documentatie met deze veranderingen moeten lezen.

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.

28.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.

28.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.

28.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.