De Help Desk punt NL
Kennisbank
De Helpdesk > De Helpdesk > Kennisbank

Netwerk

Oplossing

Voor het configureren van het netwerk zijn er verschillen tussen de distributies. Raadpleeg de documentatie voor details. In dit hoofdstuk worden alleen algemeen geldende zaken behandeld.

Ethernet en UTP

De meest gebruikte soort netwerkkaart zijn de zg. ethernetkaarten. De fysieke verbinding wordt verzorgd door UTP-kabels (Unshielded Twisted Pair). Een inmiddels verouderde mogelijkheid is coaxkabels. Een coaxverbinding heeft een maximum van 10 Mbit per seconde. Met UTP haal je ook 100 MBit. Nog nieuwer is draadloos (WLAN, Wireless Local Area Network).

Je kunt twee computers door middel van een UTP-kabel rechtstreeks met elkaar verbinden. Zo'n kabel noemt men een crosslink-kabel. Door aan beide computers een statisch IP-adres te geven, kunnen ze met elkaar communiceren. Wil je meerdere computers aan elkaar koppelen, dan heb je een hub of switch nodig. Alle computers hebben dan met een normale UTP-kabel (ook wel patchkabel) rechtstreeks verbinding met de hub of switch. De hub of switch verzorgt het dataverkeer tussen de computers. Een hub biedt data aan aan alle aangesloten computers. Bij een switch gaat de data alleen naar de computer waar het voor is bestemd. Een switch zal over het algemeen data sneller doorvoeren. Een hub of switch kan weer gekoppeld worden aan een andere hub of switch om het netwerk verder uit te breiden.

Wellicht wil je met het hele netwerk een internetverbinding delen. Daarvoor moet één van de computers in het netwerk een verbinding met het internet hebben en fungeren als gateway voor de rest. Die computer als gateway laten gebruiken, doe je met een masquerading firewall (zie sectie Masquerading firewall). In die computer moeten dan twee netwerkkaarten zitten als je voor de internetverbinding een netwerkkaart nodig hebt. Als alternatief kun je ook een router nemen die kan fungeren als gateway. Tegenwoordig is zo'n router al standaard uitgerust met bijvoorbeeld een 4-poortswitch en een draadloos access point.

Er moet ondersteuning voor je netwerkkaart in de kernel zitten of als module aanwezig zijn. De eerste ethernetkaart heet eth0, een tweede eth1, etc. Als de kaart goed is herkend, dan zou je het MAC-adres van de kaart (en andere informatie) moeten kunnen zien met ifconfig. (Ben je niet root, dan moet je /sbin/ifconfig gebruiken.) Ook in de logs van de kernel, te bekijken met dmesg, is het MAC-adres terug te vinden.

Netwerkbegrippen

Een protocol is een afspraak over wat er over een medium heen en weer gestuurd wordt om tegen elkaar te praten. Het protocol waar op het internet en bij ethernet gebruik van wordt gemaakt heet TCP/IP. Dit protocol is opgebouwd uit verschillende lagen:

  • IP - Dit deel is het laagste niveau en verzorgt het verzenden en ontvangen van IP-pakketjes. Elk IP-pakket heeft o.a. een source (bron) en destination (doel) IP.
  • TCP - Het TCP-deel is een niveau hoger dan de vorige en verzorgt de communicatie over een verbinding. Het zorgt ervoor dat datapakketten worden herkend, altijd aankomen en op de juiste volgorde worden gebruikt.
  • UDP - Dit is te gebruiken i.p.v. TCP. Het grootste verschil met TCP is dat er geen garantie is dat de data aangekomen is of in de juiste volgorde bekeken wordt. Daardoor is het sneller, maar is minder betrouwbaar. Verrassend genoeg kwam UDP later dan TCP.

