Welche Konfigurationsdateien beeinflussen die Routing-Tabelle eines Debian-Systems

Welche Konfigurationsdateien beeinflussen die Routing-Tabelle eines Debian-Systems

Soweit ich weiß, wird die grundlegende Netzwerkkonfiguration in eingegeben /etc/network/interfacesund das System generiert die Routing-Tabelle aus diesen Informationen. Mir wurde auch beigebracht, dass im Allgemeinen /etc/network/interfacesder Ort ist, an dem dauerhaft benutzerdefinierte Befehle hinzugefügt werden können, um die Routing-Tabelle zu manipulieren (manchmal wird auch vorgeschlagen, dass /etc/rc.localoder ein benutzerdefiniertes Skript in ist /etc/network/if-up.d/). Darüber hinaus kann man benutzerdefinierte Routing-Tabellen in angeben /etc/iproute2/rt_tables.

  • Gibt es andere Stellen, die die (Haupt-)Routingtabelle beeinflussen?
    • Gibt es insbesondere noch andere Möglichkeiten, als /etc/network/interfacesmanuell hinzugefügte/gelöschte Routen dauerhaft zu machen?
  • Verfügt ein System mit mehreren Netzwerkkarten über ein Konzept fürprimärUndsekundäre Netzwerkschnittstellenoder sind das nur Formulierungen, die dem Benutzer helfen sollen? (Beim Setup muss man das primäre if auswählen und es /etc/network/interfaceswird einen entsprechenden Kommentar enthalten.) Wenn ein solches Konzept existiert, wo kann es konfiguriert werden?
  • Gibt es Unterschiede im Routingtabellenkonzept zwischen Debian Squeeze und Debian Jessie?

Hintergrund meiner Frage ist, dass ich ein älteres Debian Squeeze-System und ein neues Debian Jessie-System habe, die mit unterschiedlichen Routing-Tabellen booten, aber (soweit ich das beurteilen kann) identisch konfiguriert sind. Ich könnte die Routing-Tabelle manuell an meine Bedürfnisse anpassen und die Änderungen dauerhaft machen, /etc/network/interfacesaber ich möchte verstehen, was vor sich geht.

BEARBEITEN

Hier sind die Konfigurationsdateien beider Maschinen. Ich habe aus Datenschutzgründen die ersten Teile jeder IP-Adresse geändert. Subnetze und die Adressteile der jeweiligen Netzwerke wurden jedoch nicht geändert. Das /etc/network/interfaces.d/Verzeichnis auf der Jessie-Maschine ist leer.

/etc/iproute2/rt_tablesauf Jessie

#
# reserved values
#
255 local
254 main
253 default
0   unspec
#
# local
#
#1  inr.ruhep

/etc/iproute2/rt_tablesauf Squeeze

#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep

/etc/rc.localauf Jessie

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0

/etc/rc.localauf Squeeze

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0

/etc/network/interfacesauf Jessie

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

auto eth1
iface eth1 inet static
    address 143.103.155.254
    netmask 255.255.255.0
    network 143.103.155.0
    gateway 143.103.155.254

# The primary network interface
auto eth2
iface eth2 inet static
    address 27.126.19.194
    netmask 255.255.255.248
    network 27.126.19.192
    broadcast 27.126.19.199
    gateway 27.126.19.193
    # dns-* options are implemented by the resolvconf package, if installed
    dns-nameservers 143.103.5.1
    dns-search subdomain.domain.de

/etc/network/interfacesauf Squeeze

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface

auto eth0
iface eth0 inet static
        address 143.103.155.254
        netmask 255.255.255.0
        network 143.103.155.0
        gateway 143.103.155.254

auto eth2
iface eth2 inet static
        address 27.126.19.194
        netmask 255.255.255.248
        network 27.126.19.192
        broadcast 27.126.19.199
        gateway 27.126.19.193

Ausgabe von ip route show table mainauf Jessie

default via 143.103.155.254 dev eth1 
143.103.155.0/24 dev eth1  proto kernel  scope link  src 143.103.155.254 
27.126.19.192/29 dev eth2  proto kernel  scope link  src 27.126.19.194

Ausgabe von ip route show table mainon Squeeze

27.126.19.192/29 dev eth2  proto kernel  scope link  src 27.126.19.194
143.103.155.0/24 dev eth0  proto kernel  scope link  src 143.103.155.254
default via 27.126.19.193 dev eth2
default via 143.103.155.254 dev eth0  scope link

Ausgabe von route -nauf Jessie

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         143.103.155.254  0.0.0.0         UG    0      0        0 eth1
143.103.155.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
27.126.19.192  0.0.0.0         255.255.255.248 U     0      0        0 eth2

