61 lines
2.4 KiB
YAML
61 lines
2.4 KiB
YAML
|
|
---
|
||
|
|
# 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 }}
|