|
1.
Geavanceerde configuratie
De variabele config_eth0 is het hart van een netwerkkaart configuratie.
Het is een geavanceerde instructielijst om de netwerkkaart (eth0 in dit
geval) in te stellen. Elk commando wordt na het vorige uitgevoerd en wanneer
tenminste één commando werkt zal de netwerkkaart zijn werk kunnen uitvoeren.
Hieronder volgt een lijst met ingebouwde instructies.
| Commando |
Beschrijving |
| null |
Doe niets |
| noop |
Wanneer de netwerkkaart het doet en er een IP adres is, breek dan de
verdere configuratie af
|
| Een IPv4 of IPv6 adres |
Voeg het adres toe aan de netwerkkaart |
|
dhcp, adsl of apipa (of een ander commando van een
ander programma)
|
Start de module die het commando opgeeft. Zo zal dhcp een module
starten die DHCP beschikbaar maakt, bijvoorbeeld dhcpcd,
udhcpc, dhclient of pump.
|
Voor het geval een commando niet werkt, kunt u een tweede keus opgeven. Deze
tweede keus moet de structuur van de configuratie bestanden uiteraard ook
volgen.
U kunt verschillende commando's achter elkaar gebruiken. Hieronder volgen
enkele voorbeelden.
Codevoorbeeld 1.1: Voorbeeld instellingen |
config_eth0=(
"192.168.0.2/24"
"192.168.0.3/24"
"192.168.0.4/24"
)
config_eth0=(
"192.168.0.2/24"
"4321:0:1:2:3:4:567:89ab"
"4321:0:1:2:3:4:567:89ac"
)
config_eth0=(
"noop"
"dhcp"
)
fallback_eth0=(
"null"
"apipa"
)
|
Nota:
Wanneer u de module ifconfig gebruikt en meer dan één adres toevoegt,
worden er aliassen gecreëerd voor de extra adressen. Dus met de bovenstaande
voorbeelden krijgt u de netwerk interfaces eth0, eth0:1 en
eth0:2. U kunt verder niets met deze interfaces; de kernel en alle
toepassing zullen ze als eth0 beschouwen.
|
Belangrijk:
Het instellen van de tweede keus is heel belangrijk. Indien we de optie
null niet instellen, zal apipa alleen starten wanneer noop
niet werkt namelijk.
|
Nota:
(APIPA) en (DHCP) worden later besproken.
|
1.
Netwerk afhankelijkheden
De init scripts in de map /ect/init.d kunnen op een specifieke
netwerkkaart zijn toegespitst of in het algemeen op de netwerkkaarten.
net kunt u definiëren in /etc/conf.d/rc. Hier kunnen
verschillende instellingen worden gekozen via RC_NET_STRICT_CHECKING.
| Waarde |
Beschrijving |
| none |
De service net wordt geacht altijd online te zijn |
| no |
Dit betekent dat er tenminste één service van het type net.*
moet werken naast net.lo. Dit is handig voor laptop gebruikers
die een WIFI en een vaste netwerkverbinding hebben en slechts één van
beiden tegelijk online willen hebben.
|
| lo |
Dit een zelfde optie als de optie no, alleen wordt nu
net.lo ook meegeteld. Dit is handig voor mensen die niet
altijd een netwerkkaart willen opstarten.
|
| yes |
In dit geval moeten ALLE netwerkkaarten werken om de service
net als online te laten zien.
|
Maar hoe werkt het nu wanneer u net.br0 heeft, die afhankelijk
is van net.eth0 en net.eth1? net.eth1
kan in dit geval bijvoorbeeld een wireless of PPP verbinding zijn, die moet
worden ingesteld voordat deze wordt toegevoegd aan de netwerkbrug. Dit kan niet
gebeuren in /etc/init.d/net.br0, aangezien dit een symlink naar
net.lo is.
Hiervoor zult u een eigen depend() functie in
/etc/conf.d/net moeten aanmaken.
Codevoorbeeld 1.1: net.br0 afhankelijkheden in /etc/conf.d/net |
depend_br0() {
need net.eth0 net.eth1
}
|
Voor een uitgebreidere uitleg over afhankelijkheden, kunt u het hoofdstuk
(Initialisatie Scripts) lezen
uit het Gentoo handboek.
1.
Namen en waarden van variabelen
Namen van variabelen veranderen. Meestal volgen ze een gelijke structuur als
variable_${interface|mac|essid|apmac}. Zo bevat de variabele
dhcpcd_eth0 de waarde voor de dhcpcd opties voor eth0 en bevat
dhcpcd_essid de waarde voor de dhcpcd opties met betrekking tot de
interface die verbinding maakt met de ESSID "essid".
Er zijn echter geen vaste regels voor het benoemen van netwerk interfaces. Ze
dus ethx heten, maar veel draadloze interfaces heten bijvoorbeeld wlanx, rax of
toch gewoon ethx. Sommige interfaces, zoals netwerkbruggen, kunnen een
willekeurige naam hebben. En wireless Acces Points kunnen zelfs namen hebben
met niet alpha-numerieke karakters erin - dit is belangrijk om te weten, omdat
u parameters voor uw netwerk kunt instellen per ESSID.
Er is echter één maar: Gentoo gebruikt bash variabelen voor het netwerk - en
bash kan alleen Engelse alpha-numerieke karakters gebruiken. Daarom worden alle
niet alpha-numerieke karakters omgezet in een _.
Een ander nadeel van bash, is de inhoud van de variabelen - sommige karakters
moeten vooraf gegaan worden door een \, het zogenaamde escapen. Dit
geldt voor de volgende karakters: ", ' en \.
In het volgende voorbeeld zullen we verschillende karakters gebruiken. We
noemen daarom de ESSID My "\ NET:
Codevoorbeeld 1.1: Voorbeeld naam voor variabele |
dns_domain_My____NET="My \"\\ NET"
|
|