ubuntuusers.de

Will dass libvirt-VM sich normal per DHCP IP vom Router holt

Status: Ungelöst | Ubuntu-Version: Kubuntu 26.04 (Resolute Raccoon)
Antworten |

Notting

Anmeldungsdatum:
24. November 2007

Beiträge: 90

Hallo!

Versuche gerade gemäß https://www.home-assistant.io/installation/linux/ Abschnitt KVM (virt-install) diese VM aufzusetzen. Dann ist die aber wohl in einem NAT, ich will aber insb. mit dem Web-Browser von anderen Geräten im LAN auf den HTTP-Dienst unter Port 8123 kommen.

Mein Problem mit den Anleitungen im Internet ist, dass sie total verwirrend sind. Manchmal steht dort ein Konfig-Schnipsel, aber nicht in welche Datei das gehört. Oder ich soll das phys. Interface aus unerklärten Gründen löschen.

Was muss ich also tun?

Aus der VM:

2: enp0s2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:63:b6:a2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.92/24 brd 192.168.122.255 scope global dynamic noprefixroute enp0s2
       valid_lft 2240sec preferred_lft 2240sec
    inet6 fe80::7b06:663a:d2cd:ef11/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

Vom Host:

# nmcli con show
NAME                         UUID                                  TYPE      DEVICE
Kabelgebundene Verbindung 1  f1c673b9-9cd4-37d2-8268-d00c2745352a  ethernet  enp2s0
lo                           cf095c88-0a05-4486-9bbb-c0dc93c467ec  loopback  lo
virbr0                       578cb48c-428d-439c-872e-f47aa97b8785  bridge    virbr0
vnet0                        2323817b-1e46-473b-bb48-2db9de72e967  tun       vnet0

"Kabelgebundene Verbindung 1" kriegt vom Router wie gewünscht eine IP im Bereich 10.0.0.x. Wüsste nicht, dass ich bewusst virbr0 und vnet0 angelegt hätte, könnte von virt-install gemacht worden sein.

virbr0:

