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.