Funk-lab/admin/infra/reseau.md
alkatrazz 5bcf95b82e docs: réorganisation complète de admin/ en 4 domaines thématiques
Structure avant : 20 fichiers à plat dans admin/ — difficile à naviguer.
Structure après : 4 sous-répertoires thématiques + index clair.

Réorganisation :
  admin/ops/    → cluster.md, ansible.md, systeme.md
  admin/infra/  → reseau.md, nfs.md, dnsmasq.md, ssh.md
  admin/k8s/    → talos.md, argocd.md, monitoring.md
  admin/ia/     → llama_server.md, rocm.md, litellm.md, hermes.md

Suppressions :
  - ask-agent.md : contenu fusionné dans ia/hermes.md (section ask-agent)
  - lm_studio.md : obsolète (LM Studio remplacé par llama-server)

Mises à jour contenu :
  - ia/hermes.md : fusion complète avec ask-agent.md (profils, skills,
    SOUL.md, ask-agent CLI, dépannage) — doc unifiée sans redondance
  - ops/cluster.md : section GitOps réduite à 2 lignes + lien argocd.md
  - incidents.md : tableau de résumé en tête + 4 nouveaux incidents
    (Grafana OOMKilled, AlertManager null receiver, llama-server 501,
    nftables règle après drop)
  - README.md : réécrit — navigation rapide + index par domaine

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 00:47:58 +02:00

3.7 KiB

Réseau — nftables, routage, NAT

Tout ce qui suit s'exécute sur storage-01 sauf mention contraire.


Interfaces réseau storage-01

Interface IP Rôle
enp4s0 192.168.1.200 WAN — vers Freebox (LAN domestique)
enp6s0f3u2c2 192.168.10.1 LAN cluster — vers machines

Noms contre-intuitifs : enp6s0f3u2c2 est une carte USB-Ethernet (cluster), enp4s0 est la carte PCIe (WAN).


Route statique poste perso

Pour atteindre le LAN cluster depuis le poste (192.168.1.10) :

# Route permanente (NetworkManager)
nmcli connection modify enp12s0 +ipv4.routes "192.168.10.0/24 192.168.1.200"
nmcli connection up enp12s0

# Vérifier
ip route | grep 192.168.10
ping 192.168.10.20   # gpu-01

La route statique Freebox (192.168.10.0/24 → 192.168.1.200) est aussi configurée dans l'interface Freebox pour que tous les équipements du LAN domestique puissent atteindre le cluster.


nftables

Géré par Ansible — rôle gateway, template nftables.conf.j2. Ne jamais modifier manuellement — les changements seront écrasés au prochain ansible-playbook.

# Voir toutes les règles actives
sudo nft list ruleset

# Voir les paquets bloqués (logs kernel)
sudo journalctl -k | grep nft-drop

# Recharger après modification manuelle d'urgence
sudo systemctl reload nftables

# Appliquer via Ansible (méthode correcte)
ansible-playbook -i inventory.yml playbooks/storage-01.yml --tags gateway

Ports ouverts

Port Proto Source Service
22 TCP 192.168.1.0/24, 192.168.10.0/24 SSH
53 TCP/UDP 192.168.10.0/24 DNS (dnsmasq)
111, 2049 TCP/UDP 192.168.10.0/24 NFS
5432 TCP 192.168.10.0/24 PostgreSQL
6333, 6334 TCP 192.168.10.0/24 Qdrant
8080 TCP 192.168.1.0/24, 192.168.10.0/24 Hermes gateway
9000, 9001 TCP 192.168.10.0/24 MinIO
9093 TCP 192.168.10.0/24 AlertManager webhook (réception alertes Prometheus)
9100 TCP 192.168.10.0/24 node_exporter (métriques Prometheus — inclut ROCm via textfile_collector)
9119 TCP 192.168.1.10 uniquement Hermes dashboard

Règle nftables importante : les règles doivent être insérées avant la règle drop terminale. Utiliser nft insert rule inet filter input position <handle_avant_drop> et non nft add rule (qui ajoute en fin de chaîne, après le drop). Vérifier l'ordre : sudo nft -n -a list chain inet filter input

Forwarding

LAN domestique (192.168.1.0/24) → LAN cluster (192.168.10.0/24) : new+established (admin)
LAN cluster → WAN : new+established (NAT sortant pour les nœuds)
WAN → LAN cluster : established+related uniquement (réponses NAT)

IP Forwarding

# Vérifier (doit être = 1)
sysctl net.ipv4.ip_forward

DNS — /etc/hosts storage-01

cat /etc/hosts
# 192.168.10.20 gpu-01   ← ajouté manuellement (dnsmasq non utilisé par storage-01 lui-même)

storage-01 utilise 1.1.1.1 / 9.9.9.9 comme resolvers, pas son propre dnsmasq. Les entrées critiques doivent être dans /etc/hosts.


Debug NAT / forwarding

# Depuis gpu-01 — vérifier que le trafic sort par storage-01
ssh gpu-01 "curl -s https://ifconfig.me"    # doit retourner l'IP publique Freebox
ssh gpu-01 "traceroute 8.8.8.8"

# Paquets passant par le NAT
sudo nft list table ip nat

# Tester le routage depuis le poste perso
traceroute 192.168.10.20
ping 192.168.10.11   # compute-01

Commandes utiles

# Table de routage storage-01
ip route show

# Stats trafic interfaces
ip -s link show enp4s0
ip -s link show enp6s0f3u2c2

# Connexions actives
ss -tnp