Mit route add wird nur die Hilfe gedruckt, anstatt die Route hinzuzufügen

576
Sam

Ich möchte eine Website an eine bestimmte NIC weiterleiten . Die Schnittstellennummer der 38Netzwerkkarte lautet : Atheros AR7015

> route drucken ================================================== =========================== Schnittstellenliste 13 ... 00 e0 53 17 32 68 ...... Controller der Realtek PCI GBE-Familie 3 ... 0a 00 27 00 00 03 ...... VirtualBox-Host-Only-Ethernet-Adapter 2 ... 00 26 37 bd 39 42 ...... PdaNet Broadband Adapter 17 ... 74 d4 35 bd 37 c4 ...... Intel (R) Ethernet-Anschluss I217-V 38 ... 54 e6 fc 95 17 85 ...... Wireless-Netzwerkadapter von Atheros AR7015 1 ........................... Software-Loopback-Schnittstelle 1 12 ... 00 00 00 00 00 00 00 e0 Microsoft ISATAP-Adapter 16 ... 00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter # 2 8 ... 00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter # 3 ================================================== =========================== 

Mit diesen und diesen Fragen führe ich den Befehl aus, aber es wird nur die Hilfeseite gedruckt:

C:\Windows\system32>route ADD website.com IF 38  Manipulates network routing tables.  ROUTE [-f] [-p] [-4|-6] command [destination] [MASK netmask] [gateway] [METRIC metric] [IF interface]  -f Clears the routing tables of all gateway entries. If this is used in conjunction with one of the commands, the tables are cleared prior to running the command.  -p When used with the ADD command, makes a route persistent across boots of the system. By default, routes are not preserved when the system is restarted. Ignored for all other commands, which always affect the appropriate persistent routes.  -4 Force using IPv4.  -6 Force using IPv6.  command One of these: PRINT Prints a route ADD Adds a route DELETE Deletes a route CHANGE Modifies an existing route destination Specifies the host. MASK Specifies that the next parameter is the 'netmask' value. netmask Specifies a subnet mask value for this route entry. If not specified, it defaults to 255.255.255.255. gateway Specifies gateway. interface the interface number for the specified route. METRIC specifies the metric, ie. cost for the destination.  All symbolic names used for destination are looked up in the network database file NETWORKS. The symbolic names for gateway are looked up in the host name database file HOSTS.  If the command is PRINT or DELETE. Destination or gateway can be a wildcard, (wildcard is specified as a star '*'), or the gateway argument may be omitted.  If Dest contains a * or ?, it is treated as a shell pattern, and only matching destination routes are printed. The '*' matches any string, and '?' matches any one char. Examples: 157.*.1, 157.*, 127.*, *224*.  Pattern match is only allowed in PRINT command. Diagnostic Notes: Invalid MASK generates an error, that is when (DEST & MASK) != DEST. Example> route ADD 157.0.0.0 MASK 155.0.0.0 157.55.80.1 IF 1 The route addition failed: The specified mask parameter is invalid. (Destination & Mask) != Destination.  Examples:  > route PRINT > route PRINT -4 > route PRINT -6 > route PRINT 157* .... Only prints those matching 157*  > route ADD 157.0.0.0 MASK 255.0.0.0 157.55.80.1 METRIC 3 IF 2 destination^ ^mask ^gateway metric^ ^ Interface^ If IF is not given, it tries to find the best interface for a given gateway. > route ADD 3ffe::/32 3ffe::1  > route CHANGE 157.0.0.0 MASK 255.0.0.0 157.55.80.5 METRIC 2 IF 2  CHANGE is used to modify gateway and/or metric only.  > route DELETE 157.0.0.0 > route DELETE 3ffe::/32  C:\Windows\system32> 

Ich habe auch versucht, alle Argumente anzugeben, aber es gibt einen Fehler. Ich glaube, ich habe alles richtig eingegeben

C:\Windows\system32>route ADD vk.com MASK 255.255.255.255 192.168.83.1 IF 38 The route addition failed: The parameter is incorrect.   C:\Windows\system32> 

Der gleiche Fehler tritt auf, wenn ich die NIC-IP als IFParameter eingestellt habe. Sah diesen Ansatz in anderen Fragen irgendwo.

Ich habe auch versucht, die IP-Adresse anstelle des Website-Namens anzugeben:

C:\Windows\system32>route add 87.240.165.80 IF 38  Manipulates network routing tables. ... 

die gleiche Ausgabe für IP wie IF:

C:\Windows\system32>route add 87.240.165.80 IF 192.168.83.27 

und

C:\Windows\system32>route ADD 87.240.165.80 MASK 255.255.255.255 192.168.83.1 IF 192.168.83.27 The route addition failed: The system cannot find the file specified.   C:\Windows\system32> 

OK für IFNummer 38:

C:\Windows\system32>route ADD 87.240.165.80 MASK 255.255.255.255 192.168.83.1 IF 38 OK!  C:\Windows\system32> 
0
Haben Sie versucht, alle Informationen (auch Netzmaske, Gateway, ...) in Ihrem Befehl zu setzen? Was passiert dann? Es ist möglich, dass der Parser die Struktur Ihres Befehls nicht bestimmen kann und versucht, "IF" als Netzmaske zu interpretieren. Daniel Hofer vor 6 Jahren 3
@DanielHofer Ich habe die Frage entsprechend aktualisiert. Ich bin mir jedoch nicht sicher, was ich als metrischen Platz einsetze. Ich forsche darüber nach Sam vor 6 Jahren 0
Haben Sie auch versucht, eine IP-Adresse als Ziel anzugeben, um sicherzustellen, dass nicht der DNS den Fehler verursacht? Daniel Hofer vor 6 Jahren 1
@DanielHofer erneut aktualisiert Sam vor 6 Jahren 0
Aber dieses Mal haben Sie eine IP-Adresse anstelle der Schnittstellennummer verwendet? Ich kenne nur die Möglichkeiten, die Nummer einzustellen (wie Sie das meistens getan haben) oder Windows entscheiden lassen, indem Sie diese Informationen weglassen. Daniel Hofer vor 6 Jahren 1
@DanielHofer hat die Antwort aktualisiert. Ja, es hat funktioniert, danke! Sie sollten eine Antwort posten. Während die Route jetzt hinzugefügt wird, folgt mein Browser immer noch nicht richtig auf vk.com und kann keine Verbindung zur Site herstellen. Sam vor 6 Jahren 0

1 Antwort auf die Frage

1
Daniel Hofer

Im ursprünglichen Befehl gibt es zwei Fehler:

  1. Das Routing erfolgt auf Layer 3, dh auf Basis von IP-Adressen. Daher ist es nicht sinnvoll, einen Hostnamen einzugeben, da dieser vom DNS übersetzt werden müsste. Dies führt zu dem Problem, dass manchmal mehrere IPs ausgewählt werden können, das gravierendere Problem ist jedoch, dass sich die IP ändern kann, die ursprüngliche Route jedoch weiterhin besteht. Bei der direkten Eingabe der IP-Adresse weiß der Benutzer intuitiv, dass er nicht automatisch aktualisiert wird. Dieses Verhalten entspricht den Kommentaren zur Antwort https://serverfault.com/a/144584 .

  2. Windows könnte zwar eine fundierte Vermutung abgeben (wenn die IF gesetzt ist), die Informationen über den nächsten Hop sind jedoch erforderlich. Dies ist auch sinnvoll, da statische Routen auch funktionieren sollten, wenn keine dynamischen Informationen vorhanden sind. Daher verwendet Windows nicht den nächsten vom DHCP angekündigten Hop.

Für Ihren Fall wäre der Befehl mit den geringsten Änderungen, damit es funktioniert

route ADD 87.240.165.80 192.168.83.1 IF 38