connection.id:                          virbr0
connection.uuid:                        578cb48c-428d-439c-872e-f47aa97b8785
connection.stable-id:                   --
connection.type:                        bridge
connection.interface-name:              virbr0
connection.autoconnect:                 ja
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1782457134
connection.permissions:                 --
connection.zone:                        --
connection.controller:                  --
connection.master:                      --
connection.slave-type:                  --
connection.port-type:                   --
connection.autoconnect-slaves:          -1 (default)
connection.autoconnect-ports:           -1 (default)
connection.down-on-poweroff:            -1 (default)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.ip-ping-timeout:             0
connection.ip-ping-addresses:           --
connection.ip-ping-addresses-require-all:-1 (default)
connection.metered:                     unbekannt
connection.lldp:                        default
connection.mdns:                        -1 (default)
connection.llmnr:                       -1 (default)
connection.dns-over-tls:                -1 (default)
connection.mptcp-flags:                 0x0 (default)
connection.wait-device-timeout:         -1
connection.wait-activation-delay:       -1
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          nein
802-3-ethernet.mac-address:             --
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-denylist:    --
802-3-ethernet.mtu:                     auto
802-3-ethernet.s390-subchannels:        --
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:            --
802-3-ethernet.wake-on-lan:             default
802-3-ethernet.wake-on-lan-password:    --
802-3-ethernet.accept-all-mac-addresses:-1 (default)
ipv4.method:                            manual
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.addresses:                         192.168.122.1/24
ipv4.gateway:                           --
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.routing-rules:                     --
ipv4.replace-local-rule:                -1 (default)
ipv4.dhcp-send-release:                 -1 (default)
ipv4.routed-dns:                        -1 (default)
ipv4.ignore-auto-routes:                nein
ipv4.ignore-auto-dns:                   nein
ipv4.dhcp-client-id:                    --
ipv4.dhcp-iaid:                         --
ipv4.dhcp-dscp:                         --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname-deprecated:     ja
ipv4.dhcp-send-hostname:                -1 (default)
ipv4.forwarding:                        -1 (default)
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.dhcp-hostname-flags:               0x0 (none)
ipv4.never-default:                     nein
ipv4.may-fail:                          ja
ipv4.required-timeout:                  -1 (default)
ipv4.dad-timeout:                       -1 (default)
ipv4.dhcp-vendor-class-identifier:      --
ipv4.dhcp-ipv6-only-preferred:          -1 (default)
ipv4.link-local:                        0 (default)
ipv4.dhcp-reject-servers:               --
ipv4.auto-route-ext-gw:                 -1 (default)
ipv4.shared-dhcp-range:                 --
ipv4.shared-dhcp-lease-time:            0 (default)
ipv6.method:                            disabled
ipv6.dns:                               --
ipv6.dns-search:                        --
ipv6.dns-options:                       --
ipv6.dns-priority:                      0
ipv6.addresses:                         --
ipv6.gateway:                           --
ipv6.routes:                            --
ipv6.route-metric:                      -1
ipv6.route-table:                       0 (unspec)
ipv6.routing-rules:                     --
ipv6.replace-local-rule:                -1 (default)
ipv6.dhcp-send-release:                 -1 (default)
ipv6.routed-dns:                        -1 (default)
ipv6.ignore-auto-routes:                nein
ipv6.ignore-auto-dns:                   nein
ipv6.never-default:                     nein
ipv6.may-fail:                          ja
ipv6.required-timeout:                  -1 (default)
ipv6.ip6-privacy:                       -1 (default)
ipv6.temp-valid-lifetime:               0 (default)
ipv6.temp-preferred-lifetime:           0 (default)
ipv6.addr-gen-mode:                     default
ipv6.ra-timeout:                        0 (default)
ipv6.mtu:                               auto
ipv6.dhcp-pd-hint:                      --
ipv6.dhcp-duid:                         --
ipv6.dhcp-iaid:                         --
ipv6.dhcp-timeout:                      0 (default)
ipv6.dhcp-send-hostname-deprecated:     ja
ipv6.dhcp-send-hostname:                -1 (default)
ipv6.dhcp-hostname:                     --
ipv6.dhcp-hostname-flags:               0x0 (none)
ipv6.auto-route-ext-gw:                 -1 (default)
ipv6.token:                             --
bridge.mac-address:                     --
bridge.stp:                             ja
bridge.priority:                        32768
bridge.forward-delay:                   2
bridge.hello-time:                      2
bridge.max-age:                         20
bridge.ageing-time:                     300
bridge.group-forward-mask:              0
bridge.multicast-snooping:              ja
bridge.vlan-filtering:                  nein
bridge.vlan-default-pvid:               1
bridge.vlans:                           --
proxy.method:                           none
proxy.browser-only:                     nein
proxy.pac-url:                          --
proxy.pac-script:                       --
GENERAL.NAME:                           virbr0
GENERAL.UUID:                           578cb48c-428d-439c-872e-f47aa97b8785
GENERAL.DEVICES:                        virbr0
GENERAL.IP-IFACE:                       virbr0
GENERAL.STATE:                          aktiviert
GENERAL.DEFAULT:                        nein
GENERAL.DEFAULT6:                       nein
GENERAL.SPEC-OBJECT:                    --
GENERAL.VPN:                            nein
GENERAL.DBUS-PATH:                      /org/freedesktop/NetworkManager/ActiveConnection/3
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/Settings/3
GENERAL.ZONE:                           --
GENERAL.MASTER-PATH:                    --
IP4.ADDRESS[1]:                         192.168.122.1/24
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 192.168.122.0/24, nh = 0.0.0.0, mt = 0
IP6.GATEWAY:                            --

vnet0:

connection.id:                          vnet0
connection.uuid:                        2323817b-1e46-473b-bb48-2db9de72e967
connection.stable-id:                   --
connection.type:                        tun
connection.interface-name:              vnet0
connection.autoconnect:                 ja
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1782460229
connection.permissions:                 --
connection.zone:                        --
connection.controller:                  578cb48c-428d-439c-872e-f47aa97b8785
connection.master:                      578cb48c-428d-439c-872e-f47aa97b8785
connection.slave-type:                  bridge
connection.port-type:                   bridge
connection.autoconnect-slaves:          -1 (default)
connection.autoconnect-ports:           -1 (default)
connection.down-on-poweroff:            -1 (default)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.ip-ping-timeout:             0
connection.ip-ping-addresses:           --
connection.ip-ping-addresses-require-all:-1 (default)
connection.metered:                     unbekannt
connection.lldp:                        default
connection.mdns:                        -1 (default)
connection.llmnr:                       -1 (default)
connection.dns-over-tls:                -1 (default)
connection.mptcp-flags:                 0x0 (default)
connection.wait-device-timeout:         -1
connection.wait-activation-delay:       -1
bridge-port.priority:                   32
bridge-port.path-cost:                  2
bridge-port.hairpin-mode:               nein
bridge-port.vlans:                      --
tun.mode:                               2 (tap)
tun.owner:                              --
tun.group:                              --
tun.pi:                                 nein
tun.vnet-hdr:                           nein
tun.multi-queue:                        nein
GENERAL.NAME:                           vnet0
GENERAL.UUID:                           2323817b-1e46-473b-bb48-2db9de72e967
GENERAL.DEVICES:                        vnet0
GENERAL.IP-IFACE:                       vnet0
GENERAL.STATE:                          aktiviert
GENERAL.DEFAULT:                        nein
GENERAL.DEFAULT6:                       nein
GENERAL.SPEC-OBJECT:                    --
GENERAL.VPN:                            nein
GENERAL.DBUS-PATH:                      /org/freedesktop/NetworkManager/ActiveConnection/4
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/Settings/4
GENERAL.ZONE:                           --
GENERAL.MASTER-PATH:                    /org/freedesktop/NetworkManager/Devices/3
IP4.GATEWAY:                            --
IP6.ADDRESS[1]:                         fe80::fc54:ff:fe63:b6a2/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 256

