Benutzer-Werkzeuge

Webseiten-Werkzeuge


routing

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
routing [2018/02/18 20:45]
admin
routing [2018/02/19 22:19] (aktuell)
admin [Welche Netzwerkkarte ist physisch verbunden?]
Zeile 1: Zeile 1:
 ====== Routing ====== ====== Routing ======
 +  * [[http://blog.noviantech.com/2010/12/22/debian-router-gateway-in-15-minutes/]]
 +
 +===== ip Befehl =====
 +Mit dem ''ip''-Befehl lassen sich viele Netzwerkeinstellungen manipulieren.
 +==== IP-Adressen ====
 +=== IP-Adressen anzeigen ===
 +<code|user@host:~#>
 +ip a # Abkürzung für ip addr
 +</code>
 +
 +=== IP-Adresse hinzufügen ===
 +Bei der Vergabe von IP-Adressen muss die Subnetzmaske in der CIDR-Notation mit
 +angegeben werden, sonst wird angenommen, dass ein ''/32''-Netz mit nur einem
 +einzigen Host verwendet wird. Falls nur eine Netzwerkkarte angeschlossen ist,
 +muss das Interface nicht angegeben werden.
 +<code|user@host:~#>
 +ip a add 10.0.100.1/24 dev enp1s0
 +</code>
 +=== IP-Adresse entfernen ===
 +<code|user@host:~#>
 +ip a del 10.0.100.1/24 dev enp1s0
 +</code>
 +
 +==== Routen ====
 +=== Routen anzeigen ===
 +<code|user@host:~#>
 +ip r # Abkürzung für ip route
 +</code>
 +
 +=== Route hinzufügen ===
 +So kann man eine Default-Route über das Gateway ''10.0.100.1'' hinzufügen:
 +<code|user@host:~#>
 +ip r add default via 10.0.100.1 dev enp1s0
 +</code>
 +So fügt man eine Route zu dem ''10.0.200.0/24''-Netzwerk über das Gateway
 +''10.0.200.1'' hinzu:
 +<code|user@host:~#>
 +ip r add 10.0.200.0/24 via 10.0.200.1 dev enp1s0
 +</code>
 +=== Route löschen ===
 +So kann man eine ''default''-Route löschen. Da es nur eine default-Route geben
 +kann, braucht man kein Interface anzugeben.
 +<code|user@host:~#>
 +ip r del default
 +</code>
 +So kann man die Route zu dem Netzwerk ''10.0.200.0/24'' über das Gateway
 +''10.0.200.1'' löschen:
 +<code|user@host:~#>
 +ip r del 10.0.200.0/24 via 10.0.200.1 dev enp1s0
 +</code>
 +
 +===== nft Befehl =====
 +''nft'' steht für ''nftables'', das wiederum für ''netfilter tables'', und das
 +ist der Nachfolger von ''iptables''. Dieses Programm wird für [[https://en.wikipedia.org/wiki/Firewall_computing|Firewall]], bzw. Packet
 +filtering verwendet.
 +  * [[https://wiki.debian.org/nftables|Debian Wiki nftables]]
 +  * [[https://wiki.archlinux.org/index.php/Nftables|Arch Wiki nftables]]
 +Wir benötigen diesen Befehl hauptsächlich um
 +[[https://de.wikipedia.org/wiki/Netzwerkadressübersetzung|NAT]] auf unseren
 +Routern zu betreiben.
 +==== NAT einrichten ====
 +Zunächst wird eine neue Tabelle ''nat'' mit den ''pre''- und ''postrouting'' Chains eingerichtet:
 +<code|user@host:~#>
 +nft add table nat
 +nft add chain nat prerouting { type nat hook prerouting priority 0 \; }
 +nft add chain nat postrouting { type nat hook postrouting priority 0 \; }
 +</code>
 +Auf diese Weise soll nun ''source NAT'' eingerichtet werden, welches sich
 +liest: "source network address translation". Dies ist vielleicht leichter zu
 +verdauen, wenn man dazu "Quelladressenübersetzung" sagt, was die
 +folgende ''rule'', die hinzugefügt werden soll besser erklären kann:
 +<code|user@host:~#>
 +nft add rule nat postrouting ip saddr 10.0.1.0/24 oif enp0s7 snat 134.99.246.151
 +                                |_______________| |________| |_________________|
 +                                        |              |             |
 +  nimm diesen Source-Addressbereich-----+              |                 
 +                                                                   |  
 +  und übersetze ihn am ausgehenden interface-----------+             |
 +                                                                     |  
 +  zu dieser Adresse, die dann als Source-Adresse stehen soll---------+
 +</code>
 +Falls man nun doch die Adressen und Netzwerke durcheinander gebracht hat, kann
 +man die chain ''postrouting'' so wieder zurücksetzen:
 +<code|user@host:~#>
 +nft flush chain ip nat postrouting
 +</code>
 +Dann kann man sich das entstandene ''ruleset'' ansehen:
 +<code|user@host:~#>
 +nft list ruleset
 +</code>
 +Und für die Ewigkeit in Datei schreiben, damit es auch einen Reboot überlebt:
 +<code|user@host:~#>
 +nft list ruleset > /etc/nftables.conf
 +</code>
 +Falls man Veränderungen in der Datei ''/etc/nftables'' vornehmen möchte und diese
 +dann wirksam werden, muss der ''nftables''-Dienst neu gestartet werden:
 +<code|user@host:~#>
 +systemctl restart nftables
 +</code>
 +
 +===== Welche Netzwerkkarte ist physisch verbunden? =====
 +  * [[https://stackoverflow.com/questions/808560/how-to-detect-the-physical-connected-state-of-a-network-cable-connector]]
 +Das geht leicht mit diesem befehl:
 +<code|user@host:~#>
 +grep "" /sys/class/net/*/* 2>/dev/null | grep operstate
 +</code>
  
 ===== Packet forwarding einschalten ===== ===== Packet forwarding einschalten =====
 Damit ein Router überhaupt als solcher funktionieren kann, muss packet Damit ein Router überhaupt als solcher funktionieren kann, muss packet
-forwarding eingeschaltet werden:+forwarding eingeschaltet werden. Das kann man indem man die Datei 
 +''/etc/sysctl.conf'' bearbeitet und die Zeile ''net.ipv4.ip_forward=1'' 
 +auskommentiert oder indem man diesen Einzeiler ausführt: 
 +<code|user@host:~#> 
 +sed -i '/^.*ip_forward=1/s/^#//' /etc/sysctl.conf 
 +</code> 
 +So kann man es ausschalten:
 <code|user@host:~#> <code|user@host:~#>
-sed -i '/^#.*ip_forward=1/s/^#//' /etc/sysctl.conf+sed -i '/^.*ip_forward=1/s/^/#/' /etc/sysctl.conf
 </code> </code>
  
Zeile 26: Zeile 138:
  netmask 255.255.255.0  netmask 255.255.255.0
  gateway 134.99.246.1  gateway 134.99.246.1
- dns-nameserver 134.99.24.129 134.99.58.129 
- dns-search phil-fak.uni-duesseldorf.de 
  
 # The secondary network interface # The secondary network interface
Zeile 34: Zeile 144:
  address 10.0.1.0  address 10.0.1.0
  netmask 255.255.255.254  netmask 255.255.255.254
- up ip route add 10.0.0.0/16 via 10.0.1.1 dev enp1s6+ up ip route add 10.0.0.0/16 via 10.0.1.1 dev enp1s6
  down ip route del 10.0.0.0/16 via 10.0.1.1 dev enp1s6  down ip route del 10.0.0.0/16 via 10.0.1.1 dev enp1s6
 </file> </file>
routing.1518983101.txt.gz · Zuletzt geändert: 2018/02/18 20:45 von admin