In den meisten Fällen sollen virtuelle Maschinen auch untereinander oder mit dem Internet kommunizieren können. Virt-manager bietet standardmäßig das Netzwerk 192.168.122.0/24
mit NAT und integriertem DHCP-Server und DNS-Forwarding mithilfe von dnsmasq an. In meiner Testumgebung möchte ich später allerdings selber DHCP- und DNS-Server bereitstellen und benötige darum nur ein Netzwerk ohne weitere Netzwerkdienste.
In meinem Fall möchte ich das Netzwerk ipalab mit dem Adressraum 192.168.111.0/24
erstellen.
1. Konfiguration eines virtuellen Netzwerks
Im virt-manager verbinde ich mich mit dem Host und öffne die Details:
Unter Virtuelles Netzwerk füge ich links unten ein neues Netzwerk hinzu:
Das Netzwerk erhält den Namen ipalab und den IPv4-Adressraum 192.168.111.0/24
. DHCP deaktiviere ich, da sich darum später mächtigere DHCP-Server kümmern werden:
Auf IPv6 verzichte ich ebenfalls. Die virtuelle Netzwerkbücke ist an alle physischen Schnittstellen angeschlossen für den Modus Weitergeleitet (routed) konfiguriert. Der DNS-Domänenname soll leer bleiben:
Nach Abschluss des Assistenten wird das Netzwerk in der Liste angezeigt. Das Fenster kann nun geschlossen werden.
2. Konfiguration der Firewall
Auf den meisten jüngeren Systemen wird firewalld als Firewall eingesetzt und in dieser Anleitung auch auf dem Virtualisierurngshost vorausgesetzt. Es handelt sich um eine Abstraktionsschicht für iptables. Man könnte jetzt bereits eine virtuelle Maschine erstellen und feststellen, dass sie zwar externe Ziele mit der IP-Adresse anpingen, aber selbst mit eingetragenen Google-DNS-Servern noch keine Namen auflösen könnte.
Eine Möglichkeit wäre es, entweder das Quellnetzwerk192.168.111.0/24
zur firewalld-Zone trusted hinzuzufügen, die jeglichen Traffic erlaubt. Auch Kommunikation von vertrauenswürdigen internen Subnetzen (in diesem Beispiel 192.168.1.0/24
) mit den virtuellen Maschinen wäre wünschenswert:
sudo firewall-cmd --zone trusted --add-source 192.168.111.0/24 --permanent sudo firewall-cmd --zone trusted --add-source 192.168.1.0/24 --permanent sudo firewall-cmd --reload
Selbst wenn die Netzwerkschnittstelle selber in einer anderen Zone ist (zum Beispiel public), sollte die Zone, der das Quellnetzwerk zugewiesen wurde, Vorrang haben.
DNS-Anfragen können nun von einer virtuellen Maschine über die virtuelle Brücke zur externen Schnittstelle und zu einem in der Maschine angegeben DNS-Server weitergeleitete werden, und die Antworten werden auch ordentlich zugestellt.