Endre IP-oppsett
This document is obsolete. In Squeeze there is a script /usr/share/debian-edu-config/tools/subnet-change to do this job. See also http://wiki.debian.org/DebianEdu/HowTo/ChangeIpSubnet .
Bakgrunn
Skolelinux-arkitekturen kommer med et fastlagt sett med IP-adresser. Se [../../product/architecture arkitektur-beskrivelsen]. Kort sagt er det valgt å bruke IP-adresser i det ikke rutbare området av IPv4, 10.0.2.0/23. DNS er en sentral tjeneste og denne bruker domenet intern. Mange av tjenestene forutsetter at DNS fungerer slik at det er svært viktig å tilpasse sonefilene til endringer som gjøres. Så langt som mulig har utviklerne forsøkt å unngå å bruke domenenavnet når de skriver noe som bruker DNS.
For oversiktens skyld kan jeg nevne de viktigste IP-adressene som er satt av:
IP(er) |
Maskinnavn |
Kommentar |
10.0.2.1 |
gateway |
Default gateway for samtlige maskiner |
10.0.2.2 |
tjener |
Hoved-tjener |
10.0.2.10 - 10.0.2.29 |
ltspserver00 - ltspserver19 |
Tynnklient-tjenere (terminaltjenester) |
10.0.2.30 - 10.0.2.49 |
printer00 - printer19 |
Skrivere |
10.0.2.50 - 10.0.2.99 |
static00 - static49 |
Ment for maskiner og nettverksutstyr (f.eks. switcher med management) |
10.0.2.100 - 10.0.3.243 |
dhcp000 - dhcp399 |
Arbeidsstasjoner og andre enheter som ikke trenger spesielt navn |
10.0.3.244 - 10.0.3.254 |
Ikke gitt navn |
Ikke i bruk i standard installasjon |
|
|
|
192.168.0.1 - 192.168.0.253 |
ltsp001 - ltsp253 |
Tynnklienter |
192.168.0.254 |
ltspserver |
Tynnklienttjenere skal ha to nettverkskort, der tynnklientene er koblet til det ene i et eget nettverk. Dette er gjort for å skille nettverks- trafikken i tynnklientnettene fra stamnettet. |
Det kan virke unødvendig stivbeint å låse IP-oppsettet på denne måten. Imidlertid er det gjort for å kunne gjøre installasjonen enkel og forutsigbar. For mange er å oppgi IP-adresser og annen nettverksinformasjon ikke kjent materiale.
Endringer i oppsettet
- Som oftest skyldes et ønske om å endre det installerte IP-oppsettet at det allerede finnes en IP-struktur man skal tilpasse seg. Det antas at det er kyndig personell som gjør disse endringene, og kommentarer og forklaringer er holdt til et minimum.
Forutsetninger
- Dokumentasjonen er gjort med en installasjon fra 14. april 2004, noen dager etter at PR47 var sluppet, men grunnlaget var en dagsfersk CD, ikke PR47.
- Det er installert en separat tjener og ltsp-tjener.
Installasjonen skal inn i et nettverk med 10.10.20.0/23 som utgangspunkt for IP-adressene i stamnettet.
Tynnklientnettene skal ha unike adresser med 10.100.0.0/24, 10.100.1.0/24 osv oppover.
Domenet skal endres til skole.kommune.no
Gateway
IP-adressen endres fra 10.0.2.1 til 10.0.10.20.1. Denne maskinen er ikke del av Skolelinux-installasjonen, og det vil være en del av den aktuelle router eller brannmur-installasjonen å endre selve IP-adressen på enheten.
De aktuelle endringene for Skolelinux-maskinene tas under hver maskin.
Hoved-tjener
Default gateway endres fra 10.0.2.1 til 10.0.10.20.1. Dette gjøres i /etc/network/interfaces. Se under.
IP-adressen for nettverkskortet eth0 mot stamnettet endres fra 10.0.2.2 til 10.10.20.2. Det skal også gjøres endringer som følge av at hele IP-området er forandret. Fila som styrer dette er /etc/network/interfaces. Før endringer ser den slik ut for eth0:
auto eth0 iface eth0 inet static address 10.0.2.2 netmask 255.255.254.0 broadcast 10.0.3.255 gateway 10.0.2.1- Etter endringer ser den samme seksjonen i fila slik ut:
auto eth0 iface eth0 inet static address 10.10.20.2 netmask 255.255.254.0 broadcast 10.0.21.255 gateway 10.10.20.1- Legg merke til at default gateway også er endret.
Man kan også gi ut denne informasjonen (og en hel rekke andre parametre) med DHCP, men det ligger utenfor denne dokumentasjonens omfang å ta opp hvordan dette settes opp på en uavhengig DHCP-tjener. Dersom man øsnker å bruke DHCP for hovedtjenerens eth0 kommenteres seksjonen over ut og erstattes med en enkelt linje:
#iface eth0 inet static # address 10.10.20.2 # netmask 255.255.254.0 # broadcast 10.0.21.255 # gateway 10.10.20.1 # The commented lines below is to be used if a DHCP server is in use iface eth0 inet dhcp
I fila /etc/hosts ligger alltid noe informasjon lagret, og på mange måter er dette en slags fattigmanns-DNS der alt er enkelt satt opp. Så også i Skolelinux sitt tilfelle, og vi må endre denne fila slik at linja som omtaler hoved-tjeneren er riktig.
10.10.20.2 tjener.skole.kommune.no tjener
- Her er også domenet endret, det er første gang vi kommer over det i denne sammenhengen. Som vi ser er det informasjon om IP-adresse, samt både fullt kvalifisert domenenavn og et rent maskinnavn involvert.
Hoved-tjeneren vil også ha en endring i oppsettet av resolveren, eller spesifikasjonen av hvordan de ulike tjenestene vil gjøre oppslag mellom navn mennesker ønsker å benytte (tjener.skole.kommune.no) og de datamaskiner ønsker å benytte (10.10.20.2). DNS er tjenesten som benyttes til dette, men maskinen må vite hvor den skal begynne å lete, og informasjonen om det ligger (bl.a.) i fila /etc/resolv.conf. Den må justeres litt:
search skole.kommune.no
Selve spesifikasjonen av hvilken DNS-tjener som skal benyttes trenger ikke endres (denne er 127.0.0.1, men det kan med fordel legges inn flere IP-adresser dersom nettverket er satt opp med flere DNS-tjenere.
Maskinens eget maskinnavn er viktig, og ligger lagret i /etc/hostname. Denne må endres slik at den stemmer med vår nye virkelighet:
tjener.skole.kommune.no
Bruk av systemet TCP-wrappers er anbefalt for å kunne styre tilgang til og logging av bruk av endel tjenester som er bygget for å kunne benytte dette. Skolelinux benytter dette kun for syslog (alle maskiner sender sine logger til hovedtjeneren). Endringene er enkle for de oppsettfilene det er nødvendig å endre i. /etc/hosts.allow:
syslog: 10.10.20 syslog: 10.10.21
/etc/hosts.allow har en villing-fil heter /etc/hosts.deny, men denne er i standard-installasjonen tom og trenger derfor ikke endres.
NFS er en viktig del av Skolelinux og benyttes blant annet til å dele ut hjemmeområdene til alle maskiner slik at brukerne har tilgang på de samme dokumentene uansett hvilken maskin de benytter. Oppsettfila for NFS heter /etc/exports. Denne er i nyere versjoner av Skolelinux helt basert på tilgangskontroll via nettgrupper og trenger ikke endres. I eldre versjoner må man sørge for at IP-adressene stemmer overens med nettverkets struktur.
HTTP-proxyen Squid benyttes for å effektivisere bruken av båndbredde tilgjengelig og for å kunne styre tilgangen mot internett. Tilgangen er eksplisitt begresnet til Skolelinux-nettverket. Både stamnettet og tynnklient-nettene er eksplisitt nevnt, men i denne sammenhengen endres bare spesifikasjonen av stamnettet:
acl schoolnet src 10.10.20.0/255.255.254.0
- Linjen finnes ganske langt inn i filen, i nærheten av linje 1410.
For å tildele nettverksparametre til maskinene på stamnettet benyttes DHCP. Oppsettfila /etc/dhcp3/dhcpd.conf har mange referanser til IP-oppsettet, i tillegg er den felles for både hoved- og tynnklient- tjenerne. Derfor er den ganske kompleks. Siden vi i dette avsnittet ser på endringer på hovedtjeneren ignorerer vi referanser til tynnklient-nettet. De behandles separat. (Tips: om du bruker vim og vil se linjenumre er kommandoen :set number.)
option broadcast-address 10.10.21.255; ... option domain-name "skole.kommune.no"; ... subnet 10.10.20.0 netmask 255.255.254.0 { range 10.10.20.100 10.10.21.242; ...DNS er helt sentral i nettverket, uten den virker ingenting. Oppsettet er lagret i /etc/bind/ og /etc/bind/debian-edu/. DNS-løsningen i Skolelinux er basert på at kun lokale maskiner er kjent, mens tjenesten går ut til den globale DNS-tjenesten for oppslag av maskiner utenom Skolelinux. Dersom organisasjonen har en felles DNS eller benytter en DNS oppgitt av ISP'en som leverer Internett-forbindelsen kan disse med fordel legges inn for å gjøre oppslag raskere. Dette er ikke ment å være et kurs i DNS, så det blir ikke allverdens med kommentarer til hva som gjøres. Det er svært viktig at DNS er satt opp korrekt. Derfor lister jeg opp alle oppsettfilene i sin helhet her slik at det ikke blir noen misforståelser. Start med hoved oppsettfila i /etc/bind/named.conf. Det meste er standard administrativia i den første delen av fila, og det er ikke nødvendig å endre noe før man kommer til seksjonen // Skolelinux zones. Vi har valgt en litt annerledes løsning i dette eksempelet enn det som er det vanlige i Skolelinux, der tynnklientnettene er en helt annen klasse IP'er enn stamnettet. Derfor bør vi endre litt på oppsettet. Den nye fila ser slik ut:
// This is the primary configuration file for the BIND DNS server named. // // Please read /usr/share/doc/bind/README.Debian for information on the // structure of BIND configuration files in Debian for BIND versions 8.2.1 // and later, *BEFORE* you customize this configuration file. // acl skolelinux { // Adding the entire 10.0.0.0/8 even if only a small fraction of // it is used 10.0.0.0/8; // Ditto for 192.168.0.0/16 192.168.0.0/16; // localhost 127.0.0.0/8; }; options { directory "/var/cache/bind"; // If there is a firewall between you and nameservers you want // to talk to, you might need to uncomment the query-source // directive below. Previous versions of BIND always asked // questions using port 53, but BIND 8.1 and later use an unprivileged // port by default. // query-source address * port 53; // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0's placeholder. // forwarders { // 0.0.0.0; // }; // Limiting access to skolelinux hosts allow-recursion { skolelinux; }; allow-transfer { skolelinux; }; allow-query { skolelinux; }; version "BIND (Skolelinux)"; auth-nxdomain no; # conform to RFC1035 provide-ixfr yes; }; include "/etc/bind/rndc.key"; // control where to allow rndc from controls { inet 127.0.0.1 allow { 127.0.0.1; } keys { "rndc-key"; }; }; // reduce log verbosity on issues outside our control logging { category lame-servers { null; }; }; // prime the server with knowledge of the root servers zone "." { type hint; file "/etc/bind/db.root"; }; // be authoritative for the localhost forward and reverse zones, and for // broadcast zones as per RFC 1912 zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; }; // Skolelinux zones // Modified for changed IP structure // For the sake of good housekeeping we // comment out rather than change this //zone "0.10.in-addr.arpa" { // type master; // file "/etc/bind/debian-edu/db.10"; //}; // And this //zone "0.168.192.in-addr.arpa" { // type master; // file "/etc/bind/debian-edu/db.192.168"; //}; // And this too //zone "intern" { // type master; // file "/etc/bind/debian-edu/db.intern"; //}; // add entries for other zones below here // So we have different zones and do as the file says // adding the new zones below here :-) // The backbone is on 10.10.20.0/23 zone "10.10.in-addr.arpa" { type master; file "/etc/bind/debian-edu/db.10.10"; }; // The thin client segment zone "100.10.in-addr.arpa" { type master; file "/etc/bind/debian-edu/db.10.100"; }; // The forward zone zone "skole.kommune.no" { type master; file "/etc/bind/debian-edu/db.skole.kommune.no"; };Deretter går vi ned i /etc/bind/debian-edu/ og kopierer de gamle sone-filene til de nye som er listet i /etc/bind/named.conf.
# cd /etc/bind/debian-edu # cp db.10 db.10.10 # cp db.192.168 db.10.100 # cp db.intern db.skole.kommune.no
Da beholder vi strukturen i de ferdiglagde filene som standard-oppsettet bruker og har en god mal å gå ut i fra. /etc/bind/debian-edu/db.skole.kommune.no ser slik ut:
;; -*- zone -*- $TTL 1H @ IN SOA domain.skole.kommune.no. hostmaster.skole.kommune.no. ( 2004043001 ; serial 8H ; refresh for slaves 3H ; retry 4W ; expire time at slaves 1H ; negative TTL ) IN NS domain.skole.kommune.no. IN MX 10 postoffice.skole.kommune.no. ;;;;;;;;;;;;;;;;;;;;;; ; Server with aliases ;;;;;;;;;;;;;;;;;;;;;; tjener IN A 10.10.20.2 syslog IN CNAME tjener bootps IN CNAME tjener ntp IN CNAME tjener homes IN CNAME tjener www IN CNAME tjener db IN CNAME tjener backup IN CNAME tjener webcache IN CNAME tjener ipp IN CNAME tjener ssh IN CNAME tjener cfengine IN CNAME tjener ltsp IN CNAME tjener ldap IN CNAME tjener ; Nameserver and postiffice should be A records postoffice IN A 10.10.20.2 domain IN A 10.10.20.2 ; This will often be default gw/router gateway IN A 10.10.20.1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Other hosts on the 10.0.0.0/8 net ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Thin client servers in the backbone segment $GENERATE 0-19 ltspserver${0,2} A 10.10.20.${10,2} ; Printers in 10.10.20.0/24 $GENERATE 0-19 printer${0,2} A 10.10.20.${30} ; Static addresses in 10.10.20.0/24 $GENERATE 0-49 static${0,2} A 10.10.20.${50} ; dhcp names in 10.10.20.0/24 and 10.10.21.0/24 $GENERATE 0-155 dhcp${0,3} A 10.10.20.${100} $GENERATE 0-243 dhcp${156,3} A 10.10.21.$ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Hosts on the LTSP private networks ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; The LTSP servers ltspserver0 A 10.100.0.254 ltspserver1 A 10.100.1.254 ; The LTSP clients $GENERATE 1-253 ltsp0${0,3} A 10.100.0.$ $GENERATE 1-253 ltsp1${0,3} A 10.100.1.$/etc/bind/debian-edu/db.10.10 ser slik ut:
;; -*- zone -*- $TTL 1H @ IN SOA domain.skole.kommune.no. hostmaster.skole.kommune.no. ( 2004043001 ; serial 8H ; refresh for slaves 3H ; retry 4W ; expire time at slaves 1H ; negative TTL ) IN NS domain.skole.kommune.no. 1.20 IN PTR gateway.skole.kommune.no. 2.20 IN PTR tjener.skole.kommune.no. ; Addresses 10.10.20.10-29 is used to name thin client servers $GENERATE 0-19 ${10}.20 PTR ltspserver${0,2}.skole.kommune.no. ; Reserve 10.10.20.30-39 for printers $GENERATE 0-19 ${30}.20 PTR printer${0,2}.skole.kommune.no. ; Reserve some addresses for staticly assigned addresses $GENERATE 0-49 ${50}.20 PTR static${0,2}.skole.kommune.no. ; Use GENERATE to make dhcp names under 20.10.10.in-addr.arpa $GENERATE 0-155 ${100}.20 PTR dhcp${0,3}.skole.kommune.no. ; Use GENERATE to make dhcp names under 21.10.10.in-addr.arpa $GENERATE 0-243 $.21 PTR dhcp${156,3}.skole.kommune.no.Og for tynnklientnettene brukes /etc/bind/debian-edu/db.10.100:
;; -*- zone -*- $TTL 1H @ IN SOA domain.skole.kommune.no. hostmaster.skole.kommune.no. ( 2004043001 ; serial 8H ; refresh for slaves 3H ; retry 4W ; expire time at slaves 1H ; negative TTL ) IN NS domain.skole.kommune.no. ; Thin clients in first segment 10.100.0.0/24 $GENERATE 1-253 $.0 PTR ltsp0${0,3}.skole.kommune.no. ; The server 254.0 IN PTR ltspserver0.skole.kommune.no. ; Thin clients in second segment 10.100.1.0/24 $GENERATE 1-253 $.1 PTR ltsp1${0,3}.skole.kommune.no. ; The server 254.1 IN PTR ltspserver1.skole.kommune.no.Legg merke til at det her bare er tatt med to segmenter for tynnklienter, dersom det skal være flere segmenter er det bare å legge til nye seksjoner. Det kan også være at det ikke er ønskelig med maskinnavn så like som det jeg har lagt opp til her, med ltspserver00 og ltspserver0. Dette er en enkel endring å gjøre hvis man ikke liker mitt forslag.
Overvåkningssystemet Nagios er satt opp som standard til å sjekke endel tjenester på tjener og at default gateway er oppe. Nagios benytter også endel IP-adresser slik at noen endringer må gjøres i oppsettet. I /etc/nagios/debian-edu/hosts/tjener.cfg endres IP-adressen for tjener:
define host { use server-host host_name tjener alias Main SLX server address 10.10.20.2 parents gateway }I /etc/nagios/debian-edu/hosts/gateway.cfg endres IP-adressen for gateway:
define host { use server-host host_name gateway alias Inside of gateway/firewall address 10.10.20.1 }Skolelinux kommer med en løsning for å utvide de overvåkede maskinene til å omfatte hele nettverket. Man kjører kort fortalt et script som vil generere de nøvendige oppsettfilene og restarte Nagios med det nye oppsettet. Dette skriptet ligger i /usr/sbin/nagios-cfg og må endres noe:
... my $ip = new NetAddr::IP '10.10.20.0/23'; ... my $gateway = (new NetAddr::IP '10.10.20.1/32' )->numeric; my $main_server = (new NetAddr::IP '10.10.20.2/32' )->numeric; my $ltsp_server_first = (new NetAddr::IP '10.10.20.10/32' )->numeric; my $ltsp_server_last = (new NetAddr::IP '10.10.20.29/32' )->numeric; my $printer_first = (new NetAddr::IP '10.10.20.30/32' )->numeric; my $printer_last = (new NetAddr::IP '10.10.20.49/32' )->numeric; my $static_first = (new NetAddr::IP '10.10.20.50/32' )->numeric; my $static_last = (new NetAddr::IP '10.10.20.99/32' )->numeric; my $ws_first = (new NetAddr::IP '10.10.20.100/32')->numeric; my $ws_last = (new NetAddr::IP '10.10.30.243/32')->numeric;SMTP-tjenesten for utsendelse og mottak av epost er i Skolelinux som i Debian ellers basert på EXIM. Dette er ukjent territorium for meg, kommentarer mottas med takk. Oppsettet ser ikke ut til å være basert på IP-adresser, men det er endel referanser til domenet intern og maskinnavnet postoffice.intern. Disse må byttes ut med det nye domenet som i dette eksempelet er skole.kommune.no
Tynnklient-tjener
- Det færre ting som skal endres på en tynnklient-tjener enn på hoved-tjeneren. For de fleste tjenestene brukes hoved-tjeneren, men for de spesifikke tynnklient-tjenestene er det viktig å gjøre de nødvendige endringene.
/etc/ltsp/lts.conf eller dens egentlige hjem /opt/ltsp/i386/etc/lts.conf styrer hvordan tynnklientene oppfører seg og er som standard satt opp til å håndtere tynnklienter i IP-området 192.168.0.0/24 med tynnklient-tjeneren som 192.168.0.254. Under seksjonen [Default] endres to linjer:
SERVER = 10.100.0.254 ... SEARCH_DOMAIN = skole.kommune.no
Det er ikke definert andre parametre som standard. Hvis det er gjort endringer, f.eks. for spesifikke arbeidsstasjoner må navnene endres slik at de stemmer overens med det valgte navngivnings-systemet. Hvis f.eks. [ltsp025] var definert fra før må dette endres til f.eks. [ltsp0025] dersom samme løsning som skissert i denne dokumentasjonen skal benyttes og man er i det første segmentet for tynnklient-IP-adresser.
Det må gjøres endringer i oppsettet for DHCP slik at tynnklientene får riktige nettverksparametre som definert i IP-oppsettet. En tynnklient-tjener vil dele ut nettverksinformasjon kun på det nettverks- kortet som er tilkoblet tynnklientene: eth1. Man kan derfor se bort fra alle linjer i oppsettfila som ikke er omfatttet av seksjonen THINCLIENTS. Altså: alle endringer er relatert til seksjonen THINCLIENTS!
option broadcast-address 10.100.0.255; option routers ltspserver0; ... option domain-name "skole.kommune.no"; option root-path "10.100.0.254:/opt/ltsp/i386"; ... option log-servers ltspserver0; ... subnet 10.100.0.0 netmask 255.255.255.0 { range 10.100.0.200 10.100.0.253 ; } ... group { ... option log-servers ltspserver0; ... host ltsp0010 { ... fixed-address ltsp0010; } osv ltsp0011, ltsp0012- Pass på at dersom det er flere tynnklient-tjenere må adresseområdene justeres tilsvarende. Hvis man f.eks. har et segment 10.100.1.0/24 vil adressene over bli 10.100.1.254, navnene ltspserver1, ltsp1010 osv.
Siden tynnklientene benytter NFS for å montere opp rotfilsystemet sitt må oppsettfila for NFS, /etc/exports justeres.
/opt/ltsp/i3866 10.100.0.0/255.255.255.0(ro,no_root_squash) /var/opt/ltsp/swapfiles 10.100.0.0/255.255.255.0(rw,no_root_squash)
/etc/hosts.allow styrer som nevnt i seksjonen om hoved-tjeneren tilgang og logging for endel tjenester. For tynnklient-tjenerne må vi endre i henhold til valgt nettverksoppsett.
syslog: 10.100.0. bootpd: 0.0.0.0 in.tftpd: 10.100.0. portmap: 10.100.0.
/etc/resolv.conf trengs ikke endres, den tildeles av DHCP.
/etc/network/interfaces må endres slik at nettverkskortet mot tynnklientene får riktig IP-adresse og andre nettverksparametre.
address 10.100.0.254 netmask 255.255.255.0 broadcast 10.100.0.255
/etc/init.d/enable-nat endres slik at nettverksangivelsen for nettverket som skal NAT'es er 10.100.0.0/24, ikke 192.168.0.0./24
Når endringene er gjort
- Etter at alle file er redigert og sjekket vil jeg anbefale at alle involverte maskiner restartes. Det gjøres så omfattende endringer at det ett eller annet sted vil henge igjen en gammel innstlling. I stedet for å feilsøke dette kan man restarte - da fær man også en sjekk på om innstillingene holder gjennom en omstart. Det er viktig at maskiner kan startes og komme opp i den tilstanden man ønsker uten at en operatør må gjøre noe underveis.
Sjekk så at funksjonaliteten er på plass. Forsøk å gjøre noen oppslag i DNS. Start noen tynnklienter og forsøk å gjøre utskrifter.