Danke im Voraus.

leidenlinux27

Anmeldungsdatum:
25. Mai 2026

Beiträge: 30

Du willst nicht virbr0 benutzen, das ist das libvirt-NAT mit 192.168.122.0/24. Wenn die VM direkt eine 10.0.0.x vom Router bekommen soll, brauchst du eine Bridge auf der echten Karte enp2s0 und die VM muss an diese Bridge statt an default/virbr0 gehängt werden.

Mit NetworkManager ist der grobe Weg: neue Bridge z.B. br0 anlegen, enp2s0 als Bridge-Port hinzufügen, die bisherige IPv4/DHCP-Konfiguration von "Kabelgebundene Verbindung 1" auf br0 legen, dann die VM-Netzwerkkarte in virt-manager auf Bridge br0 umstellen. Nicht vnet0 manuell anfassen, das ist nur das TAP-Interface der laufenden VM.

Notting

(Themenstarter)

Anmeldungsdatum:
24. November 2007

Beiträge: 90

Hab mich an https://lukas.zapletalovi.com/posts/2015/fedora-22-libvirt-with-bridge/ orientiert.

export MAIN_CONN=enp0s2
bash -x <<EOS
systemctl stop libvirtd
nmcli c delete "$MAIN_CONN"
nmcli c delete "Kabelgebundene Verbindung 1"
nmcli c add type bridge ifname br0 autoconnect yes con-name br0 stp off
nmcli c add type bridge-slave autoconnect yes con-name "$MAIN_CONN" ifname "$MAIN_CONN" master br0
systemctl restart NetworkManager
systemctl start libvirtd
systemctl enable libvirtd
echo "net.ipv4.ip_forward = 1" | sudo tee /etc/sysctl.d/99-ipforward.conf
sysctl -p /etc/sysctl.d/99-ipforward.conf
EOS

Ausgabe über SSH:

root@b-ha-p845t:~# export MAIN_CONN=enp0s2
bash -x <<EOS
systemctl stop libvirtd
nmcli c delete "$MAIN_CONN"
nmcli c delete "Kabelgebundene Verbindung 1"
nmcli c add type bridge ifname br0 autoconnect yes con-name br0 stp off
nmcli c add type bridge-slave autoconnect yes con-name "$MAIN_CONN" ifname "$MAIN_CONN" master br0
systemctl restart NetworkManager
systemctl start libvirtd
systemctl enable libvirtd
echo "net.ipv4.ip_forward = 1" | sudo tee /etc/sysctl.d/99-ipforward.conf
sysctl -p /etc/sysctl.d/99-ipforward.conf
EOS
+ systemctl stop libvirtd
Stopping 'libvirtd.service', but its triggering units are still active:
libvirtd-admin.socket, libvirtd.socket, libvirtd-ro.socket
+ nmcli c delete enp0s2
Fehler: Unbekannte Verbindung »enp0s2«.
Fehler: Unbekannte Verbindung(en) »'enp0s2'« kann/können nicht gelöscht werden.
+ nmcli c delete 'Kabelgebundene Verbindung 1'
Verbindung »Kabelgebundene Verbindung 1« (f1c673b9-9cd4-37d2-8268-d00c2745352a) erfolgreich gelöscht.
+ nmcli c add type bridge ifname br0 autoconnect yes con-name br0 stp off

Beim Reboot hing der Network-Manager ewig. Nach dem Reboot ist enp2s0 up, kriegt aber keine IP mehr, kann also nur noch lokal was machen. br0 ist down. Was jetzt?

Antworten |