SMTP (voor e-mail), HTTP (voor websites), FTP (file transfer) en SNMP (usenet) zijn voorbeelden van protocollen die weer bovenop TCP/IP werken. Als programmeur hoef je je geen zorgen te maken over het oversturen van elk individueel pakketje data. Dat handelt TCP/IP af. Je moet er alleen voor zorgen dat de server en client elkaars boodschappen begrijpen, dat die twee hetzelfde protocol gebruiken.

Hier volgt een lijst van begrippen die met netwerken en het internet te maken hebben.

  • IP-adres

Elk netwerkdevice, zoals een ethernetkaart of modem, heeft bij het TCP/IP-protocol een uniek nummer: het IP-adres. Het IP-adres bestaat uit vier getallen van tussen 0 en 255, gescheiden door punten, bijvoorbeeld 145.23.443.1. Elk getal is maximaal 255, omdat elk getal door 8 bits wordt weergegeven. Het gehele IP-adres is 32 bits groot.

Het IP-adres bestaat uit twee delen: een netwerk- en hostgedeelte. Het netwerkgedeelte komt eerst en geeft aan op welk netwerk de machine zit. Het hostgedeelte komt daarachter en geeft aan welke machine het precies is binnen dat netwerk. Waar de scheiding tussen beide delen zit, hangt af van de class en wordt aangegeven met de netmask.

Als je verbinding maakt met een netwerk (bijvoorbeeld het internet), kun je een statisch of dynamisch IP-adres hebben. Een statisch IP-adres is, zoals de naam al zegt, altijd hetzelfde. Dit adres kan worden bijgehouden in de configuratie van de netwerkkaart of worden toegewezen door een zogenaamde DHCP-server. Maar een DHCP-server is vooral bedoeld voor het bepalen van een dynamisch IP-adres.

  • IP-range

Een IP-range is een serie IP-adressen, bijvoorbeeld de IP-adressen 133.155.4.0 t/m 133.155.4.255. De Internet Assigned Numbers Authorithy (IANA) beheert deze ranges. Er zijn drie IP-ranges gereserveerd die mogen worden gebruikt op een Local Area Network (LAN). Deze adressen worden niet toegekend aan wie dan ook.

  • 10.0.0.0 - 10.255.255.255
  • 172.16.0.0 - 172.31.255.255
  • 192.168.0.0 - 192.168.255.255

Daarnaast wordt 127.0.0.1 altijd voor de lokale machine (localhost) gebruikt. 127.0.0.1 wordt ook wel de loopback device genoemd. Hij is nodig omdat sommige programma's niet werken zonder een netwerkverbinding.

  • Class A, B en C

Als in een IP-range alleen het eerste getal vast (het netwerkgedeelte) is, dan bevat die IP-range erg veel IP-adressen (bijv. 23.0.0.0 t/m 23.255.255.255). Zo'n range wordt class A genoemd. Als de eerste twee getallen het netwerkgedeelte voorstellen, dan bevat het al minder IP-adressen. Zo'n range is class B. Zijn de eerste drie getallen het netwerkgedeelte, dan is het class C.

  • Netmask

