Changing subnet in Debian Edu / Skolelinux

/!\ A script /usr/share/debian-edu-config/tools/subnet-change is provided to do this change automatically just after installation.

Some times it is necessary to make a Skolelinux installation in a network with a fixed ip-structure. The default installation does a lot of preset choices for the network. So you have to make changes in quite a few files to get the installation to work as you would like, and at the same time get the machines to behave as wanted.

NB: The simplest solution is often to set up a router/firewall in front of the Skolelinux network. Set the firewall to NAT to the IP on the outside and let your fine Skolelinux network be left peacefully behind the firewall.

Most services and setup in Debian Edu is done using dynamically allocated IP information provided by DHCP or DNS. This is done to make it as easy as possible to change the hard coded IP subnet used. The IP subnet is hard coded to make it possible to get everything working out of the box when set up as intended, because some services do not support dynamically assigned IP information. To change the subnet, these services need to be reconfigured. This document contain instructions on how to locate them and how to change them.

NB! This is intended as help and a useful tool. If you follow the document and something breaks, I will not take any responsibility. Everything you do is at your own responsibility, but you can keep all the broken parts if anything breaks.

It is based on information from http://developer.skolelinux.no/dokumentasjon/skolelinux_endre_ipoppsett.txt and http://developer.skolelinux.no/dokumentasjon/skolelinux_change_ipsetup.txt

All configuration files with hard coded IP addresses are located in /etc/ on the individual machines. Only main-server and thin-client-server profiles contain services with hard coded IP information out of the box. To locate all files needing change, a search in /etc/ and /opt/ltsp/ is a good start:

grep -r "10\.0\." /etc/
grep -r "10\.0\." /opt/ltsp

Use a dummy interface for testing thin-clients

Another approach is use eth0 with your LANs network settings and use (in the case of the mainserver) 10.0.2.2 on a dummy interface:

To set up a dummy network dummy0 with an IP-address of 10.0.2.2 run this command as root:

ifconfig eth0 dummy0 netmask 255.255.255.255

To make it permanent add the following lines to /etc/network/interfaces

 auto dummy0
    address 10.0.2.2
    netmask 255.255.255.255

If you need to use the dns-server given by the dhcp-server on your network (inaddition to the locally on the main-server), you need to edit /etc/bind/debian-edu/named-bind9.conf, to include /var/run/bind/named.options instead of the default /etc/bin/debian-edu/named.conf.options.

/!\ This setup is mostly used for setting up a test-server for using thin clients. If you want to include workstations into your testnet, you really should set up a full Debian Edu test-network with a dedicated firewall etc. Or you need to change your DNS-server, so that the needed hostnames resolves to your mains-server.