Teams/Ab18it09/Netzwerk: Unterschied zwischen den Versionen

Aus Foxwiki
Benhoffmann (Diskussion | Beiträge)
Die Seite wurde neu angelegt: „''Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert;…“
 
K Textersetzung - „z.B.“ durch „z. B. “
 
(16 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
''Die folgenden Konfigurationen und Befehle wurden im Dezember 2018 unter Debian 9.6 entworfen und getestet. Eine grafische Oberfläche (KDE) war installiert; auf einem nackten / minimalen [[Debian]]-System gibt es sonst z.B. keinen aktiven [[NetworkManager]].'' <sup>[Citation needed]</sup>
== Einführung ==


Fast alle Befehle müssen als root ausgeführt werden (markiert mit dem # am Zeilenanfang).
Auf dem folgenden Plan sieht man das Zielnetzwerk des Raumes 102.


Die für den konkreten Fall anzupassenden Parameter (also nicht buchstäblich zu übernehmenden) mit <span style="background-color:#ccff00;">grünem Marker</span> gekennzeichnet.
[[Datei:Netzwerkplan.jpg|mini]]


[[Datei:Routing-Beispiel-Topologie.png|200px|thumb|right|Beispiel einer Netzwerk-Toplogie mit Routing]]
In diesem Artikel wird die Konfiguration am Beispiel des Netzes 10.1.0.0 durchgeführt.
Im folgenden werden folgende Begriffe verwendet:  
* Öffentlicher Router -> 10.10.0.1
* Interner Router -> 10.1.0.1 (interne Schnittstelle) und 10.10.1.1 (externe Schnittstelle)
* Client -> 10.1.0.100


== Exkurs: Statische / klassische IP-Konfiguration aktivieren ==
== Konfiguration am internen Router ==
===physikalische Konfiguration===
Der interne Router sollte idealerweise zwei Netzwerkkarten besitzen und ein frisches Linux installiert haben. Wir haben Debian verwendet. (Anm.: Es kann auch mit nur einer Netzwerkkarte betrieben werden.) Die Verkabelung sollte wie auf dem Plan realisiert werden.


NetworkManager (einen Dienst im Rahmen von [[systemd]]) deaktivieren
===Vorbereitung===
Zunächst sollte der NetworkManager deaktiviert werden, da wir nicht mit diesem arbeiten (dieser arbeitet vorwiegend auf grafischer Ebene).


  # systemctl stop NetworkManager
  # systemctl stop NetworkManager
  # systemctl disable NetworkManager
  # systemctl disable NetworkManager


DNS: (wird "normalerweise" auch vom NetworkManager verwaltet)
Nun ist auch kein DNS Server mehr eingestellt.
Es sollte also der DNS zu dem DNS-Server im Netzwerk eingestellt werden. (Das ist natürlich nur sinnvoll, wenn der DNS bereits korrekt aufgesetzt und aktiv ist).


  # unlink /etc/resolv.conf
  # rm /etc/resolv.conf
  # echo "nameserver <span style="background-color:#ccff00;">10.0.0.1</span>" > /etc/resolv.conf
  # echo "nameserver 10.10.0.4" > /etc/resolv.conf


Glückwunsch, jetzt (spätestens nach einem Reboot) hat der Rechner keine vom System autokonfigurierte / im Hintergrund verwaltete IP-Schnittstelle mehr.
Alternativ kann auch 8.8.8.8 eingestellt werden.


== Konfiguration für einen Router ==
===IP Forwarding aktivieren===


… also für einen Netzwerk-Knoten, der Zugriff auf mindestens zwei getrennte logische Netzwerke hat und IP-Pakete zwischen ihnen vermitteln kann.
Der interne Router soll die Pakete von einer Netzwerkkarte zur anderen weiterleiten.
Dies ist das eigentliche "Routing" und verbindet zwei verschiedene Netze.
In unserem Beispiel das Netz 10.1.0.1 (interne Schnittstelle) und 10.10.0.1 (externe Schnittstelle).


''Hier: Für einen Router zwischen “Level-1-LAN” und “Level-2-LAN” in der oben gegebenen Topologieskizze.''
Diese Funktion nennt sich '''IP Forwarding'''. Sie befindet sich in der sysctl.conf.
# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
(Anm.:Diese Zeile befindet sich nun zweimal in der Datei. Allerdings ist die erste Variante auskommentiert und somit deaktiviert)


Generell: Forwarding von IP-Paketen zwischen Netzwerkschnittstellen aktivieren (das ist per Default abgeschaltet):
Nun die Konfiguration neu laden
# sysctl -p


# nano /etc/sysctl.conf
===Interfaces einstellen===


In der Datei folgende Einstellung suchen und das “#” am Zeilenanfang entfernen:
Zunächst müssen wir die Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:


  # Uncomment the next line to enable packet forwarding for IPv4
  ip link show
net.ipv4.ip_forward=1
 
… und die geänderte System-Konfiguration neu laden:


# sysctl -p
Wir sehen neben der lo:Loopback Adresse die Bezeichnungen der Netzwerkkarten (z.&nbsp;B.&nbsp; enp0s6). Daneben steht UP oder DOWN. Dies zeigt i.d.R. an, ob ein Kabel eingesteckt ist und Verbindung zur Gegenstelle hat. Es kann also durch einfaches ein- und ausstecken des Kabels ermittelt werden, welche Netzwerkkarte welchen Namen trägt. Alternativ kann der Name auch über die MAC Adresse bestimmt werden.


Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:
In unserem Beispiel ist enp0s6 die externe Schnittstelle am internen Router und enp1s6 die interne Schnittstelle am internen Router.


ip link show
Nun muss die Interfaces Datei eingestellt werden. Dabei müssen wir dem internen Router auf der internen Schnittstelle (enp1s6) eine IP des internen Netzes geben (in unserem Beispiel 10.1.0.1). Auf der externen Schnittstelle (enp0s6) benötigt er eine externe IP (10.10.1.1.). Außerdem muss auf der externen Schnittstelle das Gateway des öffentlichen Routers eingetragen werden, denn alle Pakete auf beiden Netzwerkkarten sollen hierhin weitergeleitet werden.


# nano /etc/network/interfaces.d/<span style="background-color:#ccff00;">$INTERFACE</span>


In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):
auto enp1s6
iface enp1s6 inet static
            address 10.1.0.1/16
auto enp0s6
iface enp0s6 inet static
            address 10.10.1.1/16
            gateway 10.10.0.1


auto <span style="background-color:#ccff00;">enp2s0</span>
Anschließend die neue Konfiguration laden :
iface <span style="background-color:#ccff00;">enp2s0</span> inet static
            address 172.16.<span style="background-color:#ccff00;">X</span>.254/24
auto <span style="background-color:#ccff00;">enp2s0</span>:0
iface <span style="background-color:#ccff00;">enp2s0</span>:0 inet static
            address 10.0.0.10<span style="background-color:#ccff00;">X</span>/8
            gateway 10.0.0.1
 
Die neue Konfiguration starten :
  # systemctl restart networking
  # systemctl restart networking


Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.0.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Zunächst sollte nur eine temporäre Route gesetzt werden zu Testzwecken. Sollte diese Route nicht funktionieren ist sie nach einem Reboot nicht mehr eingetragen und das Netz wieder in den Ausgangszustand versetzt. Die folgenden Befehle sind ungeprüft und sollten zusammen mit dem Dozenten ausgeführt werden.
==Öffentlichen Router einstellen==
===Gateway einrichten===
Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.10.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Das Login erfolgt einfach, indem man über den Browser die IP aufruft.
Unter System kann nun ein Gateway hinzugefügt werden. Wir müssen dem öffentlichen Router sagen, dass der interne Router ein Gateway ist (das sich also dahinter ein Netz befindet). Dieses Gateway sollte in der Konfiguration eingetragen sein:


  # ssh root@10.0.0.1
  router01 LAN 10.10.1.1
# ip route add 172.16.X.0/24 via 10.0.0.10 dev enp2s0


== Konfiguration für einen Client ==
===Route einrichten===
Nun muss eine Route mit diesem Gateway eingerichtet werden um dem öffentlichen Router zu sagen, welches Netz sich hinter diesem Gateway verbirgt. Diese Route sollte in der Konfiguration eingetragen sein :
10.1.0.0/16 router01 - 10.10.1.1 Route Netz 1


… 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.
Natürlich müssen auch die anderen Routen zu den anderen Netzen eingetragen sein. Am Ende sollten diese Routen eingetragen sein :
10.1.0.0/16 router01 - 10.10.1.1
10.2.0.0/16 router02 - 10.10.2.1
10.3.0.0/16 router03 - 10.10.3.1


Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:
===Routing auf gleicher Schnittstelle aktivieren===
Nun müssen wir den Router anweisen, dass er verschiedene Netze auf einer Schnittstelle routet (sollte der öffentliche Router für jedes Netzwerk eine Netzwerkkarte besitzen ist dies nicht nötig).
Dazu setzen wir unter Firewall/Einstellungen/Erweitert das Häkchen bei "Filterung statischer Routen > Umgehe Firewall Regeln für Verkehr auf der gleichen Schnittstelle"


  ip link show
===Auch Subnetze ins Internet lassen===
Zu guter letzt müssen wir dem Router sagen, dass er auch andere Subnetze ins Internet lassen soll. Das erreichen wir, indem wir unter Firewall/Regeln/LAN eine neue Regel hinzufügen, indem wir jegliche IP's (und nicht nur das LAN) zulassen. Diese Regel sollte am Ende so aussehen
  IPv4 * * * * * GW_WAN *


# nano /etc/network/interfaces.d/<span style="background-color:#ccff00;">$INTERFACE</span>
== Konfiguration testen ==


In der Datei folgende Konfiguration anlegen (generell sind die gesamten Netz-IDs und Adressen auf den konkreten Fall anzupassen!):
Die Konfigurationen können an den jeweiligen Punkten des Netzwerkes getestet werden.
 
Folgende Befehle sind hilfreich :
auto <span style="background-color:#ccff00;">enp2s0</span>
iface <span style="background-color:#ccff00;">enp2s0</span> inet static
            address 172.16.<span style="background-color:#ccff00;">X</span>.<span style="background-color:#ccff00;">Y</span>/24
            gateway 172.16.<span style="background-color:#ccff00;">X</span>.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 addr show (oder kurz: ip a – IP-Adressen des Systems anzeigen)
  ip route show (oder kurz: ip r – IP-Routen des System anzeigen)
  ip route show (oder kurz: ip r – IP-Routen des System anzeigen)


  ping <span style="background-color:#ccff00;">172.16.X.254</span>  (Erreichbarkeit des Routers)
  ping 10.10.0.1(Erreichbarkeit des öffentlichen Routers)
  ping <span style="background-color:#ccff00;">10.0.0.10X</span> (Erreichbarkeit der “öffentlichen” Schnittstelle des Routers)
  ping 10.10.1.1 (Erreichbarkeit der externen Schnittstelle des internen Routers)
  ping <span style="background-color:#ccff00;">10.0.0.1</span> (Erreichbarkeit des “öffentlichen” Gateways
  ping 10.1.0.1  (Erreichbarkeit der internen Schnittstelle des internen Routers)
  ping 8.8.8.8  (Erreichbarkeit einer öfffentlichen IP-Adresse)
  ping 8.8.8.8  (Erreichbarkeit einer öffentlichen IP-Adresse)
  ping google.de (Namensauflösung)
  ping google.de (Namensauflösung)
  traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)
  traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)


