Problème d'interface de type bridge qui ne répond pas aux VM VirtualBox

Liste des GroupesRevenir à fcol configuration 
Sujet : Problème d'interface de type bridge qui ne répond pas aux VM VirtualBox
De : flaf (at) *nospam* me.invalid (François Lafont)
Groupes : fr.comp.os.linux.configuration
Date : 17. Aug 2022, 19:17:17
Autres entêtes
Organisation : Guest of ProXad - France
Message-ID : <62fd229d$0$22261$426a34cc@news.free.fr>
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0
Bonjour à tous,
J'ai une régression au niveau d'un bridge suite à un upgrade de
ma Ubuntu Desktop de la version 20.04 vers la version 22.04.
Comme vous allez voir, il est question de VirtualBox mais j'ai
l'impression que ce n'est pas lui qui est en cause ici.
Lorsque j'étais encore sous Ubuntu 20.04, j'avais ceci qui
fonctionnait très bien sur mon desktop :
1. Une interface br-virt qui était créée comme ceci via un script :
         ip link add br-virt type bridge
         ip address add 10.111.222.1/24 dev br-virt
         ip link set br-virt up
2. Et des VM sous VirtualBox (la version d'Oracle) qui avait la
configuration réseau suivante :
         Attached to: Bridged Adapter
         Name: br-virt
En clair, les VM étaient bridgées à mon interface br-virt.
Et avec tout ça, lorsque je démarrais une VM qui avait une IP
dans le réseau 10.111.222.0/24, j'avais, de ma machine physique
(ma Desktop Ubuntu 20.04), un accès réseau à ma VM. En gros ma
machine physique et les VM se trouvaient dans un réseau IP local
à ma machine. Ça me semble quelque chose de plutôt classique.
Mon souci, c'est que depuis que j'ai migré ma machine physique
en Ubuntu 22.04, tout ceci ne marche plus du tout, je ne pingue
plus mes VM. Alors bien sûr, Virtualbox a lui aussi été mis à
jour quand je suis passé en 22.04 mais j'ai l'impression que
ce n'est pas lui le souci (voir ci-dessous).
Déjà, pour info, quand j'étais sous Ubuntu 20.04 j'avais les
versions suivantes :
* le noyau: 5.4.0-122-generic
* Virtualbox: 6.1.36-152435~Ubuntu~focal
Et une fois que je suis passé sous Ubuntu 22.04 :
* le noyau: 5.15.0-46-generic
* Virtualbox: 6.1.36-152435~Ubuntu~jammy
   (en fait c'est la même version du Virtualbox au final)
Les commandes pour créer mon bridge n'ont absolument pas
changé après la migration de la distribution, ce sont les mêmes
que ci-dessus. Au passage, j'ai une autre machine (un laptop)
avec globalement la même configuration que mon desktop mais qui
est toujours en Ubuntu 20.04 (pas encore migrée en 22.04) et je
constate une différence.
Avec le laptop toujours en 20.04, j'ai ceci :
---------------------------------------
$ ip -j l show dev br-virt | jq
[
   {
     "ifindex": 4,
     "ifname": "br-virt",
     "flags": [
       "BROADCAST",
       "MULTICAST",
       "UP",
       "LOWER_UP"
     ],
     "mtu": 1500,
     "qdisc": "noqueue",
     "operstate": "UNKNOWN",
     "linkmode": "DEFAULT",
     "group": "default",
     "txqlen": 1000,
     "link_type": "ether",
     "address": "06:f5:51:c3:81:1e",
     "broadcast": "ff:ff:ff:ff:ff:ff"
   }
]
$ ip -j a show dev br-virt | jq
[
   {
     "ifindex": 4,
     "ifname": "br-virt",
     "flags": [
       "BROADCAST",
       "MULTICAST",
       "UP",
       "LOWER_UP"
     ],
     "mtu": 1500,
     "qdisc": "noqueue",
     "operstate": "UNKNOWN",
     "group": "default",
     "txqlen": 1000,
     "link_type": "ether",
     "address": "06:f5:51:c3:81:1e",
     "broadcast": "ff:ff:ff:ff:ff:ff",
     "addr_info": [
       {
         "family": "inet",
         "local": "10.111.222.1",
         "prefixlen": 24,
         "scope": "global",
         "label": "br-virt",
         "valid_life_time": 4294967295,
         "preferred_life_time": 4294967295
       },
       {
         "family": "inet6",
         "local": "fe80::4f5:51ff:fec3:811e",
         "prefixlen": 64,
         "scope": "link",
         "valid_life_time": 4294967295,
         "preferred_life_time": 4294967295
       }
     ]
   }
]
---------------------------------------
Alors que sur la Ubuntu migrée en 22.04, j'ai cela :
---------------------------------------
$ ip -j l show dev br-virt | jq
[
   {
     "ifindex": 17,
     "ifname": "br-virt",
     "flags": [
       "NO-CARRIER",
       "BROADCAST",
       "MULTICAST",
       "UP"
     ],
     "mtu": 1500,
     "qdisc": "noqueue",
     "operstate": "DOWN",
     "linkmode": "DEFAULT",
     "group": "default",
     "txqlen": 1000,
     "link_type": "ether",
     "address": "9a:aa:18:5f:0f:ee",
     "broadcast": "ff:ff:ff:ff:ff:ff"
   }
]
$ ip -j a show dev br-virt | jq
[
   {
     "ifindex": 17,
     "ifname": "br-virt",
     "flags": [
       "NO-CARRIER",
       "BROADCAST",
       "MULTICAST",
       "UP"
     ],
     "mtu": 1500,
     "qdisc": "noqueue",
     "operstate": "DOWN",
     "group": "default",
     "txqlen": 1000,
     "link_type": "ether",
     "address": "9a:aa:18:5f:0f:ee",
     "broadcast": "ff:ff:ff:ff:ff:ff",
     "addr_info": [
       {
         "family": "inet",
         "local": "10.111.222.1",
         "prefixlen": 24,
         "scope": "link",
         "label": "br-virt",
         "valid_life_time": 4294967295,
         "preferred_life_time": 4294967295
       }
     ]
   }
]
---------------------------------------
On peut constater que le flag NO-CARRIER est présent
sur la Ubuntu 22.04 et pas sur la 20.04. De plus, le
operstate est DOWN sur la 22.04 alors qu'il est indiqué
UNKNOWN sur la 20.04. Je ne sais pas si cette différence
est une piste... C'est étrange qu'exactement les mêmes
commandes de création d'un bridge ne produisent pas la
même sorite au final.
Je reviens sur ma Ubuntu 22.04 où j'ai mon souci. J'ai
une VM bridgée sur br-virt et qui possède l'adresse IP
10.111.222.19/24 avec pour gateway 10.111.222.1 (l'IP
de br-virt elle-même). Sur cette VM, je tente un ping
vers l'IP de br-virt :
---------------------------------------
~# ping -n 10.111.222.1
PING 10.111.222.1 (10.111.222.1) 56(84) bytes of data.
 From 10.111.222.19 icmp_seq=1 Destination Host Unreachable
 From 10.111.222.19 icmp_seq=2 Destination Host Unreachable
 From 10.111.222.19 icmp_seq=3 Destination Host Unreachable
 From 10.111.222.19 icmp_seq=4 Destination Host Unreachable
...
---------------------------------------
Aucune réponse. Au même moment, sur la machine physique, je
tente un tcpdump sur l'interface br-virt :
---------------------------------------
$ sudo tcpdump -nn -i br-virt
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on br-virt, link-type EN10MB (Ethernet), snapshot length 262144 bytes
18:40:38.553085 ARP, Request who-has 10.111.222.1 tell 10.111.222.19, length 46
18:40:39.577201 ARP, Request who-has 10.111.222.1 tell 10.111.222.19, length 46
18:40:40.601450 ARP, Request who-has 10.111.222.1 tell 10.111.222.19, length 46
18:40:41.625206 ARP, Request who-has 10.111.222.1 tell 10.111.222.19, length 46
18:40:42.649061 ARP, Request who-has 10.111.222.1 tell 10.111.222.19, length 46
18:40:43.673570 ARP, Request who-has 10.111.222.1 tell 10.111.222.19, length 46
18:40:44.697205 ARP, Request who-has 10.111.222.1 tell 10.111.222.19, length 46
18:40:45.721190 ARP, Request who-has 10.111.222.1 tell 10.111.222.19, length 46
18:40:46.745489 ARP, Request who-has 10.111.222.1 tell 10.111.222.19, length 46
18:40:47.769201 ARP, Request who-has 10.111.222.1 tell 10.111.222.19, length 46
...
---------------------------------------
Je constate que la requête ARP whos-has arrive bien à destination de
l'interface br-virt, et que donc de ce point de vue Virtualbox fait
bien son travail. Mais mon interface br-virt ne répond jamais à ces
requêtes ARP. Pourquoi ? 10.111.222.1 c'est pourtant son adresse à
elle.
Ensuite, je tente juste une petite expérience. Sur la VM, puisque
le who-has ne fonctionne pas, je rentre moi-même dans le cache ARP
l'adresse MAC de br-virt. Sur la VM, je fais donc ceci :
---------------------------------------
# L'interface « WAN » de la VM s'appelle enp0s3.
~# ip neigh change 10.111.222.1 lladdr 9a:aa:18:5f:0f:ee dev enp0s3
---------------------------------------
Puis, toujours sur la VM, je retente un ping, et là toujours aucune
réponse :
---------------------------------------
~# ping -n 10.111.222.1
PING 10.111.222.1 (10.111.222.1) 56(84) bytes of data.
... # rien ne s'affiche
---------------------------------------
Mais comme cette fois-ci, la VM connaît l'adresse MAC qui correspond
à l'adresse 10.111.222.1, la requête "echo request" arrive bien à
destination :
---------------------------------------
$ sudo tcpdump -nn -i br-virt
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on br-virt, link-type EN10MB (Ethernet), snapshot length 262144 bytes
18:48:01.526413 IP 10.111.222.19 > 10.111.222.1: ICMP echo request, id 49452, seq 1, length 64
18:48:02.553072 IP 10.111.222.19 > 10.111.222.1: ICMP echo request, id 49452, seq 2, length 64
18:48:03.577111 IP 10.111.222.19 > 10.111.222.1: ICMP echo request, id 49452, seq 3, length 64
18:48:04.601017 IP 10.111.222.19 > 10.111.222.1: ICMP echo request, id 49452, seq 4, length 64
18:48:05.625070 IP 10.111.222.19 > 10.111.222.1: ICMP echo request, id 49452, seq 5, length 64
18:48:06.649096 IP 10.111.222.19 > 10.111.222.1: ICMP echo request, id 49452, seq 6, length 64
18:48:07.673002 IP 10.111.222.19 > 10.111.222.1: ICMP echo request, id 49452, seq 7, length 64
...
---------------------------------------
Là aussi, on voit bien que les requêtes ICM arrivent bien à l'interface
br-virt mais celle-ci ne répond jamais, alors que 10.111.222.1 est
pourtant bien une adresse de cette interface.
Du coup, j'ai l'impression que le souci n'est pas côté Virtualbox mais
plutôt sur côté de la machine physique où le noyau Linux ne gère plus
tout à fait de la même manière une interface de type bridge entre
Ubuntu 20.04 (où ça marchait) et Ubuntu 22.04. Mon interface br-virt
reste totalement silencieuse pour des requêtes qui proviennent de ma
VM. En revanche, sur la machine physique je peux bien pinguer l'IP
de br-virt, pas de souci. En revanche, de la machine physique, je ne
peux pas pinguer l'IP de la VM 10.111.222.19 (j'ai « Destination
Host Unreachable »).
Je reste suis un peu coincé. Si jamais vous avez des pistes à me
proposer, ce serait sympa. :)
Merci d'avance pour votre aide.
François Lafont

