--- # Devis du MTU des invites — RELEVE seul. Ne modifie rien (D-23). # # Question posee : la carte d'une VM porte-t-elle le MTU de la zone a laquelle elle est # reellement attachee ? # # En SDN EVPN, VXLAN coute 50 octets : la zone est a 1450 quand le transport est a 1500. # Le MTU de la ZONE est pose par `make sdn-appliquer` cote hyperviseur — mais l'invite, # lui, nait a 1500 si sa carte ne l'herite pas explicitement (`mtu=1` chez Proxmox). # # CE QUE CA PRODUIT QUAND C'EST FAUX, et pourquoi ca merite une garde : la VM emet des # trames que son propre chemin ne peut pas encapsuler. La connexion s'etablit, les petites # requetes passent, les grosses reponses restent suspendues — le registre des flux la # decrit comme « la panne la plus couteuse a diagnostiquer », et c'est pour elle qu'il # declare l'ICMP « fragmentation necessaire ». # # INVISIBLE TANT QUE TOUTES LES VM VIVENT SUR LE MEME HYPERVISEUR : elles communiquent # alors par le pont local, sans encapsulation, et rien ne rencontre le 1450. Mesure du # 2026-08-10 : zones a 1450, les 14 invites a 1500, aucun symptome — parce que les 14 # etaient sur `asgard`. # # make mtu-mesurer - name: Relevé du MTU vu par les invités hosts: hotes_actifs become: false gather_facts: false tasks: - name: Lire le MTU de l'interface principale ansible.builtin.slurp: src: "/sys/class/net/{{ devis_mtu_interface | default('eth0') }}/mtu" register: devis_mtu_lu failed_when: false - name: Retenir le MTU de cet hôte ansible.builtin.set_fact: devis_mtu_hote: >- {{ (devis_mtu_lu.content | default('') | b64decode | trim | int) if devis_mtu_lu.content is defined else 0 }} - name: Déposer le relevé hosts: localhost connection: local become: false gather_facts: false tasks: - name: Écrire le relevé sur le contrôleur ansible.builtin.copy: dest: "{{ playbook_dir }}/../../instance/devis-mtu.json" mode: "0600" content: >- {{ {'invites': dict(groups['hotes_actifs'] | map('extract', hostvars, 'devis_mtu_hote') | list | zip(groups['hotes_actifs']) | map('reverse') | list), 'ponts': dict(groups['hotes_actifs'] | map('extract', hostvars, 'proxmox_pont') | list | zip(groups['hotes_actifs']) | map('reverse') | list)} | to_nice_json }}