UDP sendto schlägt fehl, wenn bestimmte Routingtabellen verwendet werden
Ich habe ein System mit mehreren Schnittstellen. Ich habe alle diese Schnittstellen mit ein paar sysctl
Optionen und Routing-Tabellen und Regeln voneinander getrennt .
Jede Schnittstelle verfügt über eine eigene Routing-Tabelle, die eine Standardroute definiert.
Jede Routing-Tabelle enthält vier Regeln, die festlegen, welche Pakete in welche Tabelle gehen sollen.
Nehmen wir zur Vereinfachung an, ich habe eth0 (192.168.1.1)
und eth1 (192.168.1.2)
.
vom
192.168.1.1
Tischeth0
zum
192.168.1.1
Tischeth0
iif eth0
table eth0
oif eth0
table eth0
Denn eth2
es ist dasselbe.
Die sysctl
Optionen sind:
net.ipv4.conf.all.arp_filter = 1 net.ipv4.conf.all.arp_ignore = 2 net.ipv4.conf.all.arp_announce = 1 net.ipv4.conf.all.rp_filter = 1
Dies funktioniert für 99% meiner beabsichtigten Anwendungsfälle hervorragend, aber einer schlägt fehl. Wenn ein Paket aus einem nicht gebundenen Socket generiert wird, z. B. beim Beantworten eines UDP-Clients mit "sendto", schlägt der Anruf mit "Network Unreachable" fehl. Wenn eine bestimmte IP-Adresse vor dem Aufruf von sendto gebunden ist, ist der Anruf wie erwartet erfolgreich.
Wenn Sie in solchen Situationen keine Standardroute einrichten, können Sie das Richtlinienrouting (z. B. iptables, ip rule) verwenden, um dieses Problem zu lösen.
Vielen Dank
0 Antworten auf die Frage
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
2
Erinnert sich Windows 7 Home Premium an Netzwerkfreigaben-Passwörter?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
5
XP-Netzwerkverbindung ohne Neustart freigeben?
-
5
Wie richte ich Windows ein, 802.11 gegenüber 3G zu bevorzugen?