QEMU-Netzwerküberbrückung für eine öffentliche IP

QEMU-Netzwerküberbrückung für eine öffentliche IP

Ich möchte einfach, dass meine QEMU-VMs eine öffentliche IP haben, damit ich mehrere Server auf derselben Maschine ausführen kann. Ich habe viele Wikis, Anleitungen, Tutorials, Forenthreads und alles, was damit zu tun hat, gelesen, aber immer noch keine nützliche Antwort gefunden. Ich weiß bereits über die Bridges-Sache Bescheid und habe alles gemacht, was die meisten Tutorials tun.

1) Erstellen Sie die Brücke mit iproute2 (sagen wir br0)
2) Erstellen Sie die TAP-Schnittstelle (sagen wir tap0)
3) Bridge eth0(in meinem Fall enp2s0) und tap0zubr0

Aber das einzige, was ich erreichen kann, ist (abgesehen von Kopfschmerzen), dafür zu sorgen, dass die VM als eine andere Maschine im internen Netzwerk erkannt wird. Ich möchte jedoch, dass das externe Netzwerk meine Maschine mit ihrer eigenen öffentlichen IP-Adresse sieht und nicht mit der gleichen wie die übrigen physischen Maschinen, die mit dem Router verbunden sind.

Seiten, die ich mir angesehen habe:
-https://wiki.archlinux.org/index.php/QEMU#Networking
-https://wiki.archlinux.org/index.php/Network_bridge
-KVM - Hinzufügen einer öffentlichen IP über die Bridge
-http://blog.elastocloud.org/2015/07/qemukvm-bridged-network-with-tap.html
-https://wiki.qemu.org/Documentation/Networking
-http://nairobi-embedded.org/a_qemu_tap_networking_setup.html
-https://en.wikibooks.org/wiki/QEMU/Networking

Meine QEMU-Befehlsargumente:

qemu-system-x86_64 \
    -monitor stdio \
    -soundhw ac97 \
    -k es \
    -machine accel=kvm \
    -m 2024 \
    -hda /mnt/hdd/Desarrollo_Eficiente_HDA.img \
    -boot once=c,menu=on \
    -net nic,vlan=0,macaddr=00:c6:cd:1a:5e:83,model=virtio \
    -net tap,vlan=0,ifname=tap0,script=no \
    -rtc base=localtime \

Andere Befehlsausgaben:

$ brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.003067a647ca       no              enp2s0
                                                        tap0
$ ip address 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 00:30:67:a6:47:ca brd ff:ff:ff:ff:ff:ff
    inet6 fe80::da85:a46d:3e50:2642/64 scope link 
       valid_lft forever preferred_lft forever
9: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:30:67:a6:47:ca brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.3/24 brd 192.168.0.255 scope global noprefixroute br0
       valid_lft forever preferred_lft forever
    inet 192.168.50.14/24 brd 192.168.50.255 scope global noprefixroute br0
       valid_lft forever preferred_lft forever
    inet6 fe80::230:67ff:fea6:47ca/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
10: tap0: <NO-CARRIER,BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc pfifo_fast master br0 state DOWN group default qlen 100
    link/ether 16:51:80:cd:dd:6b brd ff:ff:ff:ff:ff:ff
    inet6 fe80::1451:80ff:fecd:dd6b/64 scope link 
       valid_lft forever preferred_lft forever

Host-Systeminfo:
- Betriebssystem: Parabola GNU/Linux-libre (Arch-basiert)
- Architektur: x86_64

Habe ich etwas übersehen? Eine iptables-Regel? Einen Sysctl-Befehl? Vielen Dank im Voraus für die Hilfe.

verwandte Informationen