Inhoudsopgave
Hier volgt een lijst van de bestanden die gebruikt worden om netwerkconnectiviteit te configureren. De opbouw van de bestanden worden in de volgende secties beschreven.
/etc/hosts
Lokale hosts database bestand. Elke regel bevat informatie over een bekende host en bevat het internet adres, hostname en aliases van de host. Kleine netwerken kunnen geconfigureerd worden met het hosts bestand, zonder een name server.
/etc/resolv.conf
Dit bestand specificeert hoe de machine toegang heeft tot het Internet Domain Name System. Gewoonlijk bevat het de adressen van de name servers.
/etc/ifconfig.xxx
Dit bestand wordt gebruikt voor automatische configuratie van de netwerkkaart tijdens het starten van het systeem.
/etc/mygate
Bevat het IP adres van de gateway.
/etc/nsswitch.conf
Name service switch configuratiebestand. Hiermee kunt u instellen hoe een proces verschillende databases met informatie over hosts, gebruikers, groepen, etc. doorzoekt. Dit bestand bepaald bijvoorbeeld de volgorde waarop verschillende databases doorzocht moeten worden. De regel
hosts: files dns
specificeert bijvoorbeeld dat de hosts database
uit twee bronnen komt: uit files
(het lokale /etc/hosts
bestand)
en DNS (het Internet Domain Name System) en dat
de lokale bestanden eerst geraadpleegd worden en daarna het
DNS systeem.
Gewoonlijk is het niet nodig dit bestand aan te passen.
Netwerkconnectiviteit is één van de sterke kanten
van Unix en NetBSD is geen uitzondering: de netwerkconnectiviteit
is krachtig en eenvoudig in te stellen en is ook goedkoop, omdat
u geen additionele software hoeft te kopen om te kunnen communiceren met
een server of zelf een server op te zetten.
Het enige waar u op moet letten voordat u een netwerk opzet is
of de netwerkkaarten die u gaat gebruiken ondersteund worden door
NetBSD (bekijk het INSTALL
bestand voor
een lijst van ondersteunde kaarten).
Eerst moeten de netwerkkaarten geïnstalleerd worden en verbonden worden met een hub, switch of een rechtstreekse verbinding.
Daarna moet u controleren of de netwerkkaarten door de kernel herkend worden door te kijken naar de uitvoer van het dmesg commando. In het volgende voorbeeld heeft de kernel succesvol een NE2000 kloon herkend:
... ne0 at isa0 port 0x280-0x29f irq 9 ne0: NE2000 Ethernet ne0: Ethernet address 00:c2:dd:c1:d1:21 ...
Als de kaart niet herkend wordt door de kernel moet u controleren of de ondersteuning voor de kaart ingeschakeld is in het kernel configuratiebestand en of IRQ instellingen in de kernel overeenkomen met de IRQ van de kaart (dit geldt met name voor ISA kaarten). Dit is bijvoorbeeld de configuratieregel voor ISA NE2000 kaarten in het configuratiebestand, de kernel verwacht dat de kaart IRQ 9 gebruikt:
... ne0 at isa? port 0x280 irq 9 # NE[12]000 ethernet cards ...
Als de configuratie van de kaart anders is wordt het waarschijnlijk niet gevonden tijden het starten van het systeem. Verander in dat geval de desbetreffende regel in de kernelconfiguratie en compileer een nieuwe kernel of verander de instellingen van de kaart (gewoonlijk kan dit met een setup diskette of, bij oudere kaarten, met een jumper op de kaart).
Het volgende commando toont de huidige configuratie van de netwerkkaart:
#
ifconfig ne0
ne0: flags=8822<BROADCAST,NOTRAILERS,SIMPLEX,MULTICAST> mtu 1500 media: Ethernet 10base2
De softwareconfiguratie van de netwerkkaart is erg eenvoudig. Het IP adres is "192.168.1.1" (dit adres is gereserveerd voor internet netwerken) en wordt toegekend aan de kaart.
#
ifconfig ne0 inet 192.168.1.1 netmask 0xffffff00
Herhaling van het commando ifconfig ne0 geeft nu het volgende resultaat:
#
ifconfig ne0
ne0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500 media: Ethernet 10base2 inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255
De uitvoer van het ifconfig commando is nu veranderd: het IP adres wordt nu getoond en er zijn twee nieuwe vlaggen, "UP" en "RUNNING". Als de interface niet "UP" is zal het niet door het systeem gebruikt worden om packets te versturen.
De host heeft het IP adres 192.168.1.1 gekregen, dit adres behoort tot een reeks van adressen die gereserveerd is voor interne netwerken die niet bereikbaar zijn via het internet. De configuratie is nu voltooid en moet getest worden; als er een andere host op het netwerk is kunnen de instellingen met ping getest worden. Als bijvoorbeeld 192.168.1.2 het adres is van de andere host, probeer dan:
#
ping 192.168.1.2
PING ape (192.168.1.2): 56 data bytes 64 bytes from 192.168.1.2: icmp_seq=0 ttl=255 time=1.286 ms 64 bytes from 192.168.1.2: icmp_seq=1 ttl=255 time=0.649 ms 64 bytes from 192.168.1.2: icmp_seq=2 ttl=255 time=0.681 ms 64 bytes from 192.168.1.2: icmp_seq=3 ttl=255 time=0.656 ms ^C ----ape PING Statistics---- 4 packets transmitted, 4 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 0.649/0.818/1.286/0.312 ms
Met de instellingen tot zover moet de netwerkkaart na het herstarten
van het systeem weer opnieuw ingesteld worden.
Om te voorkomen dat de netwerkkaart na elke herstart weer
geconfigureerd moet worden moeten twee dingen gedaan worden:
maak eerst het bestand /etc/ifconfig.interface
aan, waarin "interface" vervangen wordt met de naam
die de kernel aan de netwerkkaart toegekend heeft (dus in
het gebruikte voorbeeld moet het bestand
/etc/ifconfig.ne0
aangemaakt worden)
met de volgende regel:
inet 192.168.1.1 netmask 0xffffff00
Voeg vervolgens de volgende instelling aan
/etc/rc.conf
toe:
auto_ifconfig=YES
Na de volgende start van het systeem zal de netwerkkaart automatisch geconfigureerd worden.
Het /etc/hosts
bestand is een database van
IP adressen en tekstuele equivalenten: het is handig om alle
hosts op het internet netwerk hier aan toe te voegen.
Bijvoorbeeld:
Voorbeeld 12.1. /etc/hosts
# $NetBSD: chap-net.html,v 1.20 2005/04/09 16:17:31 daniel Exp $ # # Host Database # This file should contain the addresses and aliases # for local hosts that share this file. # It is used only for "ifconfig" and other operations # before the nameserver is started. # # 127.0.0.1 localhost # # RFC 1918 specifies that these networks are "internal". # 10.0.0.0 10.255.255.255 # 172.16.0.0 172.31.255.255 # 192.168.0.0 192.168.255.255 192.168.1.1 ape.insetti.net ape 192.168.1.2 vespa.insetti.net vespa 192.168.1.0 insetti.net
Om alles op te sommen, om netwerkconnectiviteit te configureren
moet het volgende gedaan worden: de netwerkkaarten moeten
geïnstalleerd en fysiek aangesloten worden. Daarna moeten
ze geconfigureerd worden (met ifconfig) en
tenslotte moeten het /etc/hosts
bestand
aangepast worden. Dit is een basale netwerkconfiguratie en
is alleen geschikt voor kleine netwerken met weinig eisen.
De mysterieuze afkorting IPNAT staat voor Internet Protocol Network Address Translation. IPNAT stelt u in staat verkeer te routen van een intern netwerk naar een echt netwerk (internet). Dit betekent dat u met slechts één “echt” adres (zowel statisch als dynamisch) dat toegekend is aan een gateway gelijktijdig alle interne hosts verbinding kunt laten maken met het internet.
Een aantal voorbeelden van het gebruik van IPNAT kunnen gevonden
worden in de /usr/share/examples/ipf
directory; kijk naar de BASIC.NAT
en
nat-setup
bestanden.
De opstelling die in het voorbeeld dat hier besproken wordt is afgebeeld in Figuur 12.1, “Netwerk met een gateway”. host1 kan door een internet provider te bellen met een modem verbinding met het internet maken, waarbij een dynamisch IP adres toegewezen wordt. host 2 en host 3 kunnen gewoonlijk geen verbinding met het internet maken: IPNAT stelt ze in staat dat te doen, host1 zal optreden als gateway voor hosts 2 en 3.
Om IPNAT te kunnen gebruiken moet “pseudo-device ipfilter” aanwezig zijn in de kernelconfiguratie. U kunt als volgt controleren of dat het geval is bij de huidige kernel:
#
sysctl net.inet.ip.forwarding
net.inet.ip.forwarding = 1
Als het resultaat “1” is als in het voorbeeld is de optie aanwezig in de kernelconfiguratie. Als het resultaat “0” is is de optie niet meegecompileerd. U kunt twee dingen doen:
Een nieuwe kernel compileren, met de GATEWAY optie.
U kunt de optie aangeschakelen in de huidige kernel met het volgende commando:
#
sysctl -w net.inet.ip.forwarding=1
U kunt sysctl instellingen toevoegen aan
/etc/sysctl.conf
, zodat ze automatisch
ingesteld worden tijdens het starten van het systeem. In
dit geval moet u de volgende regel toevoegen:
net.inet.ip.forwarding=1
In de rest van deze sectie wordt uitgelegd hoe u IPNAT kunt configureren zodat het automatisch gestart wordt wanneer er een PPP connectie met de provider is gemaakt. Met deze configuratie kunnen bijvoorbeeld alle machines op een thuisnetwerk verbinding maken met het internet via de gateway machine, zelfs als ze niet op NetBSD draaien.
Maak eerst het /etc/ipnat.conf
bestand aan met de volgende regels:
map ppp0 192.168.1.0/24 -> 0/32 proxy port ftp ftp/tcp map ppp0 192.168.1.0/24 -> 0/32 portmap tcp/udp 40000:60000 map ppp0 192.168.1.0/24 -> 0/32
192.168.1.0/24 representeert de netwerkadressen die vertaald (mapped) moeten worden. De eerste regel van het configuratiebestand is optioneel, het zorgt ervoor dat actieve FTP verbindingen de gateway kunnen passeren. De tweede regel wordt gebruikt om TCP en UDP connecties correct af te handelen, het zorgt er namelijk voor dat er gebruik gemaakt wordt van een groot bereik van poorten (wat nodig is als veel machines van één IP adres gebruik maken). De derde regel wordt gebruikt om te zorgen dat de machines op het netwerk ICMP, ping, en dergelijke kunnen gebruiken.
Maak het /etc/ppp/ip-up
bestand aan, het
zal aangeroepen worden wanneer de PPP verbinding geactiveerd
is. Zorg dat de volgende regels in dit bestand staan:
#!/bin/sh # /etc/ppp/ip-up /etc/rc.d/ipnat forcestart
Maak het bestand /etc/ppp/ip-down
aan,
dit bestand zal aangeroepen worden als de PPP verbinding
verbroken wordt. Zorg dat de volgende regels in dit bestand
staan:
#!/bin/sh # /etc/ppp/ip-down /etc/rc.d/ipnat forcestop
Zowel ip-up
als ip-down
moeten uitvoerbaar zijn:
#
chmod u+x ip-up ip-down
De gateway machine is nu gereed.
Maak een /etc/resolv.conf
vergelijkbaar
met die van uw gateway.
Voer het volgende commando uit:
#
route add default 192.168.1.1
192.168.1.1 is het adres van de gateway machine die in de vorige sectie is geconfigureerd.
Natuurlijk wilt u niet iedere keer dit commando intikken, daarom
is het beter “defaultroute” in het
/etc/rc.conf
bestand te configureren, of
het adres op te slaan in /etc/mygate
(met hetzelfde effect). Op deze manier wordt de default
route automatisch tijdens het starten van het systeem
ingesteld.
Als de client machine geen NetBSD gebruikt zal de configuratie anders zijn. Op Windows PC's moet u de gateway instellen in de TCP/IP configuratie.
Het instellen van de defaultroute of gateway en de te gebruiken nameservers is alles wat u hoeft te doen op clients.
De volgende commando's kunnen behulpzaam zijn voor het onderzoeken van problemen:
Toont de route tabel (vergelijkbaar met route show).
Toont de route die pakketten moeten afleggen om bij een andere host aan te komen.
Kan gebruikt worden om TCP/IP verkeer in de gaten te houden op de gateway.