Am urmat acest ghid pentru a seta rețeaua între mașinile virtuale Cum să utilizați rețelele în punte cu libvirt și KVM.
Au apărut două probleme:
- setările de rețea nu persistă după repornirea sistemului;
- pe o mașină invitată virtuală, a doua NIC nu se poate conecta la router, nu este afișată nicio conexiune la rețea
Am creat un nou pod pe gazdă
sudo ip link add hostbr0 type bridge
sudo ip link show tip bridge
# 4: virbr0: <NO-CARRIER, BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT grup implicit qlen 1000
# link/ether 52:54:00:8a:2e:73 brd ff:ff:ff:ff:ff:ff
# 8: mpqemubr0: <NO-CARRIER, BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT grup implicit qlen 1000
# link/ether 52:54:00:87:65:df brd ff:ff:ff:ff:ff:ff
# 9: docker0: <NO-CARRIER, BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT grup implicit
# link/ether 02:42:e9:8e:81:fc brd ff:ff:ff:ff:ff:ff
# 10: hostbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT grup implicit qlen 1000
# link/ether 18:31:bf:cc:08:61 brd ff:ff:ff:ff:ff:ff
Am două interfețe de rețea pe gazdă, ambele conectate la router cu acces la Internet.
nume -v
#44~20.04.2-Ubuntu SMP Mar 26 Oct 18:07:44 UTC 2021
ls -l /sys/class/net/ | grep pci
# enp4s0 -> ../../devices/pci0000:00/0000:00:1c.5/0000:04:00.0/net/enp4s0
# enp5s0 -> ../../devices/pci0000:00/0000:00:1c.7/0000:05:00.0/net/enp5s0
Serverul DHCP de pe routerul meu conectat la configurația Internet:
Grup de adrese IP: 192.168.0.1--192.168.0.254
Gateway implicit: 192.168.0.1
gazdă enp4s0: 192.168.0.11
hostbr0 enp5s0: 192.168.0.10
Am atașat enp5s0
dispozitiv fizic la punte:
sudo ip link set enp5s0 up
sudo ip link set enp5s0 master hostbr0
sudo ip address add dev hostbr0 192.168.2.2/24
adresă ip arată hostbr0
#10: hostbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN #group default qlen 1000
# link/ether 18:31:bf:cc:08:61 brd ff:ff:ff:ff:ff:ff
# inet 192.168.2.2/24 scope global hostbr0
# valid_lft pentru totdeauna preferred_lft pentru totdeauna
Pentru ca configurația să fie persistentă, am modificat-o /etc/network/interfaces
. După cum puteți vedea, am deja mai multe interfețe configurate și am adăugat una nouă enp5s0
# /etc/network/interfaces
auto lo
iface lo inet loopback
cartografiere hotplug
script grep
harta eth1
iface eth1 inet dhcp
auto eth0
iface eth0 inet static
adresa 10.152.187.1
mască de rețea 255.255.255.0
auto wlan0
iface wlan0 inet static
adresa 192.168.1.1
mască de rețea 255.255.255.0
sus /sbin/iwconfig mod wlan0 TTTTTT && /sbin/iwconfig wlan0 enc
&& /sbin/iwconfig cheie wlan0 restricţionată [Y] XXXXXXXX && /sbin/iwconfig
wlan0 essid SSSSSSSS
auto eth1
# Specificați că interfața fizică care ar trebui să fie conectată la bridge
# ar trebui configurat manual, pentru a evita conflictele cu NetworkManager
iface enp5s0 inet manual
# Setările podului hostbr0
auto hostbr0
iface hostbr0 inet static
bridge_ports enp5s0
adresa 192.168.2.11
difuzat 192.168.2.255
mască de rețea 255.255.255.0
gateway 192.168.0.11
Se recomandă dezactivarea netfilterului:
sudo nano /etc/sysctl.d/99-netfilter-bridge.conf
# net.bridge.bridge-nf-call-ip6tables = 0
# net.bridge.bridge-nf-call-iptables = 0
# net.bridge.bridge-nf-call-arptables = 0
# încărcați setările scrise în fișier
sudo modprobe br_netfilter
# pentru a încărca automat modulul la pornire
sudo nano /etc/modules-load.d/br_netfilter.conf
# br_netfilter
# încărcați setările în 99-netfilter-bridge.conf
sudo sysctl -p /etc/sysctl.d/99-netfilter-bridge.conf
Apoi am creat o nouă rețea virtuală în libvirt
# creați o nouă rețea virtuală
sudo nano /tmp/host-bridged-network.xml
# <rețea>
# <name>host-bridged-network</name>
# <forward mode="bridge" />
# <bridge name="hostbr0" />
# </rețea>
sudo virsh net-define /tmp/host-bridged-network.xml
sudo virsh net-start host-bridged-network
sudo virsh net-autostart host-bridged-network
sudo virsh net-list
# Nume Stare Autostart Persistent
# --------------------------------------------- --------
# implicit activ da da
# host-bridged-network activă da da
virsh net-edit implicit
# <rețea>
# <name>implicit</name>
# <uuid>96dc6685-2006-4d88-9239-20f0b263f14b</uuid>
# <forward mode='nat'/>
# <bridge name='virbr0' stp='on' delay='0'/>
# <mac address='52:54:00:8a:2e:73'/>
# <adresa ip='192.168.122.1' netmask='255.255.255.0'>
# <dhcp>
# <range start='192.168.122.2' end='192.168.122.254'/>
# </dhcp>
# </ip>
# </rețea>
virsh net-edit host-bridged-network
# <rețea>
# <name>host-bridged-network</name>
# <uuid>762ec061-5a3d-417e-81ae-e06a920e0b13</uuid>
# <forward mode='bridge'/>
# <bridge name='hostbr0'/>
# </rețea>
Câteva informații despre configurația finală a gazdei mele:
# pe gazdă
ruta ip
# implicit prin 192.168.0.1 dev enp4s0 proto dhcp metric 100
# 10.139.212.0/24 dev mpqemubr0 proto kernel scope link src 10.139.212.1 linkdown
# 169.254.0.0/16 dev virbr0 scope link metric 1000 linkdown
# 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
# 192.168.0.0/24 dev enp4s0 proto kernel scope link src 192.168.0.11 metric 100
# 192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown
link ip
# 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state modul NECUNOSCUT DEFAULT grup implicit qlen 1000
# link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
# 2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT grup implicit qlen 1000
# link/ether 50:3e:aa:0c:97:02 brd ff:ff:ff:ff:ff:ff
# 3: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master hostbr0 state UP mode DEFAULT grup implicit qlen 1000
# link/ether 18:31:bf:cc:08:61 brd ff:ff:ff:ff:ff:ff
# 4: virbr0: <NO-CARRIER, BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT grup implicit qlen 1000
# link/ether 52:54:00:8a:2e:73 brd ff:ff:ff:ff:ff:ff
# 5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 stare mod DOWN DEFAULT grup implicit qlen 1000
# link/ether 52:54:00:8a:2e:73 brd ff:ff:ff:ff:ff:ff
# 8: mpqemubr0: <NO-CARRIER, BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT grup implicit qlen 1000
# link/ether 52:54:00:87:65:df brd ff:ff:ff:ff:ff:ff
# 9: docker0: <NO-CARRIER, BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT grup implicit
# link/ether 02:42:e9:8e:81:fc brd ff:ff:ff:ff:ff:ff
# 10: hostbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT grup implicit qlen 1000
# link/ether 18:31:bf:cc:08:61 brd ff:ff:ff:ff:ff:ff
Apoi am adăugat la mașina virtuală invitată ubuntu 20.04 două interfețe de rețea: Mod implicit
și rețea-gazdă-punți
. Guest începe ca de obicei, pot vedea mediul de rețea în managerul de fișiere Nemo (numai nodul invitat). Interfața enp5s0 nu se poate conecta, Ubuntu încearcă să stabilească conexiunea, dar întotdeauna eșuează. Mesajul de sistem: „Activarea conexiunii la rețea a eșuat” pentru enp5s0
interfață. Mod implicit libvirt
rețeaua este afișată ca enp9s0
si functioneaza corect.
Pe gazdă, această interfață este afișată ca negestionate
.
Întrebările mele sunt:
Ce intervale de adrese ar trebui să atribui rețelelor virtuale?
The hostbr0
nu este creat după repornirea sistemului, deci există o problemă în configurare?
Am și serverul DHCP inițializat pe gazdă, momentan nu este folosit. Poate este mai bine să-l ștergi?
Ar trebui să adaug ambele rețele la mașina oaspete: Mod implicit
, rețea-gazdă-punți
sau numai rețea-gazdă-punți
?
Interfața de rețea fizică prin punte trebuie să fie conectată la router? Sau servește toate funcțiile de pe gazdă, iar a doua NIC oferă Internet prin rețea NAT?
Vă rugăm să sugerați îmbunătățiri la atribuirea adresei, bănuiesc că este ceva greșit în configurația mea