====== 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é