web-dev-qa-db-fra.com

Configurer le réseau 802.3ad lié à l'aide de netplan sous Ubuntu 18.04

Je rencontre quelques problèmes pour configurer netplan sur un serveur Ubuntu 18.04 afin de lier mes quatre ports Ethernet matériels nommés eno1, eno2, eno3, eno4 à l’aide du protocole 802.3ad. J'ai consulté le plan net page de manuel et mis en place le fichier de configuration suivant /etc/netplan/50-cloud-init.yaml:

network:
  version: 2
  renderer: networkd
  ethernets:
    eports:
      match: 
        name: eno*
  bonds:
    bond0:
      interfaces: [eports]
      addresses: [192.168.1.101/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]          
      parameters:
        mode: 802.3ad            
        lacp-rate: fast            
        mii-monitor-interval: 100

Lors de l'exécution de la commande Sudo netplan --debug apply, je reçois les informations suivantes:

** (generate:6473): DEBUG: 00:39:14.911: Processing input file //etc/netplan/50-cloud-init.yaml..
** (generate:6473): DEBUG: 00:39:14.911: starting new processing pass
** (generate:6473): DEBUG: 00:39:14.911: eports: setting default backend to 1
** (generate:6473): DEBUG: 00:39:14.911: bond0: setting default backend to 1
** (generate:6473): DEBUG: 00:39:14.912: Generating output files..
** (generate:6473): DEBUG: 00:39:14.912: NetworkManager: definition eports is not for us (backend 1)
** (generate:6473): DEBUG: 00:39:14.912: NetworkManager: definition bond0 is not for us (backend 1)
DEBUG:netplan generated networkd configuration exists, restarting networkd
DEBUG:no netplan generated NM configuration exists
DEBUG:device eno2 operstate is up, not replugging
DEBUG:netplan triggering .link rules for eno2
DEBUG:device lo operstate is unknown, not replugging
DEBUG:netplan triggering .link rules for lo
DEBUG:replug eno3: unbinding 0000:03:00.0 from /sys/bus/pci/drivers/igb
DEBUG:replug eno3: rebinding 0000:03:00.0 to /sys/bus/pci/drivers/igb
DEBUG:replug eno1: unbinding 0000:01:00.0 from /sys/bus/pci/drivers/igb
DEBUG:replug eno1: rebinding 0000:01:00.0 to /sys/bus/pci/drivers/igb
DEBUG:Cannot replug bond0: cannot read link /sys/class/net/bond0/device: [Errno 2] No such file or directory: '/sys/class/net/bond0/device'
DEBUG:netplan triggering .link rules for bond0
DEBUG:replug eno4: unbinding 0000:04:00.0 from /sys/bus/pci/drivers/igb
DEBUG:replug eno4: rebinding 0000:04:00.0 to /sys/bus/pci/drivers/igb

Je ne sais pas quoi faire de la déclaration

Cannot replug bond0: cannot read link /sys/class/net/bond0/device: [Errno 2] No such file or directory: '/sys/class/net/bond0/device'

puisque le répertoire /sys/class/net/bond0 a été généré par la commande netplan apply.

J'ai vérifié ma sortie ifconfig et mes périphériques réseau semblent être configurés correctement, à l'exception du fait qu'aucune adresse n'est définie pour bond0:

bond0: flags=5123<UP,BROADCAST,MASTER,MULTICAST>  mtu 1500
    ether XX:XX:XX:XX:XX:XX  txqueuelen 1000  (Ethernet)
    RX packets 112768  bytes 7785014 (7.7 MB)
    RX errors 0  dropped 54  overruns 0  frame 0
    TX packets 18854  bytes 2337896 (2.3 MB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eno1: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>  mtu 1500
    ether XX:XX:XX:XX:XX:XX  txqueuelen 1000  (Ethernet)
    RX packets 290  bytes 19322 (19.3 KB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 55  bytes 6820 (6.8 KB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    device memory 0xdf400000-df47ffff  

eno2: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>  mtu 1500
    ether XX:XX:XX:XX:XX:XX  txqueuelen 1000  (Ethernet)
    RX packets 73991  bytes 29824155 (29.8 MB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 20848  bytes 2110417 (2.1 MB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    device memory 0xdf300000-df37ffff  

eno3: flags=6147<UP,BROADCAST,SLAVE,MULTICAST>  mtu 1500
    ether XX:XX:XX:XX:XX:XX  txqueuelen 1000  (Ethernet)
    RX packets 0  bytes 0 (0.0 B)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 0  bytes 0 (0.0 B)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    device memory 0xdf200000-df27ffff  

eno4: flags=6147<UP,BROADCAST,SLAVE,MULTICAST>  mtu 1500
    ether XX:XX:XX:XX:XX:XX  txqueuelen 1000  (Ethernet)
    RX packets 0  bytes 0 (0.0 B)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 0  bytes 0 (0.0 B)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    device memory 0xdf100000-df17ffff  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
    inet 127.0.0.1  netmask 255.0.0.0
    inet6 ::1  prefixlen 128  scopeid 0x10<Host>
    loop  txqueuelen 1000  (Local Loopback)
    RX packets 2923  bytes 184477 (184.4 KB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 2923  bytes 184477 (184.4 KB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Les instructions ether XX:XX:XX:XX:XX:XX remplacent l'adresse mac de chaque interface. Dans la sortie d'origine, toutes les adresses sont les mêmes.

Qu'est-ce qui me manque pour configurer avec succès mon système?

1
n8tlarsen

Après quelques recherches, j'ai découvert qu'Ubuntu 18.04 utilisait un utilitaire appelé cloud-init pour gérer la configuration et l'initialisation du réseau au cours de la séquence de démarrage. Le fichier /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg et les autres fichiers .cfg servent à reconfigurer les paramètres cloud-init. Les paramètres de mon fichier de configuration sont les suivants:

network:
  version: 2
  ethernets:
    eports:
      match:
        name: eno*
      optional: true
  bonds:
    bond0:
      interfaces: [eports]
      addresses: [192.168.1.101/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
      parameters:
        mode: 802.3ad
        lacp-rate: fast
        mii-monitor-interval: 100

Le paramètre optional: true empêche le système d'attendre une connexion réseau valide au démarrage, ce qui vous évite d'avoir à attendre 2 minutes pour le démarrage de votre ordinateur. Après avoir mis à jour le fichier de configuration, exécutez la commande suivante pour mettre à jour votre configuration.

cloud-init clean -reboot

En variante, l’exécution de ce qui suit permet certaines informations de débogage sans redémarrer votre ordinateur; Cependant, un redémarrage sera nécessaire pour valider les modifications au cours des premières étapes de démarrage.

cloud-init clean
cloud-init init
cloud-init status 
2
n8tlarsen