web-dev-qa-db-fra.com

Reproduire un ensemble de commandes ip dans netplan

J'ai récemment mis à jour ubuntu 18.04 à partir de 16.04 et j'essaie de comprendre comment obtenir les commandes ip route et ip rule que j'avais l'habitude de mettre dans /etc/network/interfaces en travaillant sous netplan.

Voici les commandes que j'essaie de reproduire, que j'avais précédemment exécutées dans /etc/network/interfaces:

Sudo ip rule add table 129 from 192.168.1.160
Sudo ip route add table 129 to 204.8.230.0/24 dev enp0s3
Sudo ip route add table 129 to 192.168.1.0/24 dev enp0s3
Sudo ip route add table 129 default via 192.168.1.1

Ceci est mon premier passage à la configuration de netplan dans /etc/netplan/01-netcfg.yaml:

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: yes
      routes:
        - from: 192.168.1.160
          to: 204.8.230.0/24
          via: 192.168.1.1
        - from: 192.168.1.160
          to: 192.168.1.0/24
          via: 192.168.1.1

Cependant, après un redémarrage, ces itinéraires n'apparaissent pas dans la sortie ip route. Comment puis-je obtenir ces itinéraires à coller?

Notez que j'ai aussi essayé de mettre ces commandes dans un script dans /usr/lib/networkd-dispatcher/routable.d en me basant sur une documentation que j'ai trouvée, mais cela ne semble pas avoir fonctionné non plus.

EDIT: Je me rapproche. Ceci est la nouvelle configuration, mais le problème est que, bien que la table apparaisse dans ip rule, ip route show table 129 est vide:

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: yes
      routing-policy:
        - from: 192.168.1.160
          table: 129
      routes:
        - to: 204.8.230.0/24
          via: 192.168.1.1
          table: 129
        - to: 192.168.1.0/24
          via: 192.168.1.1
          table: 129
        - to: 0.0.0.0/0
          via: 192.168.1.1
          table: 129

Je suis sur netplan version 0.36.1

7
basepi

Je l'ai compris. Le problème était que systemd-networkd essayait de définir les routes avant que le réseau ne soit opérationnel, ce qui échouait. Le correctif est on-link: True sur les routes:

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: yes
      routing-policy:
        - from: 192.168.1.160
          table: 129
      routes:
        - to: 204.8.230.0/24
          via: 192.168.1.1
          table: 129
          on-link: True
        - to: 192.168.1.0/24
          via: 192.168.1.1
          table: 129
          on-link: True
        - to: 0.0.0.0/0
          via: 192.168.1.1
          table: 129
          on-link: True
9
basepi