Quelle interface réseau ou adresse IP dans l'OS invité correspond à laquelle dans l'OS hôte?

2

J'ai entendu dire qu'un système d'exploitation invité et un système d'exploitation hôte dans KVM peuvent communiquer via des interfaces réseau ou des adresses IP dans le même réseau privé. J'ai aussi entendu ça

Vous pouvez voir ses adresses IP et ses interfaces réseau dans les réseaux de conteneurs et de machines virtuelles dans la sortie d'ifconfig.

Je montre les sorties de ifconfigdans un OS invité et un OS hôte ci-dessous. Pouvez-vous me dire quelle interface réseau ou adresse IP de l'OS invité correspond à laquelle de l'OS hôte et inversement? Merci.

Dans un système d'exploitation invité Debian via VMM / KVM,

user@debian:~$ /sbin/ifconfig
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAS>  mtu 1500
        inet 192.168.122.202  netmask 255.255.255.0  broadcast 192.168.122.255
        inet6 fe80::5054:ff:fe99:5eee  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:99:5e:ee  txqueuelen 1000  (Ethernet)
        RX packets 5504  bytes 4872073 (4.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4199  bytes 559987 (546.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 20044

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 488  bytes 39360 (38.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 488  bytes 39360 (38.4 KiB)
        TX errors 0  dropped 0 overruns 0  carries 0  collisions 0

Dans l'OS hôte Lubuntu:

$ ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:a6:79:a6:bc  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s25: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether   txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 20  memory 0xfc400000-fc420000  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 3102389  bytes 174723039 (174.7 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3102389  bytes 174723039 (174.7 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:b1:aa:1f  txqueuelen 1000  (Ethernet)
        RX packets 708  bytes 68468 (68.4 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 316  bytes 51806 (51.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::fc54:ff:fe99:5eee  prefixlen 64  scopeid 0x20<link>
        ether fe:54:00:99:5e:ee  txqueuelen 1000  (Ethernet)
        RX packets 257  bytes 28494 (28.4 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 23514  bytes 1240204 (1.2 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlx8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.97  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6   prefixlen 64  scopeid 0x20<link>
        ether 80:1f:02:b5:c3:89  txqueuelen 1000  (Ethernet)
        RX packets 1269625  bytes 1045069752 (1.0 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 646600  bytes 101897054 (101.8 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
Tim
la source
Faites-vous des règles de nat? Comment l'ip va correspondre à l'invité?
Luciano Andress Martini Le
Je suppose que je manque le point de votre question. Cela semble être un réseau très basique, à la surface. Invité Debian, ens3 est assigné 192.168.122.202. Lubuntu host, virbr0 est assigné 192.168.122.1. Si vous vérifiez l'adresse IP et les paramètres associés sous Debian, vous verrez que l'adresse de passerelle pour Debian est 192.168.122.1. Selon mon expérience, il s'agit d'un comportement normal et plus ou moins normal par défaut pour libvirt / KVM / QEMU sur les distributions basées sur Debian et Enterprise Linux.
0xSheepdog
Comment "vérifiez la route IP et les paramètres associés sur Debian, vous verrez que l'adresse de passerelle pour Debian est 192.168.122.1"? @ 0xSheepdog
Tim
Je voudrais essayer l'utilitaire de base en ligne de commande pour vérifier les paramètres réseau ... ip routeDe la page de manuel fine: linux.die.net/man/8/ip
0xSheepdog
où dans la sortie de ip routemontre l'adresse de passerelle pour Debian? @ 0xSheepdog
Tim

Réponses:

3

Votre invité a une interface non-réalimentation, ens3; c'est l'interface qu'il utilise pour communiquer avec l'hôte. Sur l'hôte, l'interface correspondante est l'interface du même réseau, qui se trouve virbr0ici. Si vous voulez lister les interfaces qui font partie du pont, lancez

brctl show virbr0

sur l'hôte.

Vous pouvez également faire correspondre les itinéraires de l'invité à l'hôte: la passerelle de l'invité sera l'hôte. Pour voir les itinéraires, lancez

ip route list

La passerelle par défaut est donnée sur la ligne «par défaut», quelque chose comme

default via 192.168.122.1 dev ens3 proto static metric 100
Stephen Kitt
la source
Merci. brctl run virbr0ne fonctionne pas
Tim
Désolé, ça devrait être brctl show virbr0.
Stephen Kitt