SLIP/PPP Emulator mini-HOWTO

21-02-2001

Wijzigingen
Herziening 3.121 februari 2001Herzien door: GCR
Herziening 3.07 aug 1997Herzien door: Irish

In dit document is beschreven hoe je je Linux box kunt verbinden met een algemene site via een SLIP/PPP emulator, zoals SLiRP of TIA. Ik neem geen verantwoordelijkheid voor het gebruik van deze informatie, maar correcties zijn welkom.

Ik zal geen poging ondernemen om te schrijven wat er allemaal kan worden gedaan over deze verbinding zodra ze tot stand is gebracht, maar zal naar andere documenten of sites refereren waar relevante informatie is te vinden.

Laten we beginnen!


Inhoudsopgave
Introductie
Hoe werkt een emulator?
Eerste vereisten
Voorbereiden van je Linux machine
Wat nu?
Diversen

Introductie

Ik ben van Ierse afkomst, , bijna elke dag beschikbaar voor opmerkingen op Linux, wanneer ik mijn kat niet aan het aaien ben of mijn kind aan het knuffelen ben.

Deze HOWTO is vanaf de volgende plaatsen beschikbaar:


Copyright Informatie

Dit document is auteursrechtelijk beschermd (c) 2001 Irish en wordt gedistribueerd onder de voorwaarden van de licentie van het Linux Documentatie Project (LDP), hieronder uiteengezet.

Tenzij anders vermeld, zijn Linux HOWTO documenten auteursrechtelijk beschermd door hun respectieve eigenaren. Linux HOWTO documenten mogen in zijn geheel of gedeeltelijk worden gereproduceerd en gedistribueerd, via elk fysiek of elektronisch medium, zolang deze copyrightmelding op alle kopieën behouden blijft. Commerciële redistributie is toegestaan en wordt aangemoedigd; de auteur zou echter graag van dergelijke distributies op de hoogte worden gesteld.

Alle vertalingen, afgeleide of samengevoegde werken waarin Linux HOWTO documenten zijn verenigd, moeten onder deze copyrightmelding worden opgenomen. Dat wil zeggen dat je geen afgeleide werk van een HOWTO mag produceren als je extra beperkingen op de distributie daarvan oplegt. Uitzonderingen op deze regels kunnen onder bepaalde voorwaarden worden toegestaan; neem via onderstaand adres alsjeblieft contact op met de Linux HOWTO coördinator.

Samengevat: we willen de verspreiding van deze informatie via zoveel mogelijk kanalen bevorderen. We willen echter het copyright op de HOWTO documenten behouden, en zouden op de hoogte willen worden gesteld van enige plannen om de HOWTO's te redistribueren.

Neem voor vragen alsjeblieft contact op met


Disclaimer

Er kan geen verantwoordelijkheid voor de inhoud van dit document worden geaccepteerd. Gebruik de concepten, voorbeelden en andere inhoud op eigen risico. Aangezien dit een nieuwe editie is van dit document, kunnen er fouten en onzorgvuldigheden in voorkomen, die je systeem wellicht kunnen beschadigen. Neem de nodige zorgvuldigheid in acht als je verdergaat. De auteurs nemen geen enkele aansprakelijkheid op zich.

Alle copyrights vallen in handen van hun respectieve eigenaren, tenzij expliciet anders vermeld. Gebruik van een term in dit document moet niet worden aangemerkt als van invloed zijnde op de geldigheid van enig handels- of servicemerk.

De benoeming van bepaalde producten of merken moet niet worden gezien als onderschrijving.

Het wordt je sterk aangeraden een backup van je systeem te maken voordat je een belangrijke installatie uitvoert en dat je regelmatig backups maakt.


Feedback

Feedback is beslist welkom voor dit document. Zonder jullie bijdragen en inbreng, zou dit document niet bestaan. Stuur alsjeblieft jullie aanvullingen, opmerkingen en kritiek op naar het volgende e-mailadres: .


Hoe werkt een emulator?

Het is van belang te begrijpen hoe een SLIP/PPP emulator in het algemeen werkt, om je bewust te zijn van de beperkingen. Ten eerste hoef je de emulator niet op je machine te installeren. Het draait alleen op de remote host. Wat je op je machine nodig hebt, is de installatie van de TCP/IP en SLIP of PPP protocollen in je kernel (meer daarover zometeen) en een aantal clients.

