<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sections SYSTEM "/dtd/book.dtd">

<!-- The content of this document is licensed under the CC-BY-SA license -->
<!-- See http://creativecommons.org/licenses/by-sa/2.5 -->

<!-- $Header: $ -->

<!-- SYNC: 1.13 -->

<sections>

<version>1.7</version>
<date>2006-01-03</date>

<section>
<title>Netwerk Modules</title>
<body>

<p>
Omdat we tegenwoordig modulaire netwerk scripts gebruiken, kunnen we eenvoudig
nieuwe interfaces en configuratie modules toevoegen, terwijl de oude interfaces
ondersteund blijven.
</p>

<p>
De modules worden automatisch geladen indien een pakket geïnstalleerd wordt dat
ze nodig heeft. Als u een module instelt om te gebruiken waarvan u het pakket
niet hebt geïnstalleerd krijgt u een waarschuwing, dat u het pakket moet
installeren. In principe hoeft u modules alleen in te stellen wanneer u meer
dan één pakket hebt geïnstalleerd voor dezelfde functie en u er één prefereert
boven de andere.
</p>

<pre caption="Module instellen">
<comment># iproute2 gebruiken in plaats van ifconfig</comment>
modules=( "iproute2" )

<comment># U kunt ook modules per interface instellen
# In dit geval gebruiken we udhcpc in plaats van dhcpcd</comment>
modules_eth0=( "udhcpc" )

<comment># U kunt ook aangeven welke modules u niet wilt gebruiken - bijvoorbeeld
# omdat u supplicant of linux-wlan-ng gebruikt voor uw draadloze instellingen,
# maar u toch uw netwerk per ESSID wilt instellen.</comment>
modules=( "!iwconfig" )
</pre>

</body>
</section>
<section>
<title>Interface Handlers</title>
<body>

<p>
Op dit moment worden twee hulpprogramma's ondersteund: <c>ifconfig</c> en
<c>iproute2</c>. U moet één van beide gebruiken indien u een netwerk op
wilt zetten.
</p>

<p>
<c>ifconfig</c> is Gentoo's standaard en wordt met het systeem mee
geïnstalleerd. <c>iproute2</c> heeft meer mogelijkheden, maar wordt niet
standaard mee geleverd.
</p>

<pre caption="Het installeren van iproute2">
# <i>emerge sys-apps/iproute2</i>

<comment># Om iproute2 te gebruiken in plaats van ifconfig</comment>
modules=( "iproute2" )
</pre>

<p>
<c>ifconfig</c> en <c>iproute2</c> doen ongeveer hetzelfde, daarom kunnen
beide naast elkaar draaien. De onderstaande code zou bijvoorbeeld voor
beide programma's gebruikt kunnen worden.
</p>

