VM kann keine öffentliche IP-Adresse mit macvtap / KVM / libvirt verwenden

782
pavel_karoukin

Ich verwende dedizierte Server mit wenigen KVM-VMs. Ich hatte in der Vergangenheit Erfolg, eine separate öffentliche IPv4-Adresse zu erhalten, die mit einem VMvtap-Treiber an eine VM angehängt wurde, und es funktioniert wie ein völlig unabhängiger Server.

Ich kopiere alles, was ich für das zweite öffentliche IPv4, das ich vom Hosting-Dienstanbieter erhalten habe, kopiere, aber dieses Mal kann ich nicht mit macvtap von der zweiten VM auf das Internet zugreifen.

Hier finden Sie relevante Hosts ip link showfür die neu erstellte macvtap-Schnittstelle, wenn VM von libvirt gestartet wird:

40: macvtap2@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 500 link/ether 52:54:00:35:02:38 brd ff:ff:ff:ff:ff:ff 

Und hier ist die ifconfigAusgabe von guest :

ens10 Link encap:Ethernet HWaddr 52:54:00:35:02:38  inet addr:[PUBLIC IP] Bcast:[BROADCAST IP PROVIDED BY HOSTER] Mask:255.255.255.224 inet6 addr: fe80::5054:ff:fe35:238/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:21 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000  RX bytes:0 (0.0 B) TX bytes:1230 (1.2 KB) 

Hier ist relevanter Abschnitt aus virsh edit machine:

 <interface type='direct'> <mac address='52:54:00:35:02:38'/> <source dev='eth0' mode='vepa'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/> </interface> 

Wenn ich laufe, tcpdump -vv host [PUBLIC VM IP]kann ich ankommende Pakete sehen, aber keine Antwort.

Ich sehe überhaupt nichts in der tcpdump -vv -i ens10Ausgabe von VMs.

Ein ähnliches Setup scheint mit einer anderen VM zu funktionieren, und ich kann nicht herausfinden, welcher Unterschied zwischen zwei dazu führen kann, dass die zweite VM gleich funktioniert. Kann ich irgendetwas tun, um es weiter zu debuggen?

1

1 Antwort auf die Frage

1
pavel_karoukin

Es stellte sich heraus, dass es eine Frage war, eine separate MAC-Adresse für meine virtuelle Maschine von Hetzner (meinem Hoster) anzufordern und keine zufällig von libvirt generierte zu verwenden. Nachdem ich die Konfiguration angefordert und aktualisiert hatte, fing alles andere an zu arbeiten.

Einige Details: https://wiki.hetzner.de/index.php/Virtualisierung/de