== Debugging ==
=== Debugging ===
'''Vorbereitung'''
'''Vorbereitung'''


Zeile 110: Zeile 119:
In diesem Beispiel  
In diesem Beispiel  


extern :  enp2s0:0
extern :  enp0s6


intern :  enp2s0
intern :  enp1s6


Tipps:
Tipps:
Zeile 121: Zeile 130:
'''Debugging-Check'''
'''Debugging-Check'''


1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.0.0.1). Kommt der ping dort an springe direkt zu Punkt 4.
1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.10.0.1). Kommt der ping dort an springe direkt zu Punkt 4.


2. Am Router <code>tcpdump -i enp2s0</code> ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem. Eine mögliche Ursache ist ein falsches Gateway am Client, eine falsche Subnetzmaske o.ä..
2. Am Router <code>tcpdump -i enp1s6</code> ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem. Eine mögliche Ursache ist ein falsches Gateway am Client, eine falsche Subnetzmaske, VLAN am Switch o.ä..
   
   
3. Am Router <code>tcpdump -i enp2s0:0</code> ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.0.0.1).
3. Am Router <code>tcpdump -i enp0s6</code> ausführen und schauen ob ein Ping vom  dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.10.0.1). Testweise können auch andere Rechner im 10.10 Netz angepingt werden.


