Hier wird beschrieben, wie man einen Rechner, der Zugang zum Internet (z.B. über GPRS, WLAN) hat, diesen Zugang für andere Rechner in einem lokalen Netzwerk zur Verfügung stellt.
In diesem Beispiel ist ppp0 das Modem-Device, das die Internetverbindung bereitstellt und eth0 die Netzwerkkarte an der andere Rechner (über einen Switch etc..) angeschlossen sind.
(Frederic, 20.07.09)
In der Datei /etc/network/interfaces
werden IP-Adresse und andere Optionen für die Netzerkkarte eingestellt.
auto eth0 iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 network 192.168.0.255 broadcast 192.168.0.255
Damit den Rechnern im lokalen Netz auch IP-Adressen zugewiesen werden, muss ein DHCP Server installiert werden.
apt-get install dhcp3-server
In der Datei /etc/default/dhcp3-server
wird festgelegt, auf welchen Netzwerkschnittstellen der Server aktiv sein soll. In diesem fall sieht die entspreechend Zeile so aus:
INTERFACES="eth0"
Nun muss in der Konfigurationsdatei des DHCP-Daemons (/etc/dhcp3/dhcpd.conf
) ein Bereich festgelegt werden, in dem die IPs an die Clients vergeben werden.
... subnet 192.168.0.255 netmask 255.255.255.0 { range 192.168.0.100 192.168.0.200; option routers 192.168.0.1; option domain-name-servers 192.168.0.1; }
In diesem Fall werden IPs im Bereich von .100 bis .200 vergeben.
Die option
-Zeilen geben an, welchen Router und welchen Nameserver die Clients benutzen sollen. Diese dienste werden in den folgenden Schritten eingerichtet.
Zuletzt noch den DHCP-Daemon neu starten.
/etc/init.d/dhcp3-server restart
Mit folgender Regel kümmert sich iptables
um das Routing.
iptables -t nat -A POSTROUTING -i eth0 -j MASQUERADE
Nun muss dem kernel mitgeteilt werden, dass er Pakete, die nicht an den lokalen Host adressiert sind an die entsprechenden Hosts weiterleitet:
sysctrl -w net.ipv4.ip_forward=1
Damit die Clients auch Hostnames auflösen können, sollte ein lokaler Nameserver installiert werden.
apt-get install bind9
Alternativ kann auch in der Konfigurationsdatei des DHCP-Servers ein Namensserver im Internet angegeben werden.