web-dev-qa-db-fra.com

Itinéraires statiques Netplan avec interfaces Vlan

Le 18.04. J'essaie de configurer mon serveur avec 2 interfaces vlan. Chaque interface vlan aura une adresse IP distincte sur un sous-réseau distinct, et les deux seront liées à la même interface physique. Lorsque je configure les interfaces vlan, j'ai une connectivité à chaque sous-réseau différent via les vlans, mais je ne peux pas ajouter de routes supplémentaires. J'ai besoin d'ajouter une route par défaut avec un saut suivant sur l'un des sous-réseaux (vlan2000), puis une route statique vers un seul sous-réseau non connecté via l'autre vlan (vlan1000). Voici mon fichier de configuration netplan:

network:
renderer: NetworkManager
version: 2
ethernets:
    enp0s31f6: 
        routes:
            - to: 0.0.0.0/0
              via: 192.168.100.2
              metric: 100
            - to: 192.168.1.0/24
              via: 172.16.100.1
              metric: 10
vlans:
    vlan1000:
        id: 1000
        link: enp0s31f6
        addresses: [ "172.16.100.2/30" ]
    vlan2000:
        id: 2000
        link: enp0s31f6
        addresses: [ "192.168.100.2/24" ]

J'ai également essayé d'ajouter les itinéraires applicables sous chaque hiérarchie vlan sans succès - par exemple:

    vlans:
    vlan1000:
        id: 1000
        link: enp0s31f6
        addresses: [ "172.16.100.2/30" ]
        routes:
          - to: 0.0.0.0/0
          via: 192.168.100.2
          metric: 100

Avec les deux, après avoir appliqué la configuration, j'obtiens l'erreur suivante:

Traceback (most recent call last):
  File "/usr/sbin/netplan", line 23, in <module>
    netplan.main()
  File "/usr/share/netplan/netplan/cli/core.py", line 50, in main
    self.run_command()
  File "/usr/share/netplan/netplan/cli/utils.py", line 130, in run_command
    self.func()
  File "/usr/share/netplan/netplan/cli/commands/apply.py", line 43, in run
    self.run_command()
  File "/usr/share/netplan/netplan/cli/utils.py", line 130, in run_command
    self.func()
  File "/usr/share/netplan/netplan/cli/commands/apply.py", line 93, in command_apply
    stderr=subprocess.DEVNULL)
  File "/usr/lib/python3.6/subprocess.py", line 291, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['udevadm', 'test-builtin', 'net_setup_link', '/sys/class/net/vlan1000']' returned non-zero exit status 4.

Si je l'applique à nouveau, il passe, mais aucun des itinéraires n'est ajouté à la table de routage. Si je supprime entièrement les instructions de route, cela s'applique sans erreur. Je ne connais pas grand-chose à Netplan, mais cela semble être le problème. Je suppose donc que je fais quelque chose de mal dans la configuration. Où suis-je censé ajouter des routes statis pour les interfaces vlan?

FTR, lorsque j'ajoute les routes statiques manuellement:

 Sudo ip route add 192.168.1.0/24 via 172.16.100.1 dev vlan1000

tout fonctionne comme je m'y attendais. Ma préoccupation est que je ne crois pas que ces itinéraires ajoutés manuellement persisteront après un redémarrage. S'il est plus facile de contourner ces routes, je suis ouvert à cela.

Merci,

2
AMatechak
vlans:
vlan1000:
    id: 1000
    link: enp0s31f6
    addresses: [ "172.16.100.2/30" ]
    routes:
      - to: 0.0.0.0/0
      via: 192.168.100.2
      metric: 100

Indentation mise à part, cette configuration serait incorrecte car vous essayez ici d'ajouter une route à une interface qui n'est pas l'interface qui maintient la route vers sa passerelle. La route 0.0.0.0/0 devrait être répertoriée sous l'interface vlan2000, étant donné que c'est le réseau où se trouve votre route vers la passerelle (192.168.100.2).

Mais aussi, selon votre configuration, 192.168.100.2 est une adresse locale, ce qui signifie qu'il est incorrect de l'utiliser comme passerelle. Vous n'avez pas l'ensemble d'Internet (0.0.0.0/0) directement connecté à votre adresse d'hôte sur ce vlan. Votre itinéraire doit être configuré avec l'adresse IP de votre routeur comme valeur via, pas votre adresse locale.

0
slangasek