Warum ist die Haupttabelle beteiligt, da ich das Routing so konfiguriert habe, dass eine benutzerdefinierte Routingtabelle verwendet wird?

Warum ist die Haupttabelle beteiligt, da ich das Routing so konfiguriert habe, dass eine benutzerdefinierte Routingtabelle verwendet wird?

Ich habe folgende Situation:

- - - - - - -
| namespace |-------o      o------
- - - - - - -     vethY   ppp0
          vethX

Wo:

  • ppp0ist eine PPP-Schnittstelle und ihre IP-Adresse ist 192.168.100.169/24
  • vethXist eine virtuelle Ethernet-Schnittstelle innerhalb des Namespace und ihre IP-Adresse ist 10.0.0.3/24
  • vethYist eine weitere virtuelle Ethernet-Schnittstelle, ihre IP-Adresse ist 10.0.0.5/24 und sie ist auch das Standard-Gateway für den Namespace

Tatsächlich sieht die Routing-Tabelle in den Namespace wie folgt aus:

$ sudo ip netns exec my_namespace ip route
default via 10.0.0.5 dev vethX
10.0.0.0/24 dev vethX proto kernel scope link src 10.0.0.3

Ich möchte in diesem Szenario richtlinienbasiertes Routing verwenden. Insbesondere möchte ich eine benutzerdefinierte Routingtabelle verwenden, wenn die eingehende Schnittstelle der Netzwerkpakete die vethYoder die ppp0Schnittstelle ist.

Ich habe die benutzerdefinierte Routing-Tabelle mit dem Namen 'T1' indem ich den Eintrag "T1" in die Datei einfüge /etc/iproute2/rt_tables.
Dann habe ich die Policy-Routing-Regel hinzugefügt, die dem System mitteilt, wann diese neue Routing-Tabelle verwendet werden soll.
Die Policy-Routing-Regeln lauten jetzt also:

$ ip rule
0:      from all lookup local
32764:  from all iif ppp0 lookup T1
32765:  from all iif vethY lookup T1
32766:  from all lookup main
32767:  form all lookup default

Dann habe ich die folgenden Regeln in meine benutzerdefinierte Tabelle eingefügt

$ ip route show table T1
default via 192.168.100.169 dev ppp0
10.0.0.0/24 dev vethY scope link
192.168.100.180 dev ppp0 scope link

Die letzte Zeile zeigt, welches der andere Endpunkt der Punkt-zu-Punkt-Verbindung ist.
Außerdem ist die Hauptroutingtabelle leer.

Wenn ich mich mit dieser Konfiguration im Namespace befinde und 10.0.0.5 anpinge, erhalte ich keine Antworten (auch keine ARP-Antwort).
Anforderungspakete erreichen die vethY-Schnittstelle (ich habe das mit Wireshark gesehen), aber es wird keine Antwort generiert.
Wenn mein ARP-Cache leer ist, wird beim Senden einer ARP-Anforderung keine ARP-Antwort zurückgesendet.

Wenn ich die Regel stattdessen
10.0.0.0/24 dev vethY scope link
auch zur Haupttabelle hinzufüge, fließen alle Pakete auf die richtige Weise.

Warum erhalte ich keine Antworten, wenn ich diese Regel nicht zur Haupttabelle hinzufüge?
Warum ist die Haupttabelle beteiligt, da ich das Routing so konfiguriert habe, dass T1 für alle Pakete verwendet wird, die entweder von vethY oder ppp0 kommen?

verwandte Informationen