4. Kommt der Ping an sollte ein neuer Ping auf 8.8.8.8 versucht werden (Google DNS). Klappt das nicht, muss es am Gateway-ITW-Router liegen, der nicht aus dem Netz kommt. Kommt der ping an sollte ein Ping auf google.de versucht werden. Klappt das nicht sollten die DNS Einstellung überprüft werden.
4. Kommt der Ping an sollte ein neuer Ping auf 8.8.8.8 versucht werden (Google DNS). Klappt das nicht, muss es am öffentlichen Router liegen, der nicht aus dem Netz kommt. Kommt der ping an sollte ein Ping auf google.de versucht werden. Klappt das nicht sollten die DNS Einstellung überprüft werden.


'''Mögliche Fehlerquellen'''
'''Mögliche Fehlerquellen'''
Zeile 139: Zeile 148:
* Firewall im Router checken  
* Firewall im Router checken  
**  Aktiviere in den FW-Einstellungen : Filterung statischer Routen , Umgehe Firewall Regeln für Verkehr auf der gleichen Schnittstelle
**  Aktiviere in den FW-Einstellungen : Filterung statischer Routen , Umgehe Firewall Regeln für Verkehr auf der gleichen Schnittstelle
** Überprüfe NAT-Einstellungen
** Firewall Regeln für Subnetze aktivieren


