19.04.2023, 18:28
Ergänzung:
Mit dem Thema Bridged Networking hatte ich nur begonnen Weil ich ein "internes DNS" nicht hinbekommen habe. Der Hintergedanke dabei war, dann das DNS der Fritzbox zu benutzen.
Die ursprüngliche Beschreibung basiert noch auf Linux Mint. Da ich mich auch mit der Softwareprogrammierung befasse, bin ich nun doch auf Manjaro Linux umgestiegen. Unter der aktuellen Manjaro Linux Installation habe ich das "interne DNS" mit Hilfe des dnsmasq zum Laufen gebracht. Ob es an den unterschiedlichen zu installierenden Paketen liegt, und ich damals nicht für alle Manjaro-Pakete einen Ersatz unter Linux Mint installiert hatte, kann ich nicht genau sagen. Jedenfalls unterscheiden sich die installierten Pakete damals und heute:
Linux-Mint:
sudo apt install qemu-system-x86 libvirt-daemon-system libvirt-clients bridge-utils virt-viewer virt-manager
Manjaro Linux:
sudo pacman -S qemu virt-manager libvirt virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat ebtables libguestfs
"Internes DNS" für die VMs:
=====================
1) Interne KVM/QEMU Domain setzen:
-----------------------------------------------------
$ sudo virsh net-dumpxml default
<network connections='1'>
<name>default</name>
<uuid>XXXXXX-XXXX-XXXX-XXXX-XXXXXXX</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='XX:XX:XX:XX:XX:XX'/>
<domain name='vm.lan' localOnly='yes'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.128' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
$ sudo virsh net-edit default
(nach diesem Befehl/Bearbeitung sollte die Anzeige wie im vorherigen Schritt aussehen)
2) Linux Gast konfigurieren:
=============================
sudo hostnamectl set-hostname <name>.vm.lan
3) Networkmanager des Hosts konfigurieren:
===========================================
$ cat /etc/NetworkManager/conf.d/localdns.conf
[main]
dns=dnsmasq
$ cat /etc/NetworkManager/dnsmasq.d/libvirt_dnsmasq.conf
server=/vm.lan/192.168.122.1
Danach sollte man die VMs mit ihrem Namen anpingen können. Heisst z.B. eine VM "mint", sollte man mit dem folgenden ping dann eine Antwort erhalten:
<name>.<kvm/qemu domain>
ping mint.vm.lan
Abgesehen von der neuen Lösung war natürlich die Lösung mit den 2 Netzwerkschnittstellen auch Blödsinn. Denn benutzt man z.B. eine VPN unterläuft man diese mit der zweiten Schnittstelle. Bei einem kurzem Test hatte ich erstmal nur die Bridge für die VMs angelegt. Ohne das ich für den Networkmanager ein eigenes Device für den Rechner selbst definiert hatte, wurde die Verbindung in das Internet dennoch erkannt. Wer also die VMs von einem anderen Rechner aus erreichen und eine Bridge benutzen möchte sollte in diese Richtung weiterschauen. Eventuell geht dafür ja auch NAT, wenn man für die VMs einen eigenen Port definieren kann. Das sind aber nur erste Ideen zu möglichen Lösungen. Wirklich ausprobiert und mit gearbeitet habe ich mit diesen Lösungsansätzen nicht. Mir reicht es wenn ich die VMs über ihren Namen ansprechen kann, und mich nicht um die IPs kümmern muß.
Mit dem Thema Bridged Networking hatte ich nur begonnen Weil ich ein "internes DNS" nicht hinbekommen habe. Der Hintergedanke dabei war, dann das DNS der Fritzbox zu benutzen.
Die ursprüngliche Beschreibung basiert noch auf Linux Mint. Da ich mich auch mit der Softwareprogrammierung befasse, bin ich nun doch auf Manjaro Linux umgestiegen. Unter der aktuellen Manjaro Linux Installation habe ich das "interne DNS" mit Hilfe des dnsmasq zum Laufen gebracht. Ob es an den unterschiedlichen zu installierenden Paketen liegt, und ich damals nicht für alle Manjaro-Pakete einen Ersatz unter Linux Mint installiert hatte, kann ich nicht genau sagen. Jedenfalls unterscheiden sich die installierten Pakete damals und heute:
Linux-Mint:
sudo apt install qemu-system-x86 libvirt-daemon-system libvirt-clients bridge-utils virt-viewer virt-manager
Manjaro Linux:
sudo pacman -S qemu virt-manager libvirt virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat ebtables libguestfs
"Internes DNS" für die VMs:
=====================
1) Interne KVM/QEMU Domain setzen:
-----------------------------------------------------
$ sudo virsh net-dumpxml default
<network connections='1'>
<name>default</name>
<uuid>XXXXXX-XXXX-XXXX-XXXX-XXXXXXX</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='XX:XX:XX:XX:XX:XX'/>
<domain name='vm.lan' localOnly='yes'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.128' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
$ sudo virsh net-edit default
(nach diesem Befehl/Bearbeitung sollte die Anzeige wie im vorherigen Schritt aussehen)
2) Linux Gast konfigurieren:
=============================
sudo hostnamectl set-hostname <name>.vm.lan
3) Networkmanager des Hosts konfigurieren:
===========================================
$ cat /etc/NetworkManager/conf.d/localdns.conf
[main]
dns=dnsmasq
$ cat /etc/NetworkManager/dnsmasq.d/libvirt_dnsmasq.conf
server=/vm.lan/192.168.122.1
Danach sollte man die VMs mit ihrem Namen anpingen können. Heisst z.B. eine VM "mint", sollte man mit dem folgenden ping dann eine Antwort erhalten:
<name>.<kvm/qemu domain>
ping mint.vm.lan
Abgesehen von der neuen Lösung war natürlich die Lösung mit den 2 Netzwerkschnittstellen auch Blödsinn. Denn benutzt man z.B. eine VPN unterläuft man diese mit der zweiten Schnittstelle. Bei einem kurzem Test hatte ich erstmal nur die Bridge für die VMs angelegt. Ohne das ich für den Networkmanager ein eigenes Device für den Rechner selbst definiert hatte, wurde die Verbindung in das Internet dennoch erkannt. Wer also die VMs von einem anderen Rechner aus erreichen und eine Bridge benutzen möchte sollte in diese Richtung weiterschauen. Eventuell geht dafür ja auch NAT, wenn man für die VMs einen eigenen Port definieren kann. Das sind aber nur erste Ideen zu möglichen Lösungen. Wirklich ausprobiert und mit gearbeitet habe ich mit diesen Lösungsansätzen nicht. Mir reicht es wenn ich die VMs über ihren Namen ansprechen kann, und mich nicht um die IPs kümmern muß.
Mein Heimatgrid: https://swissgrid.opensim.ch