Dit is wat er plaatsvindt: je stuurt netwerkverzoeken vanaf je machine naar de remote host over de SLIP/PPP koppeling. De emulator vangt ze af en stuurt ze in het algemeen naar het Net. Dan wordt inkomende data van het Net teruggestuurd naar je account op de remote host, waar de emulator het afvangt en het via de SLIP/PPP link naar je machine stuurt. Dus voor het Net lijkt het alsof je vanaf je account op de remote host werkt, en voor jou lijkt het of je echt direct verbonden bent met het Net.

Zoals je kunt zien, kan dit verwarrend zijn voor wat binnenkomt vanaf het Net. Talk bijvoorbeeld, werkt niet via een emulator, omdat het inkomende talk verzoek probeert de talk daemon op de remote host te starten, niet de jouwe.

Het andere grote verschil tussen een emulator en een echte SLIP/PPP koppeling is dat er GEEN eigen IP-adres aan je wordt toegekend; denk eraan dat je slechts een dialup account naar een SLIP/PPP connectie converteert.


Wat is TIA?

De Internet Adaptor werd door prima volk op marketplace.com geschreven. Ze hebben het nu aardig werkend, en beschouwen het als een 'volwassen' product. De laatste versie is 2.0.5; haal alsjeblieft deze versie op als je TIA gaat gebruiken.

Opmerking

Volgens laatste berichtgevingen is marketplace.com buiten bedrijf.


Wat is SLiRP?

Dit is een freeware applicatie, vallend onder de GNU Public Licentie. Het is geen beta meer, en is echt stabiel. Het houdt er iets meer features op na dan TIA en er is van gemeld dat het makkelijker is in host resources. Beschikbaar op alle goede Linux FTP-sites.


Hoe zit het met Term?

Als je om wat voor reden dan ook geen root-toegang hebt tot je machine, en je kunt niemand overreden SLIP en dip te installeren, dan heb je behalve het gebruik van Term niet veel keuze. Lees alsjeblieft de HOWTO op Sunsite als je meer over Term wilt weten.


Hoe zit het met echte SLIP/PPP?

Hey, op heel veel plaatsen wordt tegenwoordig echte SLIP/PPP voor redelijke prijzen voor non-dedicated dialup geboden. Ga er voor als je het je kunt veroorloven. Het Echte Werk is beter dan emulatie. Echter één van de dingen die een emulator biedt is beveiliging; het fungeert als een onneembare firewall en daarmee ben je vrijwel net zo kogelvrij als je provider. Je betaalt er echter een prijs voor, emulatie is langzamer en ondersteunt niet elk protocol volledig. Nog altijd is emulatie goed genoeg voor de meeste mensen, en is het een prima manier om een verbinding tot stand te brengen met het Net.


Eerste vereisten

Hoe stel ik het in?

Als eerste heb je wat info nodig en volgt hier wat uitleg.

Ten eerste heb je het IP-adres van je provider nodig, mocht je dit nog niet hebben. Je kunt dit doen door bij je provider 'who' achter de shellprompt te typen of het bestand /etc/hosts te lezen of er gewoon naar te vragen. Vraag dan gelijk naar het IP-adres van de POP/SMTP host en de NNTP-server (als je niet weet wat dat zijn, vertrouw me dan maar en vraag er gewoon om, je zult ze nodig hebben).

Laat me snel wat uitleg geven over hostnamen en domeinnamen. De hostnaam is het eerste deel van een machinenaam, het domein is de rest ervan. Zoals dit: hostnaam.domein.naam (één uit vier delen zou zijn: hostnaam.do.mein.naam). Samen vormen ze een Fully Qualified Domain Name (FQDN).

De naam van je Linux machine is opgeslagen in /etc/HOSTNAME, en ja je kunt het wijzigen. Doe dit inderdaad alsjeblieft (als je Slackware gebruikt, zal het standaard "darkstar.frop.org" zijn). Wijzig gewoon het bestand /etc/HOSTNAME in wat je wilt. Denk eraan dat als je een emulator gebruikt, je in wezen over het algemeen onzichtbaar bent voor het Net, dus je kunt creatief zijn. Als je echter ooit van plan bent om aan een echte SLIP/PPP verbinding te komen, dan wil je wellicht een subhost worden van je provider. Als je provider bijvoorbeeld "info.superhiway.com" is, dan is het domein "superhiway.com" en de hostnaam "info". Dus je subhost is dan "offramp.info.superhiway.com" of gewoon "offramp.superhiway.com". Beiden zullen werken, en in beide gevallen is je hostnaam "offramp".


