mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-10 05:54:42 +02:00
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>
This commit is contained in:
parent
d552abd2ef
commit
5bcf95b82e
19 changed files with 633 additions and 677 deletions
138
admin/reseau.md
138
admin/reseau.md
|
|
@ -1,138 +0,0 @@
|
|||
# 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`) :
|
||||
|
||||
```bash
|
||||
# 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`.
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# Vérifier (doit être = 1)
|
||||
sysctl net.ipv4.ip_forward
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## DNS — /etc/hosts storage-01
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue