Als je je afvraagt wat in hemelsnaam deze BOOTP en DHCP zooi is, is meer informatie beschikbaar op de DHCP WWW site. NFS wordt in de NFS-HOWTO apart gedocumenteerd en er is ook een DHCP mini-HOWTO. Ik heb getracht voldoende details aan te leveren zodat je ermee kunt beginnen, maar heb de onderwerpen niet al te diepgaand behandeld - laat het me weten als je denkt dat dit een beetje te veel van het goede is.
In de BOOTP/DHCP + NFS configuratie die we gaan bespreken, zou het KickStart configuratiebestand via NFS te mounten moeten zijn door de machine van waaraf wordt geïnstalleerd /kickstart/IPADDR-kickstart op de BOOTP/DHCP server, waar IPADDR het IP-adres is van de nieuwe machine, b.v. /kickstart/198.168.254.254-kickstart voor de machine 198.168.254.254.
Je zou deze lokatie moeten kunnen overschrijven door de
bf
parameter (boot file) in je BOOTP/DHCP response te retourneren.
Wellicht dat het zelfs mogelijk is deze via NFS geheel vanaf een andere
machine te mounten.
Maak het bestand /etc/exports aan met een volgende vergelijkbare inhoud om een aantal directory's voor NFS vanaf een bestaande Linux-box te exporteren:
/kickstart *.swedish-chef.org(ro,no_root_squash)
/mnt/cdrom *.swedish-chef.org(ro,no_root_squash)
Als je het IP-adres dat je met DNS gaat gebruiken niet hebt geregistreerd dan kan het zijn dat wordt aangegeven dat de NFS-server en/of de RPC portmapper het aflegt. Je kunt dit waarschijnlijk voorkomen door de IP-adres/netmask paren in de configuratiebestanden te plaatsen, b.v.
/kickstart 198.168.254.0/255.255.255.0(ro,no_root_squash)
en in /etc/hosts.allow:
ALL: 194.82.103.0/255.255.255.0: ALLOW
Dit komt doordat de meeste Linux-distributies gebruik maken van TCP-wrappers voor een aantal of alle aan NFS gerelateerde daemons voor het toegangsbeheer. De syntax van /etc/exports kan op andere Unix-varianten anders zijn - de NFS-servers gebundeld met Linux-distributies bieden gewoonlijke een veel breder bereik aan opties dan die met andere Unix-versies worden geleverd.
Als je in je KickStart configuratiebestand een rootwachtwoord opneemt, of via NFS, directory's met gevoelige informatie exporteert, zal je ervoor moeten zorgen dat je deze informatie aan zo weinig mogelijk mensen blootstelt. Dit kun je bewerkstelligen door de NFS exportpermissies zo verfijnd mogelijk in te stellen, b.v. door een bepaalde host of een bepaald te exporteren subnet te specificeren in plaats van een geheel domein. Het is allemaal mooi en simpel als je een speciaal IP-adres voor KickStart installaties vrijhoudt, behalve als je het later moet wijzigen - of de machine opnieuw moet configureren om het IP-adres via BOOTP/DHCP te krijgen.
De meeste NFS-servers vereisen dat je mountd
en nfsd
(onder een aantal Unix-versies worden deze opdrachten voorafgegaan door
rpc.
) te kennen geeft dat het bestand /etc/exports is gewijzigd -
gewoonlijk doe je dit door een SIGHUP
te verzenden. Er is
vaak een programma of script genaamd exportfs
die dit voor
je doet, b.v.
# exportfs -a
Wellicht dat de directory's niet automatisch worden geëxporteerd wanneer NFS na het booten van de machine niet werkend en draaiend was. Probeer te rebooten, of start als root de volgende programma's op:
# portmap
# rpc.nfsd
# rpc.mountd
Zoals opgemerkt, wordt op een aantal systemen het voorvoegsel rpc.
niet gebruikt. Onder de meeste moderne Unix-distributies zijn deze programma's
te vinden in de directory's /usr/sbin of /usr/libexec.
Wellicht dat deze zich nog niet in je pad bevinden, b.v. als je su
gebruikte om root te worden. Het programma portmap
wordt soms ook rpcbind
genoemd, b.v. onder Solaris, is voor een
aantal versies van nfsd
vereist dat met een opdrachtregelopdracht
het aantal uit te voeren kopieën van de server wordt opgegeven, en
het kan zijn dat je bemerkt dat je ook een andere daemon met de naam
biod
moet draaien. Het bovenstaande zou voldoende moeten zijn
op (bijna?) alle Linux systemen.
Als je gebruikt maakt van de CMU BOOTP server en dynamische adresseringsextensies waarnaar eerder werd gerefereerd, dan zou een voorbeeld /etc/bootptab record (/etc/bootptab is de normale lokatie van het BOOTP/DHCP configuratiebestand) er ongeveer zo uit zien:
.dynamic-1:ip=198.168.254.128:T254=0x30:T250="ds=198.168.254.2:
dn=swedish-chef.org:sm=255.255.255.0:gw=198.168.254.1:
dl=0xFFFFFFFF":
Hiermee wordt aangegeven IP-adressen dynamisch toe te kennen bij het aantreffen van nieuwe machines, te beginnen bij 198.168.254.128 en verdergaand voor de volgende 48 (de hexidecimale waarde is 30) adressen. Iedere client zal de waarde T250 teruggeven. In dit geval wordt hiermee ingesteld:
ds
op 198.168.254.2dn
op swedish-chef.orgsm
op 255.255.255.0gw
op 198.168.254.1dl
(hoelang het adres geldig is)
op "forever"Er schijnen een aantal andere verseis van deze server in omloop te zijn die de dynamische adressering niet ondersteunen. Hiervoor zou je een opsomming moeten geven van de hardware (typisch de Ethernet MAC) adressen van iedere te-installeren machine in /etc/bootptab, en de regels zouden er dan ongeveer zo uit zien:
bork.swedish-chef.org:ip=198.168.254.128:ha=0000E8188E56:
ds=198.168.254.2:dn=swedish-chef.org:sm=255.255.255.0:
gw=198.168.254.1:dl=0xFFFFFFFF":
De parameter ha
correspondeert met het hardware-adres
van de computer waarop wordt geïnstalleerd.