Liaisons de secours de la passerelle
Quand la box tombe, la passerelle bascule seule sur une liaison de secours : un port ethernet libre, le partage de connexion d’un téléphone en wifi… La zone garde Internet en mode dégradé, puis revient sur la box dès qu’elle répond.
Principe
Section intitulée « Principe »Chaque lien vers Internet (la WAN, puis les secours) porte sa propre route par défaut. La plus basse métrique l’emporte.
| Lien | Métrique |
|---|---|
| WAN (la box) | 100 |
| Liaison de secours | 200 + 10 × priority (300 par défaut) |
| Lien de retour, en probation | métrique + 10000 |
| Lien sans Internet | métrique + 20000 |
Trois situations sont couvertes :
| Situation | Détection | Effet |
|---|---|---|
| Câble débranché, box éteinte, plus de bail DHCP | la route de la WAN disparaît | le noyau prend la route suivante |
| Box allumée mais Internet coupé | la sonde dnf-uplink-monitor échoue 3 fois (environ 40 secondes) | la WAN passe à 20100, le secours prend le relais |
| Internet revenu sur la box | 6 sondes réussies | retour sur la WAN |
| Câble débranché ou changé, box redémarrée, 3 tours sans route | perte de porteuse ou de route | le lien revient en probation (10100), puis retrouve sa place après 6 sondes réussies |
La sonde envoie un ping par chaque lien (1.1.1.1 et 9.9.9.9, toutes les 10 secondes). Elle ne dépend pas du DNS : elle vise des adresses IP.
Les deux types de liaison n’attendent pas de la même façon :
| Type | En attente | Réveil |
|---|---|---|
ethernet | connecté, sans trafic (la métrique garde tout sur la box) | immédiat |
wifi | radio coupée (rfkill) : aucune connexion au partage | dès qu’aucun lien préféré n’atteint Internet |
Déclarer une liaison de secours
Section intitulée « Déclarer une liaison de secours »-
Repérer l’interface sur la passerelle :
Fenêtre de terminal ip -br linkElle doit être libre : ni la WAN, ni un port du LAN, ni la radio d’un point d’accès wifi.
-
Déclarer la liaison dans le fichier de l’hôte :
usr/machines/gw/configuration.nix darkone.host.gateway.backupLinks = {phone = {type = "wifi";interface = "wlp4s0";};voisin = {type = "ethernet";interface = "enp3s0";priority = 20;};};Option Rôle typeethernet(client DHCP) ouwifi(client WPA2/WPA3)interfaceinterface qui porte le lien priority1 à 99, la plus basse est préférée parmi les secours -
Pour un lien wifi, saisir le SSID et la passphrase dans sops avec
just sops:usr/secrets/secrets.yaml backup-link:phone:ssid: "Partage du téléphone"psk: "passphrase-du-partage"Le SSID et la passphrase ne passent jamais par le store Nix.
-
Déployer :
Fenêtre de terminal just apply gw
Vérifier
Section intitulée « Vérifier »networkctl list # le lien est « routable » quand il est actifip -4 route show default # la première ligne est le lien utilisérfkill # radio wifi de secours « bloqué » en veillejournalctl -u dnf-uplink-monitor -f # bascules et réveils radio, en directAvec la box en panne et le téléphone en partage de connexion :
default via 192.168.1.254 dev enp1s0 proto dhcp src 192.168.1.10 metric 20100default via 192.168.43.1 dev wlp4s0 proto dhcp src 192.168.43.20 metric 300Régler la sonde
Section intitulée « Régler la sonde »| Option | Défaut | Rôle |
|---|---|---|
darkone.host.gateway.linkCheck.targets | 1.1.1.1, 9.9.9.9 | adresses pingées, une réponse suffit |
darkone.host.gateway.linkCheck.interval | 10 | secondes entre deux tours |
darkone.host.gateway.linkCheck.failAfter | 3 | échecs avant de pénaliser un lien |
darkone.host.gateway.linkCheck.recoverAfter | 6 | succès avant de le rétablir |
Supervision
Section intitulée « Supervision »La sonde publie trois métriques pour Prometheus :
| Métrique | Valeur |
|---|---|
dnf_gateway_link_up | 1 si le lien a une route et atteint Internet |
dnf_gateway_link_active | 1 sur le lien qui porte la route par défaut |
dnf_gateway_link_standby | 1 sur une radio wifi de secours coupée en attente |
L’alerte GatewayOnBackupLink (avertissement) se déclenche après 2 minutes sur
une liaison de secours.
Limites à connaître
Section intitulée « Limites à connaître »| Limite | Détail |
|---|---|
| Flux coupés à la bascule | les connexions en cours repartent par le nouveau lien (appel ou téléchargement à relancer) |
| Sous-réseau en conflit | un lien qui distribue des adresses du réseau de la zone (ex. 10.0.0.0/16) casse le routage ; un partage de téléphone utilise un petit réseau distinct (/24), sans conflit en pratique |
| SSID et passphrase | sans guillemet double (") |
| Déverrouillage LUKS à distance | par la WAN ou le LAN seulement |
| Liaisons retirées | une pénalité en cours reste jusqu’au redémarrage : supprimer /run/systemd/network/*.network.d/90-dnf-penalty.conf, puis networkctl reload |