Freebsd ändert die Standard-Internetkanalroute

10

Ich habe zwei Internetkanäle und Gateway auf freebsd. Wenn ich mit dem Befehl route change default chan2den Kanal wechsle , netstat -nrzeigt der Befehl die geänderte Standardroute an. tracerouteZeigt aber , dass die Pakete die alte Route chan1 durchlaufen.

Beispiel:

$netstat -nr 
Routing tables Internet: Destination Gateway  Flags    Refs   Use  Netif Expire
                         default     xxx.xxx.183.54 US 0 8432    em3

$sudo route change default xxx.xxx.144.125 
change net default: gateway> xxx.xxx.144.125

$netstat -nr
Routing tables Internet: Destination Gateway Flags Refs Use  Netif Expire
                         default     xxx.xxx.144.125   US  2  16450  em3

ABER

$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets
 1  xxx.xxx.183.53 (xxx.xxx.183.53)  0.527 ms  0.415 ms  0.483ms

Alles funktioniert, wenn ich die folgende Kombination ausführe:

$ sudo route del default

$ Schlaf 10

$ sudo route Standard hinzufügen xxx.xxx.144.125

Taron
quelle
Welche Version laufen Sie ( uname -asollte zeigen)?
Chris S
FreeBSD 8.2-RELEASE FreeBSD 8.2-RELEASE # 0: Fr 15 Apr 12:45:40 MSD 2011 [email protected]: / usr / src / sys / amd64 / compile / IXI_8_2_PF_x64 amd64
Taron
Das Gateway in Ihrer ersten Routing-Tabelle und der erste Hop in Ihrer Traceroute sind nicht dasselbe (.53 vs .54) - haben Sie dies kopiert und eingefügt oder neu eingegeben? Können Sie auch die vollständige Ausgabe von posten netstat -rnf inet?
James O'Gorman
Die Traceroute läuft von meinem GW (.54) .53 ist das Gerät des ersten IP-Anbieters.
Taron
5
Löschen Sie den ARP-Cache arp -d -aund / oder die Routing-Tabellen, route flushbevor Sie die neue Standardroute hinzufügen. Möglicherweise konsultiert der Kernel / Benutzerbereich veraltete Daten.
Inetplumber

Antworten:

0

Wenn Sie den route changeBefehl verwenden, müssen Sie den Netzwerkdienst neu starten, um die Änderungen zu übernehmen, z.

$ sudo /etc/rc.d/netif restart
Vasil Jamalashvili
quelle
0

Ist es möglich, dass Sie eine zwischengespeicherte Route zu 8.8.8.8 haben? Die volle Ausgabe von netstat -nrwürde das zeigen. In diesem Fall müssten Sie es entfernen, bevor Sie Ihre Änderung testen - entweder diese Route speziell oder Sie könnten route flushdas Standard-Gateway hinzufügen und dann ändern, anstatt es zu ändern (aber denken Sie daran, dass dies den nicht lokalen Verkehr zwischen den beiden Befehlen unterbricht, wenn Sie dies tun Weg).

user133831
quelle