<pre caption="ifconfig en iproute2 voorbeelden">
config_eth0=( "192.168.0.2/24" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0" )

<comment># Instellen van broadcast</comment>
config_eth0=( "192.168.0.2/24 brd 192.168.0.255" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" )
</pre>

</body>
</section>
<section id="dhcp">
<title>DHCP</title>
<body>

<p>
DHCP is een manier om netwerk informatie te verkrijgen (IP adres, DNS servers,
een gateway, etc) van een DHCP server. Wanneer er dus een DHCP server op uw
netwerk aanwezig is, kunt u elke client instellen om DHCP te gebruiken en op
die manier automatisch het netwerk in te stellen. U moet dan natuurlijk wel
nog zaken als wireless en PPP zelf instellen voor u gebruik kunt maken van
DHCP via deze protocollen.
</p>

<p>
DHCP kan geleverd worden door <c>dhclient</c>, <c>dhcpcd</c>, <c>pump</c> of
<c>udhcpc</c>. Ieder van deze pakketten heeft zo zijn voor- en nadelen, die
hieronder op een rijtje worden gezet.
</p>

<table>
<tr>
  <th>DHCP Module</th>
  <th>Pakket</th>
  <th>Voordelen</th>
  <th>Nadelen</th>
</tr>
<tr>
  <ti><c>dhclient</c></ti>
  <ti><c>net-misc/dhcp</c></ti>
  <ti>
    Ontwikkeld bij ISC, dezelfde mensen die de BIND DNS software maken. Heel
    veel instellingen mogelijk
  </ti>
  <ti>
    Instellingen zijn betrekkelijk complex, de software heeft misschien te
    veel functies. Kan geen gebruik maken van NTP via DHCP, stuurt de
    hostnaam niet automatisch door
  </ti>
</tr>
<tr>
  <ti><c>dhcpcd</c></ti>
  <ti><c>net-misc/dhcpcd</c></ti>
  <ti>
    Sinds lang de standaard in Gentoo. Geen andere toepassingen nodig
  </ti>
  <ti>
    Wordt niet meer bijgehouden door zijn ontwikkelaars, kan traag zijn. Werkt
    niet als daemon wanneer de verbinding oneindig is
  </ti>
</tr>
<tr>
  <ti><c>pump</c></ti>
  <ti><c>net-misc/pump</c></ti>
  <ti>
    Weinig resources nodig, geen andere toepassingen nodig
  </ti>
  <ti>
    Wordt niet meer bijgehouden door zijn ontwikkelaars, onbetrouwbaar, met
    name over modems. Kan niet met NIS servers overweg via DHCP
  </ti>
</tr>
<tr>
  <ti><c>udhcpc</c></ti>
  <ti><c>net-misc/udhcp</c></ti>
  <ti>
    Weinig resources nodig - kleinste DHCP cliënt, ontwikkeld voor embedded
    systems
  </ti>
  <ti>
    Unbekend - geen enkele distributie gebruikt deze client standaard. Moet
    elke 3 seconden de verbinding checken (geen andere instelling mogelijk)
  </ti>
</tr>
</table>
     
<p>
Wanneer u meer dan één DHCP cliënt hebt geïnstalleerd moet u aangeven welke u
wilt gebruiken - indien u dat niet doet wordt <c>dhcpcd</c> gebruikt, indien
aanwezig.
</p>

<p>
Om opties aan een DHCP module mee te geven, gebruiken we 
<c>module_eth0="..."</c>
<e>(Verander module in de DHCP module die u gebruikt - bijv. 
<c>dhcpcd_eth0</c></e>
</p>

<p>
We hebben geprobeerd DHCP zo eenvoudig mogelijk te maken - daarom worden de
volgende commando's ondersteund via de variabele <c>dhcp_eth0</c>. Standaard
hoeven deze niet ingesteld:
</p>

<ul>
  <li><c>release</c> - IP adressen vernieuwen</li>
  <li><c>nodns</c> - overschrijf <path>/etc/resolv.conf</path> niet</li>
  <li><c>nontp</c> - overschrijf <path>/etc/ntp.conf</path> niet</li>
  <li><c>nonis</c> - overschrijf <path>/etc/yp.conf</path> niet</li>
</ul>

<pre caption="Voorbeeld DHCP instellingen in /etc/conf.d/net">
<comment># Alleen nodig wanneer u meer dan één DHCP module hebt</comment>
modules=( "dhcpcd" ) 

config_eth0=( "dhcp" )
dhcpcd_eth0="-t 10" <comment># Na 10 seconden stoppen met proberen</comment>
dhcp_eth0="release nodns nontp nonis" <comment># Alleen een IP adres vragen</comment>
</pre>

<note>
<c>dhcpcd</c>, <c>udhcpc</c> en <c>pump</c> sturen automatisch de huidige
hostnaam naar de DHCP server. Dit hoeft u dus niet meer in te stellen.
</note>

</body>
</section>
<section>
<title>ADSL Modem</title>
<body>

<p>
Allereerst moeten we de ADSL software installeren.
</p>

<pre caption="Installeer het rp-pppoe pakket">
# <i>emerge net-dialup/rp-pppoe</i>
</pre>

<warn>
<c>baselayout-1.11.x</c> ondersteunt alleen PPPoE. In de toekomst hopen we
dat ook PPPoA wordt ondersteund.
</warn>

<p>
Nu moeten we aangeven dat <c>eth0</c> een ADSL interface is en onze
gebruikersnaam invullen.
</p>

<pre caption="Instellen van eth0 voor ADSL">
config_eth0=( "adsl" )
adsl_user_eth0="gebruikersnaam"
</pre>

<p>
Tot slot moet u uw gebruikersnaam en wachtwoord in
<path>/etc/ppp/pap-secrets</path> zetten.
</p>

<pre caption="Voorbeeld /etc/ppp/pap-secrets">
<comment># De asterisk (*) is belangrijk</comment>
"gebruikersnaam"  *  "wachtwoord"
</pre>

</body>
</section>
<section id="apipa">
<title>APIPA (Automatic Private IP Addressing)</title>
<body>

<p>
APIPA probeert een vrij adres te vinden binnen het bereik van 169.254.0.0 tot
169.254.255.255, door willekeurig een adres aan te spreken. Als er geen
antwoord komt, wordt het adres gebruikt voor de interface.
</p>

<p>
Dit is alleen handig voor LAN's zonder DHCP server, wanneer u niet direct met
internet verbonden bent en de andere computers in het netwerk ook APIPA
gebruiken.
</p>

<p>
Om APIPA te kunnen gebruiken, typt u emerge <c>net-misc/iputils</c> of
<c>net-analyzer/arping</c>.
</p>

<pre caption="APIPA instellen in /etc/conf.d/net">
<comment># Probeer eerst DHCP - als dat niet werkt, probeer dan APIPA</comment>
config_eth0=( "dhcp" )
fallback_eth0=( "apipa" )

<comment># Alleen APIPA gebruiken</comment>
config_eth0=( "apipa" )
</pre>

</body>
</section>
<section>
<title>Bonding (samenvoegen van netwerkverbindingen)</title>
<body>

<p>
Om gebruik te maken van link bonding/trunking, typt u emerge 
<c>net-misc/ifenslave</c>.
</p>

<p>
Bonding wordt gebruikt om meer bandbreedte te creëren. Als u twee
netwerkkaarten in hetzelfde netwerk hebt, kunt u die samenvoegen zodat uw
toepassingen ze als één kaart zien, maar wel beide kaarten gebruiken.
</p>

<pre caption="bonding instellen in /etc/conf.d/net">
<comment># Interfaces samenvoegen</comment>
slaves_bond0="eth0 eth1 eth2"

<comment># Indien u geen IP adres wilt toekennen aan de samengevoegde interface</comment>
config_bond0=( "null" )

<comment># Maak afhankelijk van eth0, eth1 en eth2, omdat er extra instellingen nodig kunnen zijn</comment>
depend_bond0() {
  need net.eth0 net.eth1 net.eth2
}
</pre>

</body>
</section>
<section>
<title>Netwerkbrug instellen (802.1d ondersteuning)</title>
<body>

<p>
Voor het gebruiken van een netwerkbrug typt u emerge
<c>net-misc/bridge-utils</c>.
</p>

<p>
Een netwerkbrug voegt netwerken samen. U kunt bijvoorbeeld een server instellen
die via een ADSL modem verbinding heeft met internet en via een wireless kaart
de andere computers in uw netwerk in staat stelt via het ADSL modem verbinding
te maken met het internet. Met een netwerkbrug kunt u de twee netwerkkaarten
verbinden.
</p>

<pre caption="Netwerkbrug instellingen in /etc/conf.d/net">
<comment># Instellen van de netwerkbrug - typ "man btctl" voor details</comment>
brctl_br0=( "setfd 0" "sethello 0" "stp off" )

<comment># Voeg netwerkkaarten toe aan br0</comment>
bridge_br0="eth0 eth1"

<comment># U moet de netwerkkaarten instellen op null, zodat ze geen DHCP gebruiken</comment>
config_eth0=( "null" )
config_eth1=( "null" )

<comment># Tot slot geeft u de netwerkbrug een IP adres - DHCP kan hier ook</comment>
config_br0=( "192.168.0.1/24" )

<comment># Maak de netwerkbrug afhankelijk van eth0 en eth1</comment>
depend_br0() {
  need net.eth0 net.eth1
}
</pre>

<impo>
Voor meer informatie over netwerkbruggen kunt u kijken in de handleiding 
<uri link="?part=4&amp;chap=2#variable_name">het benoemen van variabelen</uri>.
</impo>

</body>
</section>
<section>
<title>MAC Adres</title>
<body>

<p>
Wanneer u <c>sys-apps/baselayout-1.11.14</c> of nieuwer gebruikt, hoeft u geen
extra software te installeren om uw MAC adres te veranderen. Wanneer u echter
een willekeurig MAC adres wilt of een oudere versie van de baselayout gebruikt,
dan kunt u <c>net-analyzer/macchanger</c> installeren om gebruik te maken
van deze mogelijkheid.
</p>

<pre caption="MAC Adres veranderen">
<comment># Het MAC adres instellen</comment>
mac_eth0="00:11:22:33:44:55"

<comment># De laatste 3 bytes willekeurig instellen</comment>
mac_eth0="random-ending"

<comment># Willekeurige adressen van hetzelfde type gebruiken (bijv. glasvezel,
# koper, wireless) , voor alle typen kaarten</comment>
mac_eth0="random-samekind"

<comment># Willekeurige adressen van willekeurige typen gebruiken</comment>
mac_eth0="random-anykind"

<comment># Volledig willekeurig - PAS OP: sommige gegenereerde MAC adressen
# kunnen niet werken</comment>
mac_eth0="random-full"
</pre>

</body>
</section>
<section>
<title>Tunnelen</title>
<body>

<p>
Om de functie tunnelen te gebruiken hoeft u niets te doen, dit is een standaard
functie.
</p>

<pre caption="Tunnelen instellen in /etc/conf.d/net">
<comment># GRE tunnels</comment>
iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"

<comment># IPIP tunnels</comment>
iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"

<comment># Instellen van de interface</comment>
config_vpn0=( "192.168.0.2 peer 192.168.1.1" ) 
</pre>

</body>
</section>
<section>
<title>VLAN (802.1q ondersteuning)</title>
<body>

<p>
Voor VLAN ondersteuning typt u emerge <c>net-misc/vconfig</c>.
</p>

<p>
Een virtueel LAN is een groep netwerk apparaten die zich gedragen alsof ze
samen in een netwerk zitten - ook al hoeft dit niet het geval te zijn. VLAN
leden kunnen alleen leden van hetzelfde VLAN zien, ook al gebruiken ze dezelfde
netwerk verbinding.
</p>

<pre caption="VLAN instellen in /etc/conf.d/net">
<comment># Geef de interface een VLAN nummer</comment>
<comment># Zorg ervoor dat u het VLAN niet instelt met voorloop nullen</comment>
vlans_eth0="1 2"

<comment># U kunt ook het VLAN instellen</comment>
<comment># Kijk in de vconfig handleiding voor meer details</comment>
vconfig_eth0=( "set_name_type VLAN_PLUS_VID_NO_PAD" )
vconfig_vlan1=( "set_flag 1" "set_egress_map 2 6" )

<comment># Stel de netwerkkaart in als normaal</comment>
config_vlan1=( "172.16.3.1 netmask 255.255.254.0" )
config_vlan2=( "172.16.2.1 netmask 255.255.254.0" )
</pre>

<impo>
Voor het gebruik van VLAN kunt u ook kijken in de handleiding 
<uri link="?part=4&amp;chap=2#variable_name">het benoemen van variabelen</uri>
</impo>

</body>
</section>

</sections>