==Known-Issues==
===Known-Issues===
*Der DHCP Relay funktioniert nicht
*Der DHCP Relay funktioniert nicht


== IP-Konfiguration zur Laufzeit ändern ==
[[Kategorie:Teams]]
 
Routen löschen und anlegen:
 
# ip route del default
# ip route add default via <span style="background-color:#ccff00;">10.0.0.1</span><span style="background-color:transparent;"> </span><span style="background-color:transparent;">(Default-Route, Next Hop)</span>
# ip route add 172.16.<span style="background-color:#ccff00;">A</span>.0/24 via 10.0.<span style="background-color:#ccff00;">B.C</span><span style="background-color:transparent;"> </span><span style="background-color:transparent;">(spezielles Netz, Next Hop)</span>
 
IP-Adressen löschen und anlegen:
 
# ip addr del <span style="background-color:#ccff00;">10.0.0.101/8</span> dev <span style="background-color:#ccff00;">enp2s0</span> (Adresse und “Device” muss angegeben werden)
# ip addr add <span style="background-color:#ccff00;">10.0.0.101/8</span> dev <span style="background-color:#ccff00;">enp2s0</span>
 
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”.
 
[[Category:Linux]]
[[Category:Netzwerk]]

Aktuelle Version vom 19. Mai 2023, 11:53 Uhr

Einführung

Auf dem folgenden Plan sieht man das Zielnetzwerk des Raumes 102.

In diesem Artikel wird die Konfiguration am Beispiel des Netzes 10.1.0.0 durchgeführt. Im folgenden werden folgende Begriffe verwendet:

  • Öffentlicher Router -> 10.10.0.1
  • Interner Router -> 10.1.0.1 (interne Schnittstelle) und 10.10.1.1 (externe Schnittstelle)
  • Client -> 10.1.0.100

Konfiguration am internen Router

physikalische Konfiguration

Der interne Router sollte idealerweise zwei Netzwerkkarten besitzen und ein frisches Linux installiert haben. Wir haben Debian verwendet. (Anm.: Es kann auch mit nur einer Netzwerkkarte betrieben werden.) Die Verkabelung sollte wie auf dem Plan realisiert werden.

Vorbereitung

Zunächst sollte der NetworkManager deaktiviert werden, da wir nicht mit diesem arbeiten (dieser arbeitet vorwiegend auf grafischer Ebene).

# systemctl stop NetworkManager
# systemctl disable NetworkManager

