web-dev-qa-db-fra.com

Netplan prend-il en charge les adresses DHCP et statiques sur une seule interface?

J'ai quelques installations d'Ubuntu Server 16 où le NIC obtient une adresse statique et une adresse DHCP à l'aide de la syntaxe interface:X dans le fichier/etc/network/interfaces.

auto eno1
iface eno1 inet static
        address 172.16.12.18
        netmask 255.255.252.0
        network 172.16.12.0
        broadcast 172.16.15.255
        gateway 172.16.12.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 172.16.0.3 172.16.8.7 8.8.8.8

auto eno1:1
iface eno1:1 inet static
        address 172.16.13.18
        netmask 255.255.252.0
        network 172.16.12.0
        broadcast 172.16.15.255
        gateway 172.16.12.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 172.16.0.3 172.16.8.7 8.8.8.8

auto eno1:0
iface eno1:0 inet dhcp

Ainsi, le serveur ci-dessus obtient les deux adresses statiques et une adresse DHCP ci-dessous.

$ ip addr show eno1
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 48:0f:cf:63:09:91 brd ff:ff:ff:ff:ff:ff
    inet 172.16.12.18/22 brd 172.16.15.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet 172.16.13.18/22 brd 172.16.15.255 scope global secondary eno1:1
       valid_lft forever preferred_lft forever
    inet 172.16.15.27/22 brd 172.16.15.255 scope global secondary eno1:0
       valid_lft forever preferred_lft forever

J'ai installé Ubuntu Server 18 hier et j'ai trouvé que netplan était le gestionnaire de réseau préféré. J'ai pu ajouter plusieurs adresses IP dans la configuration de yaml pour netplan, mais les adresses sont statiques. J'aimerais avoir une adresse statique et une adresse DHCP.

# cat /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      addresses: [ 172.16.9.250/22 , 172.16.10.250/22 ]
      gateway4: 172.16.8.1
      nameservers:
          search: [ staff.example.com , example.com ]
          addresses:
              - "172.16.8.7"
              - "172.16.0.3"

La raison pour laquelle je veux une statique et une dynamique est due à un correctif que j'ai trouvé sur le serveur NFS que j'ai configuré il y a quelques années. L'un des anciens ordinateurs Solaris ne pouvant pas se connecter à l'adresse 12.18 ci-dessus, j'ajouterais une autre adresse statique (et configurerais ensuite le serveur NFS pour obtenir une adresse DHCP), et le serveur Solaris pourrait monter le volume NFS sur les adresses IP supplémentaires. .

Est-il possible de configurer netplan pour obtenir une adresse DHCP et attribuer une adresse statique sur la même interface?

3
user38537

La solution était assez simple, il suffit de définir une adresse IP statique et d'activer le protocole DHCP. En gros, il vous suffit d'ajouter dhcp4: yes à votre configuration.

Cette configuration m'a donné une adresse IP statique principale et une adresse IP secondaire attribuée par DHCP:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: yes
      dhcp6: no
      addresses: 
        - 10.1.2.15/24
      gateway4: 10.1.2.1
      nameservers:
        search:
          - example.com
        addresses: [10.1.2.10]

Le résultat de ip address show enp0s3 m'a donné:

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:ab:cd:ef brd ff:ff:ff:ff:ff:ff
    inet 10.1.2.15/24 brd 10.0.1.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet 10.1.2.96/24 brd 10.0.1.255 scope global secondary dynamic enp0s3
       valid_lft 3224sec preferred_lft 3224sec
    inet6 fe80::a00:27ff:fe20:2c40/64 scope link 
       valid_lft forever preferred_lft forever

L'adresse 10.1.2.96 est l'adresse attribuée par DHCP secondaire, indiquée par les mots clés secondary dynamic.

3
user822833