Date Sujet#  Auteur
17 Aug 22 * Problème d'interface de type bridge qui ne répond pas aux VM VirtualBox17François Lafont
17 Aug 22 `* Re: Problème d'interface de type bridge qui ne répond pas aux VM VirtualBox16Pascal Hambourg
18 Aug 22  `* Re: Problème d'interface de type bridge qui ne répond pas aux VM VirtualBox15François Lafont
18 Aug 22   +* Re: Problème d'interface de type bridge qui ne répond pas aux VM VirtualBox13Pascal Hambourg
18 Aug 22   i`* Re: Problème d'interface de type bridge qui ne répond pas aux VM VirtualBox12François Lafont
18 Aug 22   i +* Re: Problème d'interface de type bridge qui ne répond pas aux VM VirtualBox4François Lafont
18 Aug 22   i i`* Re: Problème d'interface de type bridge qui ne répond pas aux VM VirtualBox3Marc SCHAEFER
18 Aug 22   i i `* Re: Problème d'interface de type bridge qui ne répond pas aux VM VirtualBox2flaf flaf
18 Aug 22   i i  `- Re: Problème d'interface de type bridge qui ne répond pas aux VM VirtualBox1Marc SCHAEFER
19 Aug 22   i `* Re: Problème d'interface de type bridge qui ne répond pas aux VM VirtualBox7Pascal Hambourg
19 Aug 22   i  `* Re: Problème d'interface de type bridge qui ne répond pas aux VM VirtualBox6flaf
19 Aug 22   i   +* Re: Problème d'interface de type bridge qui ne répond pas aux VM VirtualBox4Pascal Hambourg
19 Aug 22   i   i`* Re: Problème d'interface de type bridge qui ne répond pas aux VM VirtualBox3flaf
19 Aug 22   i   i `* Re: Problème d'interface de type bridge qui ne répond pas aux VM VirtualBox2Pascal Hambourg
19 Aug 22   i   i  `- Re: Problème d'interface de type bridge qui ne répond pas aux VM VirtualBox1flaf
19 Aug 22   i   `- Re: Problème d'interface de type bridge qui ne répond pas aux VM VirtualBox1Pascal Hambourg
18 Aug 22   `- Re: Problème d'interface de type bridge qui ne répond pas aux VM VirtualBox1Marc SCHAEFER

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal