Welchen Weg nehmen die Pakete?

Welchen Weg nehmen die Pakete?

Ich habe in VirtualBox ein Host-Only-Netzwerk eingerichtet.

Windows-Host:

VirtualBox Host-Only Network
 IPv4 Address. . . . . . . . . . . : 192.168.56.1

Wireless LAN Adapter Wireless Network Connection 2
  IPv4 Address. . . . . . . . . . . : 172.19.156.59
  Subnet Mask . . . . . . . . . . . : 255.255.255.0
  Default Gateway . . . . . . . . . : 172.19.156.1

CentOS-VM:

eth0      Link encap:Ethernet  HWaddr 08:00:27:AF:A3:28  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:feaf:a328/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:381 errors:0 dropped:0 overruns:0 frame:0
          TX packets:423 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:56181 (54.8 KiB)  TX bytes:50846 (49.6 KiB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:C4:A8:B6  
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fec4:a8b6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8984 errors:0 dropped:0 overruns:0 frame:0
          TX packets:162 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1155253 (1.1 MiB)  TX bytes:31231 (30.4 KiB)

eth2      Link encap:Ethernet  HWaddr 08:00:27:DB:B6:AB  
          inet addr:10.0.4.15  Bcast:10.0.4.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fedb:b6ab/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:220 errors:0 dropped:0 overruns:0 frame:0
          TX packets:487 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:87762 (85.7 KiB)  TX bytes:37818 (36.9 KiB)

Wenn ich in der CentOS-VM eine Verbindung zum Internet herstelle, möchte ich sehen, welchen Pfad die Pakete nehmen, um beispielsweise google.com zu erreichen. Ich kann das Standard-Gateway im Windows-Host anpingen und mein Hauptinteresse besteht darin, zu sehen, wie die Pakete dorthin gelangen.

[root@localhost network-scripts]# traceroute -I 172.19.156.1
traceroute to 172.19.156.1 (172.19.156.1), 30 hops max, 60 byte packets
 1  172.19.156.1 (172.19.156.1)  1.182 ms  3.395 ms  0.825 ms
[root@localhost network-scripts]# traceroute -T 172.19.156.1
traceroute to 172.19.156.1 (172.19.156.1), 30 hops max, 60 byte packets
 1  172.19.156.1 (172.19.156.1)  14.336 ms  13.957 ms  19.046 ms
[root@localhost network-scripts]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.0.2.2        0.0.0.0         UG    0      0        0 eth0
10.0.2.0        *               255.255.255.0   U     0      0        0 eth0
10.0.4.0        *               255.255.255.0   U     0      0        0 eth2
link-local      *               255.255.0.0     U     1002   0        0 eth0
link-local      *               255.255.0.0     U     1003   0        0 eth1
link-local      *               255.255.0.0     U     1004   0        0 eth2
192.168.56.0    *               255.255.255.0   U     0      0        0 eth1

Ich habe die Handles -I und -T als Standard-Traceroute über UDP-Returns verwendet. * Bedeutet die obige Ausgabe, dass Pakete direkt von 10.0.2.2 an 172.19.156.1 gehen?

Ich erhalte auch mehrere * beim Versuch, traceroute -T 172.16.156.59 (Windows-Host) auszuführen.

Antwort1

DerVirtualBox-Handbuchhat Folgendes zum NAT-Netzwerk zu sagen:

Die vom Gastbetriebssystem gesendeten Netzwerkrahmen werden von der NAT-Engine von VirtualBox empfangen, die die TCP/IP-Daten extrahiert und über das Hostbetriebssystem erneut sendet. Für eine Anwendung auf dem Host oder einen anderen Computer im selben Netzwerk wie der Host sieht es so aus, als wären die Daten von der VirtualBox-Anwendung auf dem Host unter Verwendung einer zum Host gehörenden IP-Adresse gesendet worden.

Daher bin ich davon überzeugt, dass jeder Traceroute Ihrer VM, der über die NAT-Schnittstelle läuft, denselben Satz von Gateways meldet wie ein Traceroute, der auf dem Host ausgeführt wird. Das bedeutet, dass Traceroute weder das VirtualBox-NAT-Gateway noch die Schnittstelle auf dem Host auflistet, die zum Senden des Datenverkehrs vom Host verwendet wird.

verwandte Informationen