Teams/Ab18it08/Netzwerk
Statisches Routing mit Debian Linux
“Routing findet genau dann statt, wenn sich der Netzteil von Quell- und Zieladresse unterscheidet.”
Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).
Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit grünem Marker gekennzeichnet.
[[Image:|thumb|top|Übersicht / Netzwerktopologie]]
Exkurs: Statische / klassische IP-Konfiguration aktivieren
NetworkManager (einen Dienst im Rahmen von systemd) deaktivieren
# systemctl stop NetworkManager # systemctl disable NetworkManager
DNS: (wird "normalerweise" auch vom NetworkManager verwaltet)
# unlink /etc/resolv.conf
# echo "nameserver 10.0.0.1" > /etc/resolv.conf
Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.
Konfiguration für einen Router
… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.
Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.
Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):
# nano /etc/sysctl.conf
In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:
# Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1
… und die geänderte System-Konfiguration neu laden:
# sysctl -p
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:
ip link show
# nano /etc/network/interfaces.d/$INTERFACE
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):
auto enp2s0 iface enp2s0 inet static address 172.16.X.254/24 auto enp2s0:0 iface enp2s0:0 inet static address 10.0.0.10X/8 gateway 10.0.0.1
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:
# systemctl restart networking
Konfiguration für einen Client
… also hier für einen Netzwerk-Knoten in einem privaten Netz, der selbst keine Verbindung in andere Netze hat – der aber Zugriff auf einen Router in seinem Netz hat.
Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:
ip link show
# nano /etc/network/interfaces.d/$INTERFACE
In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):
auto enp2s0 iface enp2s0 inet static address 172.16.X.Y/24 gateway 172.16.X.254
Theoretisch sollte die neue Konfiguration mit dem folgenden Befehl aktiviert werden; tatsächlich war trotzdem ein Reboot nötig:
# systemctl restart networking
Konfiguration testen
ip addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen) ip route show (oder kurz: ip r – IP-Routen des System anzeigen)
ping 172.16.X.254 (Erreichbarkeit des Routers) ping 10.0.0.10X (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers) ping 10.0.0.1 (Erreichbarkeit des “öffentlichen” Gateways ping 8.8.8.8 (Erreichbarkeit einer öfffentlichen IP-Adresse) ping google.de (Namensauflösung) traceroute google.de (Tatsächliches Routing ins öffentliche Internet)
IP-Konfiguration zur Laufzeit ändern
Routen löschen und anlegen:
# ip route del default # ip route add default via 10.0.0.1 (Default-Route, Next Hop) # ip route add 172.16.A.0/24 via 10.0.B.C (spezielles Netz, Next Hop)
IP-Adressen löschen und anlegen:
# ip addr del 10.0.0.101/8 dev enp2s0 (Adresse und “Device” muss angegeben werden) # ip addr add 10.0.0.101/8 dev enp2s0
Der Befehl ip gehört zum Software-Paket “iproute2”. Er ersetzt bekannte / ältere Befehle wie z.B. ifconfig und route aus dem Paket “net-tools”.