====== Convention de nommage ======
Cette page centralise les règles de nommage utilisées sur l'infrastructure : hostnames, adressage IP, VMID Proxmox, interfaces switch/pare-feu et règles de firewall OPNsense. Référencée depuis ''network:ipam'' plutôt que dupliquée.
===== Principe de base =====
Trois éléments distincts, à ne jamais mélanger dans un seul nom :
* **Hostname** — identité physique/logique stable de la machine
* **Nom de service** — ce qui est exposé via le reverse proxy, peut survivre à une migration de host
* **IP** — position réseau, gérée par l'IPAM, jamais encodée dans le nom
Ne pas encoder le VLAN dans le hostname (éviter ''srv-jellyfin-vlan40''). L'IPAM et le sous-réseau portent déjà cette information ; la dupliquer crée un point de désynchronisation en cas de migration de VLAN.
===== Domaine interne =====
domaine dédié à la résolution interne, distinct du domaine public :
homelab.lan
Résolu uniquement par Unbound.
===== Convention de hostname =====
Format : ''-[-nn]'', minuscules, tirets uniquement (compatibilité DNS/RFC1123 strict, pas d'underscore).
^ Préfixe ^ Usage ^ Exemple ^
| fw- | Pare-feu | fw-opnsense |
| sw- | Switch | sw-crs310 |
| ap- | Point d'accès | ap-eap225-salon |
| srv- | VM serveur | srv-jellyfin, srv-unbound |
| ct- | Conteneur LXC/Docker | ct-pihole, ct-traefik |
| nas- | Stockage | nas-backup |
| iot- | Objet connecté générique | iot-prise-salon |
| game- | Console/PC gaming | game-ps5-salon |
| pc- | Poste utilisateur | pc-bureau |
===== Allocation IP par tranche =====
Découpage identique appliqué sur les quatre VLANs.
^ Plage ^ Usage ^
| .1–.9 | Infra réseau (gateway, switch mgmt, AP) |
| .10–.99 | Réservations statiques (serveurs, services critiques) — documentées dans ''network:ipam'' |
| .100–.200 | Pool DHCP dynamique — non tracké manuellement |
| .201–.254 | Réservé / tests temporaires |
===== Commentaires interfaces (switch / trunk) =====
Format : ''-'' en PascalCase-avec-tirets.
Exemples en production sur le CRS310 : ''Trunk-AP-EAP225'', ''Access-Proxmox'', ''Uplink-OPNsense''.
===== Règles de pare-feu OPNsense =====
==== Format ====
[VLAN_SRC]___TO_
MAJUSCULES_SNAKE_CASE, underscore comme séparateur — distingue visuellement des hostnames (qui utilisent des tirets).
* **ACTION** explicite (ALLOW/BLOCK/REJECT) même si l'icône OPNsense l'indique déjà — facilite la recherche texte dans un export XML.
* **BLOCK vs REJECT** : distinction conservée dans le nom, pas uniquement dans le comportement (utile pour les règles REJECT ciblées, ex. feedback DNS rapide sur Guest).
* **Règles temporaires** : préfixe ''TMP_'' + date ISO **en commentaire uniquement**, jamais dans le nom de la règle (contrairement aux pages wiki, une règle firewall n'est pas de la documentation figée). Permet un grep ''TMP_'' périodique pour repérer les règles oubliées.
==== Alias ====
^ Préfixe alias ^ Contenu ^
| NET_ | Réseaux/CIDR (NET_TRUSTED, NET_HOMELAB) |
| HOST_ | IP unique (HOST_JELLYFIN) |
| PORT_ | Groupe de ports (PORT_WEB = 80,443) |
==== Mapping interfaces OPNsense → VLAN (état de production) ====
^ Interface OPNsense ^ VLAN ^ Remarque ^
| opt2 | TRUSTED (10) | Règle de blocage RFC1918 présente mais désactivée intentionnellement (accès complet voulu depuis ce poste) |
| opt3 | GUEST (20) | Pattern standard : DNS local, blocage RFC1918, accès internet |
| opt4 | IOT_GAMING (30) | Comprend un blocage DNS forcé (force la résolution via le résolveur local) |
| opt5 | WIREGUARD (VPN) | Sous-réseau tunnel 10.10.0.0/24, accès scopé vers Trusted et Homelab uniquement |
| opt6 | HOMELAB (40) | Bloqué par défaut vers les autres VLANs, accès internet autorisé |
| lan | Legacy (igc1, pré-VLAN) | Règles par défaut auto-générées, en cours de décommissionnement |
==== Exemple de jeu de règles renommé (VLAN Trusted) ====
TRUSTED_ALLOW_ANY_TO_HOMELAB
TRUSTED_ALLOW_DNS_TO_SELF
TRUSTED_ALLOW_ANY_TO_SELF
TRUSTED_ALLOW_ANY_TO_WIFI_CONTROLLER
TRUSTED_BLOCK_ANY_TO_RFC1918 # désactivée intentionnellement
TRUSTED_ALLOW_ANY_TO_ANY
TRUSTED_ALLOW_ANY_TO_WIREGUARD # redondante avec la règle précédente, conservée pour lisibilité