Nun ist auch kein DNS Server mehr eingestellt. Es sollte also der DNS zu dem DNS-Server im Netzwerk eingestellt werden. (Das ist natürlich nur sinnvoll, wenn der DNS bereits korrekt aufgesetzt und aktiv ist).

# rm /etc/resolv.conf
# echo "nameserver 10.10.0.4" > /etc/resolv.conf

Alternativ kann auch 8.8.8.8 eingestellt werden.

IP Forwarding aktivieren

Der interne Router soll die Pakete von einer Netzwerkkarte zur anderen weiterleiten. Dies ist das eigentliche "Routing" und verbindet zwei verschiedene Netze. In unserem Beispiel das Netz 10.1.0.1 (interne Schnittstelle) und 10.10.0.1 (externe Schnittstelle).

Diese Funktion nennt sich IP Forwarding. Sie befindet sich in der sysctl.conf.

# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

(Anm.:Diese Zeile befindet sich nun zweimal in der Datei. Allerdings ist die erste Variante auskommentiert und somit deaktiviert)

Nun die Konfiguration neu laden

# sysctl -p

Interfaces einstellen

Zunächst müssen wir die Bezeichnungen der Netzwerk-Hardware-Schnittstelle(n) bestimmen:

ip link show

Wir sehen neben der lo:Loopback Adresse die Bezeichnungen der Netzwerkkarten (z. B.  enp0s6). Daneben steht UP oder DOWN. Dies zeigt i.d.R. an, ob ein Kabel eingesteckt ist und Verbindung zur Gegenstelle hat. Es kann also durch einfaches ein- und ausstecken des Kabels ermittelt werden, welche Netzwerkkarte welchen Namen trägt. Alternativ kann der Name auch über die MAC Adresse bestimmt werden.

In unserem Beispiel ist enp0s6 die externe Schnittstelle am internen Router und enp1s6 die interne Schnittstelle am internen Router.

Nun muss die Interfaces Datei eingestellt werden. Dabei müssen wir dem internen Router auf der internen Schnittstelle (enp1s6) eine IP des internen Netzes geben (in unserem Beispiel 10.1.0.1). Auf der externen Schnittstelle (enp0s6) benötigt er eine externe IP (10.10.1.1.). Außerdem muss auf der externen Schnittstelle das Gateway des öffentlichen Routers eingetragen werden, denn alle Pakete auf beiden Netzwerkkarten sollen hierhin weitergeleitet werden.


auto enp1s6
iface enp1s6 inet static
           address 10.1.0.1/16
auto enp0s6
iface enp0s6 inet static
           address 10.10.1.1/16
           gateway 10.10.0.1

Anschließend die neue Konfiguration laden :

# systemctl restart networking

Öffentlichen Router einstellen

Gateway einrichten

Anschließend muss am Hauptrouter (welcher den Zugang zum ITW Netz liefert, d.h. der Gateway-Router, in unserem Beispiel 10.10.0.1) eine Route zum internen Netz des Routers gelegt werden. Zunächst müssen wir uns dafür an dem ITW-Router einloggen und eine Route einrichten. Das Login erfolgt einfach, indem man über den Browser die IP aufruft. Unter System kann nun ein Gateway hinzugefügt werden. Wir müssen dem öffentlichen Router sagen, dass der interne Router ein Gateway ist (das sich also dahinter ein Netz befindet). Dieses Gateway sollte in der Konfiguration eingetragen sein:

router01 	LAN 	10.10.1.1 	

Route einrichten

Nun muss eine Route mit diesem Gateway eingerichtet werden um dem öffentlichen Router zu sagen, welches Netz sich hinter diesem Gateway verbirgt. Diese Route sollte in der Konfiguration eingetragen sein :

10.1.0.0/16	router01 - 10.10.1.1	Route Netz 1

Natürlich müssen auch die anderen Routen zu den anderen Netzen eingetragen sein. Am Ende sollten diese Routen eingetragen sein :

10.1.0.0/16	router01 - 10.10.1.1	
10.2.0.0/16	router02 - 10.10.2.1	
10.3.0.0/16	router03 - 10.10.3.1	 	

Routing auf gleicher Schnittstelle aktivieren