Ausgabe von route -non Squeeze

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
27.126.19.192  0.0.0.0         255.255.255.248 U     0      0        0 eth2
143.103.155.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         27.126.19.193  0.0.0.0         UG    0      0        0 eth2
0.0.0.0         143.103.155.254  0.0.0.0         UG    0      0        0 eth0

Antwort1

Ihre beiden/etc/Netzwerk/SchnittstellenDateien enthalten ein und denselben Fehler: Das Standard-Gateway ist zweimal angegeben.

Sie können mehrere Standard-Gateways nur unter ganz bestimmten Umständen haben (unter Vernachlässigung der Metriken): dass Sie mehrere Routing-Tabellen haben, die jeweils in der Datei angegeben sind/etc/iproute2/rt_tables, aber jede Routing-Tabelle muss eineeinzelStandard-Gateway.

Stattdessen geben Sie für jede Schnittstelle eine an, und zwar imderselbe Tisch hauptsächlich. Was wir hier sehen, ist ein kleiner Unterschied in der Umsetzung deriproute2Paket und wie es auf Fehler reagiert.

Im Fall vonJessie, wird das erstgenannte Gateway, 143.103.155.254, als das einzige Gateway festgelegt, einfach weil es zuerst erwähnt wird. Wenn die Deklaration des zweiten Gateways, 27.126.19.193, erfolgt, geschieht nichts, weil esnichtdavor

      ip route del default

Squeeze hingegen geht mit dem Fehler anders um: Es begrenzt dieUmfangdes zweiten Tores zuLink lokal. Weitere Informationen zuUmfang, sehendas iproute2-Handbuch, welche Staaten:

Gültigkeitsbereichslink --- Die Adresse ist linklokal und nur auf diesem Gerät gültig.

Wikipediabesagt, dass:

In einem Computernetzwerk ist eine Link-Local-Adresse eine Netzwerkadresse, die nur für die Kommunikation innerhalb des Netzwerksegments (Link) oder der Broadcast-Domäne gültig ist, mit der der Host verbunden ist.

Somit ist der Bereich (unpräzises Synonym fürUmfang) des zweiten Gateways war weitgehend auf dessen Netzwerksegment beschränkt (dh, seine Broadcast-Domäne 143.103.155.0/24). Somit ist auch Jessie, wenn auch auf andere Weise, mit Ihrer falschen Deklaration mehrerer Gateways in derselben Routing-Tabelle zurechtgekommen.

Natürlich gibt es keineerwartetes Verhaltenwie Pakete mit Fehlern umgehen. Die richtige Art und Weise, wie Sie Ihre/etc/Netzwerk/SchnittstellenDatei ist die Anweisung wegzulassen

   gateway 143.103.155.254

insgesamt (das ist auch seltsam, weil es heißt, dass das Gateway Ihres eigenen PCs ... er selbst ist!). Um eine gute Erklärung dazu zu sehen, lesen Sie dieErster Lösungsabschnitt hier; später wird auch erklärt, wie mehrere Gateways mit mehreren Routing-Tabellen hinzugefügt werden.

Wenn, wie Sie behaupten,

Ich kann es zur Überprüfung noch einmal versuchen, aber ich bin ziemlich sicher, dass ich das bereits versucht habe und trotzdem keine externe IP erreichen konnte.

es liegt höchstwahrscheinlich daran, dass Sie die IPv4-Weiterleitung von einer Schnittstelle zur anderen nicht zugelassen haben (als sudo:

     echo 1 > /proc/sys/net/ipv4/ip_forward

kümmert sich darum) oder weil Ihre iptables-Regeln die Weiterleitung blockiert haben.

Antwort2

Der Hauptunterschied zwischen Squeeze und Jessie besteht darin, dass für den Ersten und den Letzten ipein Befehl aufgerufen wird .ifconfigiproute2

ifconfig kennt keine Mehrfach-Gateway-Konfigurationen, zumindest nicht ohne Metriken. Deshalb gibt es Unterschiede zwischen den beiden ip routeBefehlen (oder route -n(veraltet))

iproute2 kann mehrere Routingtabellen verfolgen

ip route show all

Das Konzept der primären und sekundären Netzwerkschnittstellen dient lediglich der Unterscheidung. Normalerweise werden sie als eth0 (1.) und eth1 (2.) bezeichnet, die Reihenfolge kann jedoch variieren!

Und ja, Sie können eine permanente Route festlegen, indem Sie Folgendes /etc/network/interfacesverwenden :up

up ip route add 1.2.3.4/24 via 1.2.3.1

verwandte Informationen