Door de netmask kan bepaald worden of een pakketje data voor een computer in het lokale netwerk (LAN) of WAN (Wide Area Network, een verzameling van verschillende LAN's) bestemd is. Is het bestemd voor buiten het interne netwerk, dan moet het pakket naar de gateway. De netmask bepaal je door alle IP's in de IP-range die je ter beschikking hebt binair te bekijken. Op alle plaatsen die niet veranderen staat een 1 in de netmask, op de andere plaatsen een 0. Een voorbeeld:

Je gebruikt de IP-range 192.168.1.0 - 192.168.1.255.

192.168.1.0 is binair 11000000 10101000 00000001 00000000
192.168.1.1 is binair 11000000 10101000 00000001 00000001

De eerste 24 binaire posities veranderen nooit in deze IP-range. Op al die plaatsen hoort een 1 in de netmask. Dus de netmask is 11111111 11111111 11111111 00000000. Decimaal is dat 255.255.255.0.

Je krijgt dus 255.0.0.0 voor class A, 255.255.0.0 voor class B en 255.255.255.0 voor class C.

  • Netwerk- en broadcastadres

De laagste IP uit de IP-range is volgens afspraak de IP die bij het hele netwerk hoort, het netwerkadres. Het broadcastadres is vaak de hoogste IP in de range, al is dit adres wel vrij te kiezen. Pakketten die naar het broadcastadres worden gestuurd, komen op alle IP's in het netwerk aan.

  • Gatewayadres

Dit is de IP van de computer die het netwerk aan het WAN (bijvoorbeeld internet) koppelt. Die computer wordt router of gateway genoemd.

  • Poort

Om ervoor te zorgen dat elk programma een eigen verbinding kan maken (die het overige netwerkverkeer niet in de weg zit), gebruikt men poorten. Elke service op een machine heeft een eigen poort. Zo heeft FTP poort 21, SSH poort 22, telnet poort 23, en HTTP poort 80. Alle poortnummers onder de 1024 zijn ergens aan toegewezen. Een lijst van poorten en services kun je terugvinden in /etc/services. Programma's die geen poort onder 1024 toegewezen hebben gekregen, gebruiken een hoger poortnummer (tussen 1024 en 65535).

  • DNS-server

Staat voor Domain Name Server. Je weet waarschijnlijk wel dat je in plaats van een IP-adres ook een naam kunt intikken in een webbrowser om een pagina te bekijken. Sterker nog, je doet waarschijnlijk nooit anders. Maar hoe weet de browser met welk IP-adres hij verbinding moet maken? Daar is een DNS-server voor. Die zet namen om in een IP-adres (en vice versa).

  • DHCP

Staat voor Dynamic Host Configuration Protocol, een protocol voor het toekennen van dynamische IP-adressen. De meeste providers hebben een DHCP-server om beschikbare adressen uit te delen aan alle verbindingen. DHCP biedt de provider het voordeel van minder administratie, maar ook voor de gebruiker is dit eenvoudiger. Met DHCP wordt ook vanzelf de netmask ingesteld, de routing tabel vastgesteld en de DNS-server(s) bepaald.

Handige programma's

De volgende programma's zijn handig/nodig als je een netwerk of internetverbinding aan het opzetten bent.

  • ping

Om te testen of er een verbinding is kun je het programma ping gebruiken. (Dit programma bestaat ook onder Windows.) Het gebruik van ping is eenvoudig: ping IP/hostname. Er worden dan kleine datapakketjes (ICMP echo requests) naar de machine verzonden waarop gereageerd wordt. Als uitvoer geeft ping hoe lang het duurt om een reactie te krijgen. Hier gaat de Linux-versie eindeloos mee door. Je moet het stoppen met ctrl-c. Dan worden nog wat statistieken getoond. Je kunt ook een aantal keer opgeven dat een ping moet worden verstuurd met de optie -c# (met # het aantal keer). Naast testen of een verbinding met een andere computer in het netwerk werkt, kun je er ook mee testen of de internetverbinding en DNS-server goed werken.

  • ifconfig

Zonder argumenten mee te geven, laat dit programma zien welke verbindingen er actief zijn en o.a. welk IP eraan is toegekend. Je kunt verbindingen starten en stoppen met ifconfig naam up/down. In plaats van naam gebruik je bijv. eth0 of ppp0 (voor een modemverbinding).

  • nslookup

Met dit programma kun je nagaan hoe een „name server lookup” verloopt. Typ je bijvoorbeeld nslookup www.google.nl, dan zul je een lijstje krijgen van de weg die jouw request aan de DNS-server doorloopt.

Hosts en resolv.conf

Binnen een lokaal netwerk kun je lokaal te gebruiken hostnamen opgeven per IP in /etc/hosts. Een voorbeeldinhoud:

127.0.0.1localhost
192.168.1.1piet
192.168.1.2frits
192.168.1.3karel

Hierbij ga je ervanuit dat alle machines een statisch IP-adres hebben. De ranges van IP-adressen die hiervoor geschikt zijn werden in sectie Netwerkbegrippen genoemd. Begin de adressen vanaf .1 op het eind en niet vanaf .0. Dat zou het netwerkadres zijn en dat werkt niet. Je kunt hier ook meerdere namen voor je eigen machine (localhost) opgeven.

In het geval van DHCP hoef je het adres van de DNS-server(s) niet zelf op te geven. In overige gevallen zul je de domeinnaam en DNS-server(s) van je provider zelf in /etc/resolv.conf moeten zetten. Een voorbeeld:

search wanadoo.nl
nameserver 195.96.96.97
nameserver 195.96.96.33

Masquerading firewall

Als je een lokaal netwerk hebt, wil je wellicht ook wel met het hele netwerk gebruik kunnen maken van internet. Als een van de computers in het netwerk een verbinding heeft met je provider, dan kun je die als gateway gebruiken voor de rest. Wat je wilt is een masquerading firewall draaien op die computer. Dan kun je op alle computers in het netwerk gebruiken maken van internet, maar het lijkt van buitenaf alsof al het verkeer van/naar de computer met de internetverbinding komt/gaat. (En in feite is dat ook zo, want alles gaat langs die computer.)

Naast ondersteuning voor een firewall in de kernel heb je nog een programma nodig om daadwerkelijk regels te kunnen opgeven. Bij 2.4.x- en 2.6.x-kernels kun je daarvoor iptables (http://www.iptables.org) gebruiken. Een eenvoudige regel:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Op de plaats van eth0 vul je de device in die bij jou de internetverbinding verzorgt. Waarschuwing: Dit vormt een minimale configuratie die totaal geen veiligheid biedt!

Daarnaast moet er nog tegen de kernel gezegd worden dat IP forwarding moet worden geactiveerd:

echo 1 > /proc/sys/net/ipv4/ip_forward

Samba

Samba (http://www.samba.org) is software om bestanden (en printers) te kunnen delen met Windows. Het bestaat uit een client en server.

Om een verbinding met een Samba-server te maken (en verbreken) zijn er drie programma's: smbmount, smbumount en smbclient. Een directory die wordt geshared op een Samba-server of Windows-systeem mount je net als een partitie van je eigen harde schijf. Je hebt er dus ook een mount point voor nodig. Maak bijv. /mnt/samba aan. Je mount daar dan een gesharede directory onder met:

smbmount //machinenaam/share /mnt/samba

Er wordt dan gevraagd om een wachtwoord. Als er guest access is (dus als er geen wachtwoord nodig is), kun je daar simpelweg op enter drukken. Je kunt in dat geval ook de optie -o guest meegeven om niet om een wachtwoord te laten vragen. Om een overzicht van shares op een bepaalde machine te krijgen, gebruik je:

smbclient -L //machinenaam

Wil je een directory weer unmounten, dan gebruik je:

smbumount /mnt/samba

Smbumount mislukt echter als de machine waar de gesharede directory op stond in de tussentijd werd uitgezet of is gecrasht. In dat geval kun je umount /mnt/samba of umount -f /mnt/samba proberen.

Naast mounten kun je ook met het programma smbclient een share bekijken en bestanden downloaden en uploaden op dezelfde manier als bij een FTP-server.

Met de file managers van KDE en GNOME (resp. Konqueror en Nautilus) kun je veel handiger shares benaderen zonder ze te hoeven mounten. Voer daarvoor in de adresbalk smb://machinenaam/share of smb://machinenaam in.

Het configuratiebestand van de server is /etc/smb.conf of /etc/samba/smb.conf. Wat je in dit bestand moet zetten, wordt uitgelegd in de manual page (man smb.conf). Een voorbeeldconfiguratie:

[global]
   workgroup = THUISNETWERKJE
   server string = Samba server
   hosts allow = 192.168.1. 127.
   security = share
   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
   dns proxy = no 

[public]
   path = /home/shares
   public = yes
   writable = no

Deze configuratie geeft iedereen in de IP-range 192.168.1.x zonder wachtwoord toegang tot /home/shares, maar zonder schrijfrechten.

Sendmail en fetchmail

De klassieke manier om mail te versturen en ontvangen is met Sendmail. Ontvangen mail wordt opgeslagen in /var/spool/mail/username. Programma's als Mutt en Pine (beide erg fijne tekstgebaseerde mailprogramma's) gaan uit van zo'n situatie. Veel mensen hebben echter niet hun computer dag en nacht aan en met een actieve internetverbinding, wat nodig is altijd mail te kunnen ontvangen. Verder heeft men meestal ook geen eigen domeinnaam, zodat een IP-adres zou moeten worden gebruikt in het e-mailadres. Daarom gebruiken veel mensen de mailserver van een ander systeem, typisch die van hun ISP (internetprovider). Om mail van die server op te halen, kun je fetchmail (http://fetchmail.berlios.de) gebruiken. Fetchmail kun je configureren met fetchmailconf. Handmatig configureren is ook niet zo moeilijk. Zet daarvoor in ~/.fetchmailrc iets als:

poll pop.gmx.net with proto POP3
user "gebruikersnaam" there with password geheim is jarkko here warnings 3600

Vervang hierin pop.gmx.net door de mailserver die je wilt, POP3 door het te gebruiken protocol, gebruikersnaam door de gebruikersnaam om in te loggen, geheim door het te gebruiken wachtwoord en jarkko door de gebruikersnaam van de persoon waar de mail voor is. Je kunt je mail eenmalig laten ophalen met fetchmail. Met de extra optie --daemon interval kun je fetchmail in daemon-mode laten werken. Vervang interval door het aantal secondes dat er gewacht moet worden om de mail opnieuw te controleren.

Meer over fetchmail is te vinden in de manual page.

Nu heb je alleen nog het probleem dat de mail die je verstuurt de hostname van de machine waar je op werkt als afzender heeft. En dat wil je juist niet als je computer niet altijd aan staat. (Dan zou mail niet ontvangen worden als je computer toevallig uit staat, omdat de mailserver dan niet bereikbaar is.) Je kunt Sendmail zo configureren dat hij de afzender herschrijft. Hoe je dat precies doet, staat beschreven in de Sendmail address rewrite mini-HOWTO. Iets eenvoudiger (maar niet centraal geregeld voor alle gebruikers) is dit probleem verplaatsen naar het gebruikersniveau. De meeste mailprograma's kunnen zelf al een andere afzender opgeven dan huidigegebruiker@hostname. Voor Mutt kun je bijvoorbeeld in ~/.muttrc het volgende opnemen:

my_hdr From: naam <user@host.com>
my_hdr Return-Path: naam <user@host.com>

Vervang daar user@host.com door de gewenste afzender. Bij Pine kan ditzelfde gedaan worden door de volgende regel op te nemen in ~/.pinerc:

customized-hdrs=From: naam <user@host.com>
customized-hdrs=Return-Path: naam <user@host.com>
 
Was dit artikel bruikbaar? ja / nee
Gerelateerde artikelen Een Linux Mint / Ubuntu computer in uw windows thuisnetwerk opnemen
Security
Hoe integreer je Linux in een bestaand netwerk?
Op afstand werken
Netwerkprotocollen - TCP/IP
IP-adresmaskering en IP-adresvertaling
ifconfig
Alternatieve DNS-server instellen
ZoneAlarm - Personal Firewall
Wat is een switch
Artikel details
Artikel ID: 740
Categorie: Linux handboek 2008
Zoekwoorden netwerk, linux, ethernet, utp, begrippen, netwerkbegrippen, ip-adres, ip-range, netmask, class, netwerkadres, broadcastadres, gateway, poot, dns, server, ping, ifconfig, nslookup, hosts, resolv, conf, firewall, samba, masquerading, sendmail, fetchmail
Datum toegevoegd: 6-Dec-2008 03:29:08
Aantal bekeken: 342
Beoordeling (Stemmen): Artikel nog niet beoordeeld (0)

 
« Ga terug