Deze sectie geldt en is alleen geldig voor FreeBSD 7.X.
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.
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
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.
Bewerk het /etc/rc.conf
bestand.
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.
Stel het wachtwoord in voor de
root
en de toor
gebruikers (en elke andere gebruiker die geen wachtwoord
heeft).
Herstart de machine en controleeer of deze opkomt met de correcte hostnaam.
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.
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
.
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.
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.
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.
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 Paragraaf 26.4, “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).
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.
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).
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 Hoofdstuk 9, De FreeBSD-kernel instellen over het configureren van de FreeBSD kernel voor meer hulp over het herconfigureren van uw kernel.
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.
/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 (Paragraaf 27.7.2.1, “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.
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.
/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
).
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.
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.