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)

Netzwerkschnittstelle einrichten

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

DHCP Server einrichten

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

Routing einrichten

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

Nameserver

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.