Nun müssen wir den Router anweisen, dass er verschiedene Netze auf einer Schnittstelle routet (sollte der öffentliche Router für jedes Netzwerk eine Netzwerkkarte besitzen ist dies nicht nötig). Dazu setzen wir unter Firewall/Einstellungen/Erweitert das Häkchen bei "Filterung statischer Routen > Umgehe Firewall Regeln für Verkehr auf der gleichen Schnittstelle"

Auch Subnetze ins Internet lassen

Zu guter letzt müssen wir dem Router sagen, dass er auch andere Subnetze ins Internet lassen soll. Das erreichen wir, indem wir unter Firewall/Regeln/LAN eine neue Regel hinzufügen, indem wir jegliche IP's (und nicht nur das LAN) zulassen. Diese Regel sollte am Ende so aussehen

IPv4 * 	* 	* 	* 	* 	GW_WAN 	* 	

Konfiguration testen

Die Konfigurationen können an den jeweiligen Punkten des Netzwerkes getestet werden. Folgende Befehle sind hilfreich :

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 10.10.0.1(Erreichbarkeit des öffentlichen Routers)
ping 10.10.1.1  (Erreichbarkeit der externen Schnittstelle des internen Routers)
ping 10.1.0.1  (Erreichbarkeit der internen Schnittstelle des internen Routers)
ping 8.8.8.8  (Erreichbarkeit einer öffentlichen IP-Adresse)
ping google.de (Namensauflösung)
traceroute google.de  (Tatsächliches Routing ins öffentliche Internet)

Debugging

Vorbereitung

Sollte ein Ping nicht funktionieren kann man durch das Überwachen des TCP-Traffics eine Fehlerdiagnose durchgeführt werden. Vorsicht : Auch eine SSH Verbindung läuft via TCP, deshalb kann dieses Debugging nicht mit einer SSH verwendet werden.

# apt install tcpdump

Nun kann unter Angabe des Gerätes der TCP-Traffic einer Netzwerkkarte mitgeschnitten werden. Wir haben am Router eine externe und eine interne Schnittstelle.

In diesem Beispiel

extern : enp0s6

intern : enp1s6

Tipps:

  • Die Bezeichnungen der Netzwerkkarte(n) können mit ip link show angezeigt werden.)
  • tcpdump kann auch gegreppt werden, die Ausgabe dauert allerdings eine Weile; Beispiel tcpdump | grep ICMP


Debugging-Check

1. Auf dem Client PC einen Ping zum Gateway Router starten (ping 10.10.0.1). Kommt der ping dort an springe direkt zu Punkt 4.

2. Am Router tcpdump -i enp1s6 ausführen und schauen ob der Ping dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es schon im internen Netz ohne Routing ein Problem. Eine mögliche Ursache ist ein falsches Gateway am Client, eine falsche Subnetzmaske, VLAN am Switch o.ä..

3. Am Router tcpdump -i enp0s6 ausführen und schauen ob ein Ping vom dort ankommt und eine Reply ankommt. Wenn ping dort nicht ankommt dann gibt es im Routing ein Problem (vermutlich liegt es dann an der Routingtabelle - siehe ip r). Wenn der ping dort ankommt, aber die Antwort nicht, so liegt er vermutlich an der Routingtabelle im Gateway router (10.10.0.1). Testweise können auch andere Rechner im 10.10 Netz angepingt werden.

4. Kommt der Ping an sollte ein neuer Ping auf 8.8.8.8 versucht werden (Google DNS). Klappt das nicht, muss es am öffentlichen Router liegen, der nicht aus dem Netz kommt. Kommt der ping an sollte ein Ping auf google.de versucht werden. Klappt das nicht sollten die DNS Einstellung überprüft werden.

Mögliche Fehlerquellen

Client kann internen Router nicht erreichen

  • Der Switch verwendet VLAN und leitet nicht an die Ports weiter

Client kann öffentl.Router nicht erreichen

  • Gateways im Router checken
  • Routen im Router checken
  • Firewall im Router checken
    • Aktiviere in den FW-Einstellungen : Filterung statischer Routen , Umgehe Firewall Regeln für Verkehr auf der gleichen Schnittstelle
    • Firewall Regeln für Subnetze aktivieren

Known-Issues

  • Der DHCP Relay funktioniert nicht