Ajouter une route statique pour atteindre d'autres réseaux

Bonjour,

Désolé mais les précédentes commandes ne fonctionnent plus. Il faut à nouveau que je cherche comment faire : Je ne suis pour ma part plus impacté car j’ai changé ma configuration réseau en mettant du Unifi.

J’ai créé un script tout bête dans /etc/if-up.d contenant mon ip route… mais le script disparait au reboot !! il est pourtant bien dans le dossier avant arret du systeme, je comprends pas tout (loin de là :roll_eyes:.

Bon je crois que j’avais juste un problème d’accès avec le module « Advanced SSH & Web Terminal », qui malgrés la désactivation du mode protégé ne me mentionnait que nmcli était absent…
En se connectant via la console système de la vm, puis accès à la ligne de commande par « login », j’ai bien accès à nmcli et je peux faire la modif indiquée par crampes2.
Désolé pour le dérangement, c’est tout bon !

Ca signifie @remsum que ma procédure est toujours fonctionnelle ?

Bonjour à toutes et à tous,

J’ai eu ce besoin d’atteindre un autre réseau (mon réseau iot) et j’ai tenté cette procédure qui n’a pas fonctionné. Je pense qu’avec les mises à jour, elle n’est plus valable.

Mais bonne nouvelle, j’ai réussi à mettre en place une route statique autrement et à mon humble avis, cette procédure est même plus simple que celle qui est décrite ici.

Voici ma procédure :

Création du script

Dans configuration.yaml , ajouter :

command_line:
  - binary_sensor:
      name: "Statut Route Reseau IOT"
      unique_id: route_iot_status
      command: "ip route show 192.168.A.0/24 | grep -q 'via' && echo 'ON' || echo 'OFF'"
      device_class: connectivity
      scan_interval: 60 # Vérification toutes les minutes
      payload_on: "ON"
      payload_off: "OFF"

shell_command:
  add_static_route: 'ip route add 192.168.A.0/24 via 192.168.C.D'

Au début j’avais mis add à la place de replace mais ça provoquait des erreurs si la route existait déjà et que le script était lancé. Remplacer A par le numéro de votre réseau iot, et C.D par la terminaison de l’IP de votre routeur iot sur le réseau principal.

Plus tard j’ai créé le binary_sensor car parfois la table de routage sautait (pour l’instant je n’ai pas trouvé la raison), et j’ai alors rajouté un trigger dans l’automatisation en fonction de l’état de ce sensor.

Création de l’automate

Créer une automatisation qui lance ce script au démarrage de HA :

alias: Set route to IOT network
description: ""
triggers:
  - trigger: homeassistant
    event: start
  - trigger: state
    entity_id:
      - binary_sensor.statut_route_reseau_iot
    to:
      - "off"
conditions: []
actions:
  - action: shell_command.add_static_route
    metadata: {}
    data: {}
    response_variable: OK_route_IOT
mode: single

réglage du firewall du routeur

Le mode de réglage dépend de votre type de routeur mais globalement :

  • il faut accepter toutes les connections depuis IOT vers HA (et uniquement HA)
  • bloquer tout le trafic vers le réseau privé (sauf HA du coup)
  • accepter toutes les connections depuis HA vers le réseau iot
  • bloquer tout le trafic depuis le réseau privé vers iot (sauf depuis HA du coup)
  • définir la box internet comme passerelle internet pour donner l’accés internet (services cloud accessibles si nécessaire)
  • configurer un répéteur mDNS SSDP multicast (par exemple avahi) pour que HA découvre les nouveaux iot comme un grand.

problèmes

Les erreurs aux lancements multiples du script ont été réglées en changeant ip route add par ip route replace. Les soucis de route qui saute de façon intempestive (mise à jour…) ont été résolus avec le binary_sensor et le trigger associé.