Voorbereiden van je Linux machine

Samengevat is het volgende nodig. Ik zal de eerste drie in detail uitleggen.

Je zult tevens aan een emulator binary moeten zien te komen die geschikt is voor je remote host en deze moeten installeren. SLiRP is beschikbaar vanaf Sunsite en andere prima Linux FTP sites. Alle relevante info over TIA is beschikbaar op TIA's homesite.

Dat was het! Laten we beginnen.


Compileer de kernel

Wanneer je dit nog nooit hebt gedaan, zou je eerst de FAQ door moeten lezen, maar maak je geen zorgen, het is makkelijk. Als je dit wilt, zal ik je helpen als je me een e-mail stuurt.

Zoek na een `make config', naar "Network Devices". Antwoord hier uiteraard `y', en vervolgens `y' op SLIP, CSLIP, (of PPP) en TCP/IP en `n' op al het andere, tenzij je ethernetkaarten hebt of een ander protocol voor iets anders nodig hebt. Doe je dit niet, dan werkt het niet! Voltooi de compilatie en installeer de nieuwe kernel.


Bewerk een aantal bestanden in /etc

In deze bestanden zullen je routes naar je remote host worden ingesteld. De directory voor systeemconfiguraties is /etc. Vervang uiteraard alles tussen dubbele aanhalingstekens door de juiste waarden (maar neem hierbij niet de dubbele aanhalingstekens mee, ze staan daar als referentie). De drie te bewerken bestanden zijn:

  • /etc/hosts
    #De volgende regel moet exact worden overgenomen.
    127.0.0.1       localhost
    
    #Aan het einde van de volgende twee regels wordt de hostnaam herhaald.
    #Deze afkorting is een alias, en deze is nodig voor de eerste regel.
    #Als je bent aangesloten op een LAN, dan moet je je IP-adres vervangen
    # door de eerste hieronder.
    192.0.2.1       "jehostnaam.domein.naam jehostnaam"
    "XXX.XXX.XX.XX"	"remotehostnaam.domein.naam  remotehostnaam"
          

  • /etc/host.conf
    order hosts, bind
    multi on
          

  • /etc/resolv.conf
    domain "jedomein.naam" 	
    #In de volgende regel wordt gewoonlijk hetzelfde remote IP-adres gebruikt
    # als in /etc/hosts
    nameserver "XXX.XXX.XX.XX"
          

  • Plaats voor gebruik van een NNTPserver, deze regel in /etc/profile
    export NNTPSERVER="remote.hosts.nntpservername"
          


DIP

Je gebruikt DIP (Dialup Internet Protocol) om bij de remote host in te bellen, de emulator te starten en de regel om te zetten naar SLIP/PPP. Het is te vinden in de "N" set van Slackware, samen met nog een boel clients en utility's, waarvan je er wellicht ook nog een aantal wilt installeren =). Het is ook beschikbaar vanaf Sunsite in een individueel tar bestand.

Zodra je het hebt geïnstalleerd, heb je nog een dipscript nodig. Hier is een voorbeeld, vervang op de plaats van de dubbelde aanhalingstekens het van toepassing zijnde gegeven (maar laat de aanhalingstekens weg, die zijn bedoeld als referentie).

main:
  get $local "jehostnaam.domein.naam"
  get $remote "remotehostnaam.domein.naam"

#Je poort
  port cua"?" 

#Gebruik 115200 voor 28.8 modems 
  speed 57400
  reset

#maak geen gebruik van spaties in je AT opdrachtstring!
  init AT "opdrachtenreeks" 
  wait OK 5

# Dit zorgt voor het bellen. Mocht het niet werken, speel dan wat met de 
# wait time (luisteren naar je modem). Mail me als het dan nog niet werkt.
# Zie ook; de notitie onderaan het script re: error codes.

dial:
  dial "phonenumber"
  print Dialing...
  if $errlvl != 0 goto error

#Wellicht dat je de wait time moet aanpassen aan je modem
  wait BUSY 20
  if $errlvl == 0 goto dial	

login:
  print Verbinding gemaakt. Inloggen...

#Deze wait en send krijgt me voorbij mijn hosts Annex. 
Pas het voor je site aan!
  wait ==> 60
  send 4\n
  wait ogin: 60
  if $errlvl != 0 goto login_error1
  send "LOGIN"\n
  wait assword: 60
  if $errlvl != 0 goto login_error2
  send "PASSWORD"\n

loggedin:
  wait "SYSTEM PROMPT" 60
  if $errlvl != 0 goto shell_error
  print Logged in!
  send "emulator startup command"\n
  wait "emulator startup response" 60
  if $errlvl != 0 goto emu_error

#De aanbevolen mtu instelling is 1500, maar dit is interactief sneller.
#Ftp kan langzamer zijn, dus pas het naar eigen wens aan.
  get $mtu 296
  default

done:
  print VERBONDEN met $remote met adres $rmtip
  mode CSLIP
  goto exit

error:
  print Inbelfout

login_error1:
  print Geen Login

login_error2:
  print Geen Password prompt

shell_error:
  print Geen shellprompt

emu_error:
  Er trad een probleem op bij het starten van de emulator

exit:

#Hiermee wordt gestopt wanneer de -v vlag wordt gebruikt, maar werkt wanneer
#het normaal wordt uitgevoerd
#(beeindigt dip achter een lokale prompt).
  \r		

   

DIP notities

Nieuwere versies van dip retourneren de modem statuscodes niet (BUSY, NO CONNECT, enz.), in plaats daarvan maken ze gebruik van nummers. Hier is een tabel:

  • 0 = OK

  • 1 = CONNECT

  • 2 = ERROR

  • 3 = BUSY

  • 4 = NO CARRIER

Je belsectie komt er daarmee ongeveer zo uit te zien:
dial:
  dial "phonenumber"
  print Dialing...
  if $errlvl != 0 goto error
  wait 1 20	
  if $errlvl != 1 goto dial
   

Met dank aan Lee Olds hiervoor.

\n = newline, \r = carriage return. Wellicht dat je de een of ander (of beiden) op de van toepassing zijnde plaatsen nodig hebt. Experimenteer ermee als datgene dat wordt gegeven niet werkt.

Een woord over de vorm van wait en send. Hieronder wordt uitgelegd wat het script doet mocht dit niet duidelijk blijken uit het voorbeeld:

wait ogin: 60

Het script wacht 60 seconden op de remote computer tot het 'ogin:' verzendt. Wanneer het dit krijgt, gaat het script verder. Als het dit niet krijgt, zal het verdergaan na de timeout van 60 seconden.

if $errlvl != 0 goto login_error

(Deze hele regel is optioneel.) Als het script verdergaat omdat het kreeg waarop het wachtte, dan wordt dit overgeslagen. Als het script verdergaat door een timeout, dan zal het gaan naar waar je het vertelt verder te gaan ('login_error1' in dit geval).

send "LOGIN"\n

DIP zal 'LOGIN' en een newline sturen

Je kunt als volgt sleep statements opnemen als dat nodig is: "sleep 10" Het script zal hierdoor 10 seconden pauzeren.

Hernoem het bestand na bewerking in bijvoorbeeld remote.dip en plaats het in /root. Geef dan als root de opdracht 'dip remote'. Gebruik de eerste keer de -v vlag om fouten op te sporen. Met ('dip -v remote') zullen alle stappen worden getoond die dip neemt.

Dip zal alleen als root worden uitgevoerd, maar er is een manier om het via een gebruikersaccount uit te voeren. Vraag me erom als je deze info nodig hebt. Wellicht dat ik het later in dit bestand opneem als er voldoende interesse voor is.

Als dip meteen stopt, probeer het dan door de opmerkingen uit het script te verwijderen.


PPP

Het bovenstaande maakt dat je aan de slag kunt met CSLIP, wat meestal prima volstaat. Het is werkelijk eenvoudig werkend te krijgen, aangezien het protocol op het niveau van de kernel wordt ondersteund. Zorg dat het daarin is opgenomen en het werkt.

Een aantal van jullie zullen echter PPP willen, om redenen die alleen jullie aan kunnen geven. Ik ga je hier niet vertellen hoe je het instelt, daar is al een hele andere HOWTO over geschreven. Wat ik zal doen is je vertellen waar je aan moet denken als je PPP gaat gebruiken met een emulator.

Ten eerste wordt in de laatste versie van DIP aangegeven dat je het kunt gebruiken om PPP op te starten, en dat is ook zo, MAAR het start alleen de PPP-daemon, geen vlaggen, niets. Dus als je DIP wilt gebruiken om PPP op te starten, zorg er dan voor dat je alle opstartinfo in het bestand /etc/ppp/options plaatst, anders werkt het niet.

Nu we het toch over het options bestand hebben, één van de dingen die daarin moet staan ongeacht hoe je pppd opstart, is: '192.0.2.1:XXX.XXX.XX.XX'. Dit wil zeggen: 'lokaalIPadres:remoteIPadres'. Je moet het hierin plaatsen omdat pppd de niet ingevulde waarde niet zelf kan invullen wanneer je een verbinding maakt met een emulator.

Zorg dat je aan het laatste pppd package komt. Het schijnt dat er recent een paar versies waren waarmee wat problemen waren.

Als laatste, tenzij je een goede reden hebt om PPP te gebruiken, of gewoon wilt leren hoe het werkt, je hebt het niet echt nodig. Ik heb ze beiden geprobeerd, en merkte geen verschil in performance met de standaard set clients. Uiteraard kun jij andere ervaringen hebben. :)


Wat nu?

Als alles goed is gegaan, ben je nu verbonden met het Net! Probeer een 'telnet remotehostname' (weet je nog de verkorte vorm in je hosts bestand?) Je zou de loginprompt van de remote telnet moeten krijgen. Ga je gang, probeer het uit! Je kunt nu overal vanaf je lokale machine gebruik maken van telnet/FTP/enz. op het Net. Hoe? Je machine gebruikt de remote als een nameserver om adressen om te zetten (resolv.conf). Experimenteer, probeer er achter te komen wat werkt, en wat niet.

Je zult geen service kunnen gebruiken waarin nog niet is voorzien op je remote host! Als op je server bijvoorbeeld geen telnet is toegestaan, dan is de kans groot dat jij het ook niet kunt. Waarom? Omdat de emulator alleen doorstuurt wat reeds beschikbaar is.


Mail

De vanzelfsprekende tekstgeöriënteerde oplossing is Pine, je kunt het ophalen vanaf De Universiteit van Washington.

Mijn keuze voor de "Beste mailreader, gebaseerd op X' is XFmail. Het is nu geen beta meer. Makkelijk te installeren; er hoeft geen lokaal mailsysteem te worden geïnstalleerd (maar het werkt wel met lokale spools), omdat POP is ingebouwd, geen popclient/fetchpop meer! Makkelijk te gebruiken; volledig aanpasbaar vanuit de GUI. Ondersteunt ook MIME. Haal het op vanaf De XFmail Homesite.


News

De tekstgeöriënteerde News Reader SLRN is tamelijk simpel te installeren en gebruiken. Het is een echte NNTP newsreader, wat betekent dat er geen lokaal newstransport nodig is om het werkend te krijgen (je hoeft Cnews of INN niet te installeren). Het verlangt uiteraard dat je toegang hebt tot een NNTP-server, maar die hebben de meeste ISP's. Het is tekstgeöriënteerd, maar biedt wel ondersteuning voor kleuren en de muis, en het draait prima in een rxvt venster.

De op X gebaseerde News Reader KNews is bijna perfect. Net als bij SLRN is lokaal transport niet nodig, maar een NNTP server wel. Op z'n minst waard eens te bekijken.


Mosaic/Netscape

Uiteraard moet je voor de werking hiervan X actief hebben, maar het is eenvoudig een kwestie van het via FTP ophalen van de binary, dit uitpakken en het installeren.


Diversen

Ik lees mijn mail dagelijks, mocht hierin iets ontbreken, of mocht je nog vragen hebben. Deze informatie wordt tamelijk regelmatig bijgewerkt, dus kijk zo nu en dan eens terug (ik zal de versienummers wijzigen). Natuurlijk zal er meer info hierin worden opgenomen, naarmate je meer bijdraagt, dus aarzel niet me te vertellen wat je hebt te bieden.

Als je hulp wilt of problemen ondervindt met je setup, dan zal ik je helpen, maar dan moet je me de volgende info opsturen:

  1. Een kopie van de drie /etc bestanden.

  2. Een kopie van de uitvoer van je script, uitgevoerd met de -v vlag (verwijder hier alsjeblieft je wachtwoord uit!)

Email me alsjeblieft, ook als je niets hebt bij te dragen, maar deze info met succes gebruikte. Ik wil weten hoe bruikbaar dit werkelijk is.


Referenties

Sunsite is de FTP site sunsite.unc.edu , een ware overvloed aan alles over Linux, inclusief bijna elk geschreven FAQ, HOWTO, en README.

Marketplace.com is de thuishaven van TIA, de enige lokaties waar het beschikbaar is.

Opmerking

Marketplace.com schijnt buiten bedrijf te zijn.

Deze HOWTO is op de volgende plaatsen beschikbaar: