Verwendet der Router NAT?

654
Andrew Li

Ich weiß, dass Computer in verschiedenen Subnetzen nicht miteinander kommunizieren können, wenn wir keinen Router verwenden.

Zum Beispiel:

  • PC A befindet sich im Subnetz 192.168.1.0/24und B ist in 192.168.2.0/24.

  • A und B sind mit C - Router mit Schnittstellen verbunden ist 192.168.1.1, 192.168.2.1.

Sendet der Router beim Senden von Paketen von A nach B das Paket über NAT (Network Address Translation) ?

Wenn nicht, wie könnten A und B miteinander kommunizieren?

Ich bin ein Neuling im Networking.

2
Wenn dies alles Ihre Geräte sind und es keine Internetverbindung gibt, gibt es kein NAT. NAT ist der Prozess der Kommunikation mit einer begrenzten Anzahl von IPs und das Maskieren der anderen, die Sie erhalten haben. Das häufigste Beispiel ist Ihr Internetzugang zu Hause. Sie verwenden private IP-Adressen für PC, Fernseher und Telefon und nur eine einzige öffentliche IP-Adresse, um auf das Internet zuzugreifen. Nur die Kommunikation zwischen Subnetzen wäre ein einfaches Routing. Weitere Informationen finden Sie in anderen Netzwerkfragen oder im Wikipedia-Artikel zu NAT und Routing. Willkommen in der SU. Seth vor 6 Jahren 3
Informieren Sie sich über ** Routing ** (deshalb werden diese Geräte "Router" genannt). Wenn C das Standard-Gateway für A und B ist, müssen Sie nur Routen für C festlegen. Bei den meisten Routern handelt es sich um eingebettete Linux-Boxen, also "ip route add ..." für das Root-Konto oder die verwendeten Konfigurationsdateien. dirkt vor 6 Jahren 1

2 Antworten auf die Frage

3
grawity

Sendet der Router beim Senden von Paketen von A nach B das Paket über NAT (Network Address Translation)?

Normalerweise nein. Es technisch könnte, aber es muss nicht - es gibt keine Notwendigkeit für NAT in dieser Situation ist.

(Ich gehe davon aus, dass C als "Standardgateway" von A und B fungiert.)

Wenn nicht, wie könnten A und B miteinander kommunizieren?

Versuchen Sie die gegenteilige Frage: Warum ist NAT für einige Kommunikationsarten notwendig?

NAT wird notwendig, weil das Internet nicht weiß, wo sich "interne" Adressen befinden. es weiß nur, wo sich Ihre "öffentliche" Adresse befindet. Die einzige Möglichkeit, Antworten von Internet-Hosts zu erhalten, besteht darin, vorzugeben, dass sie von der öffentlichen Adresse des Routers gesendet wurden.

In Ihrem Beispiel weiß der Router jedoch genau, wo sich beide Subnetze befinden. Wenn der Router das Standardgateway beider Hosts ist, bedeutet dies, dass die Hosts auch gut genug wissen, um das gegenüberliegende Subnetz zu erreichen: A hat eine Route nach B, B hat eine Route nach A, C hat Routen zu beiden. Daher trifft der zuvor erwähnte Grund für NAT nicht zu.

Das IP-Paket nach dem Router behält das Original bei? Andrew Li vor 6 Jahren 0
Ja. (Warum nicht?) grawity vor 6 Jahren 0
Danke für Ihre Hilfe. Andrew Li vor 6 Jahren 0
2
Twisty Impersonator

Aufgrund der Informationen zu der Frage ist es nicht möglich zu wissen, ob der Router NAT ausführt oder nicht. Mit einem einfachen Test kann jedoch festgestellt werden, ob NAT verwendet wird:

Wenn Sie PC B von PC A aus erfolgreich pingen und umgekehrt mit der tatsächlichen IP-Adresse jedes PCs pingen können, führt der Router kein NAT aus. (Dies setzt voraus, dass keine Firewalls den Ping blockieren. Daher müssen Sie möglicherweise alle deaktivieren, auch auf den PCs.)

Umgekehrt, wenn NAT in Gebrauch ist, der PC „hinter“ der NAT wird die Lage sein, den anderen Computer pingen, aber es wird umgekehrt nicht. Wenn sich PC A zum Beispiel hinter einem NAT-Router befindet, ist er in der Lage, B anzupingen, aber B ist nicht in der Lage, A zu senden (unter Verwendung der tatsächlichen IP-Adresse von A). Dies liegt daran, dass NAT die IP-Adresse von PC A (dh Maskeraden) übersetzt, um sie so erscheinen zu lassen, als hätte sie eine IP-Adresse in demselben Subnetz wie PC B. Dies ist nützlich, wenn sich viele Geräte in Subnetz A befinden, die jeweils über eigene Geräte verfügen IP-Adresse, aber Sie haben nur eine IP-Adresse im Subnetz B (dies kann das Internet sein). Mit NAT können all diese Geräte über eine einzige IP-Adresse mit dem restlichen Netzwerk / Internet kommunizieren. Dies wird umfangreich genutzt, um die Auswirkungen der Erschöpfung von IP v4 abzuschwächen .

Wenn NAT nicht verwendet wird, tut der Router einfach das, was alle Router tun ... er sendet Pakete von PC A, die an PC B gerichtet sind, über die richtige Schnittstelle, damit sie ihr Ziel erreichen. Die meisten Router verfügen über mehrere Schnittstellen, die an eine Vielzahl von Netzwerken angeschlossen sind. Dies kann beispielsweise in einer Organisation der Fall sein, in der mehrere Gebäude jeweils ein eigenes Netzwerk haben, das über einen zentralen Router verbunden ist.

Die meisten "Router", die zwei Netzwerke verbinden, insbesondere ein LAN mit dem Internet, sind keine echten Router im engeren Sinne, sondern Residential Gateways .

Beide PCs müssen über ein Gateway (Standardgateway oder eine gemeinsame Route) zum Subnetz eines anderen PCs über die Adresse des Routers in ihrem Subnetz verfügen. Wenn dies nicht der Fall ist, führt dies zu einem unidirektionalen oder keinem Ping während NAT und keinem Ping, ohne dass der PC davon abhängig ist oder nicht über die richtige Gateway-Einstellung verfügt. Zusätzliche Informationen erhalten Sie über den Ping-Fehler (Zeitüberschreitung oder nicht erreichbares Ziel). Akina vor 6 Jahren 0
@Akina du hast recht. Ich gehe davon aus, dass der mit jedem Subnetz verbundene Router im Beispielnetz des OP als Standardgateway dieses Netzwerks dient. Twisty Impersonator vor 6 Jahren 0
192.168.1.3 und 192.168.2.4 konnten sich in demselben LAN miteinander verständigen? Andrew Li vor 6 Jahren 0
@AndrewLi Direkt ohne Router? Nur wenn ihre Subnetzmaske / 22 oder mehr breit ist, ansonsten nein. Akina vor 6 Jahren 1
Ohne Router. @Akina Andrew Li vor 6 Jahren 0
Ich denke, dass der Router die Weiterleitungstabelle macht. Router verwendet die IP-Weiterleitung? Andrew Li vor 6 Jahren 0
@AndrewLi No. Router (ohne NAT / Maskerade / etc.) Haben keine Weiterleitungstabelle. Jedes Datenpaket wird unter Verwendung von Quelladresse, Zieladresse und lokaler Routingtabelle separat geroutet. Die Weiterleitungstabelle wird nur benötigt, wenn sich eine Paketadresse während der Übertragung geändert hat - einfaches Routing ist nie der Fall. Akina vor 6 Jahren 0
Der Router erstellt eine Routing-Tabelle (https://en.wikipedia.org/wiki/Routing_table?wprov=sfla1). Es baut es dynamisch auf, indem Routing-Protokolle verwendet werden. Auf diese Weise kann die beste Schnittstelle zum Übertragen von Paketen basierend auf einer Vielzahl von Faktoren bestimmt werden, einschließlich ihrer Zieladresse, der Kosten der Verbindung, der Netzwerkbedingungen usw. Twisty Impersonator vor 6 Jahren 0
@Akina der Ziel-PC löst die IP mit anderem Subnetz auf? Was macht der Router? Andrew Li vor 6 Jahren 0
"Wenn Sie PC B erfolgreich von PC A aus per Ping ansteuern und umgekehrt die tatsächliche IP-Adresse jedes PCs verwenden können, führt der Router kein NAT aus." Nein, das stimmt nicht unbedingt. Während SNAT ausgehende Pakete übersetzt, werden eingehende Pakete nicht auf magische Weise blockiert. Solange es die _firewall_ zulässt (und solange es Routen gibt), ist es durchaus möglich, in ein Subnetz zu gelangen, das NAT-outing ist. Zu prüfen ist, ob die von _ PC B empfangenen Pakete weiterhin die Quell-IP-Adresse von PC A haben und nicht die des Routers. grawity vor 6 Jahren 1
@AndrewLi * der Ziel-PC löst die IP-Adresse mit einem anderen Subnetz auf? * Ich verstehe nicht, was Sie meinen. Akina vor 6 Jahren 0
@ grawity hmmmm guter punkt. Ich versuche, dem OP eine * einfache * Möglichkeit zu bieten, dies zu testen, indem etwas wie Wireshark verwendet wird. Irgendwelche Vorschläge? Twisty Impersonator vor 6 Jahren 0
Ich denke, dass das Netzwerkpaket die Quell-IP und den Port enthält. Wenn das Paket durch den Router geleitet wird, werden die Quell-IP und der Port wie bei NAT geändert. Andrew Li vor 6 Jahren 0
Nein, wenn kein NAT auftritt, wird die Quelladressierung * nicht * geändert. @Grawity weist darauf hin, dass dies die zuverlässigste Methode ist, um zu wissen, dass NAT nicht verwendet wird. Twisty Impersonator vor 6 Jahren 0
@TwistyImpersonator: Wenn die PCs irgendeine Form von TCP-Verbindung akzeptieren (z. B. SMB an Port 445 oder Remote Desktop an 3389 oder SSH an 22 ...), könnte OP 'netstat -n' auf dem empfangenden PC ausführen, während die Verbindung hergestellt ist. und schauen Sie sich die Spalte "Remote address" an. Ich bin mir nicht sicher, ob das einfacher ist als die Installation von Wireshark - es vermeidet lediglich, dass Sie zusätzliche Dateien herunterladen müssen. grawity vor 6 Jahren 0
@Grawity stimmte zu. Vielen Dank für den Hinweis auf die erforderliche Verbesserung. Ich werde es bewerten, wenn ich aus dem Handy aussteige. Twisty Impersonator vor 6 Jahren 0