How to add a static secondary IP to a DHCP interface using netplan?

Tor*_*ger 6 dhcp static-ip linux-networking netplan

我的服务器有一个文件 /etc/netplan/50-cloud-init.yaml ,内容如下:

# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    version: 2
    ethernets:
        ens3:
            dhcp4: true
            match:
                macaddress: fa:**:**:**:**:**
            set-name: ens3
Run Code Online (Sandbox Code Playgroud)

这导致以下接口配置:

2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc fq_codel state UP group default qlen 1000
    link/ether fa:**:**:**:**:** brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.5/24 brd 10.0.0.255 scope global dynamic ens3
       ...
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好。但是现在我需要将 10.0.0.250 作为附加的辅助静态 IP 添加到此接口。最好的方法是什么?我创建了一个新文件 /etc/netplan/60-service-ip.yaml :

network:
    version: 2
    ethernets:
        ens3:
            addresses:
              - 10.0.0.5/24
              - 10.0.0.250/24
Run Code Online (Sandbox Code Playgroud)

这似乎有效,但它将动态 IP 重新定义为静态 IP。

Bro*_*oco 6

实际上更简单,您只需dhcp4: true像这样添加到静态配置中(如果不需要,请禁用 v6):

network:
    version: 2
    ethernets:
        ens3:
            dhcp4: yes
            dhcp6: no
            addresses:
              - 10.0.0.250/24
Run Code Online (Sandbox Code Playgroud)


Len*_*iey 3

在询问 Ubuntu 上回答

复制:

解决办法很简单,只需设置静态IP地址并启用DHCP即可。基本上你只需要添加dhcp4: yes到你的配置中。

此配置为我提供了一个主要静态 IP 地址和一个辅助 DHCP 分配的 IP 地址:

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]
Run Code Online (Sandbox Code Playgroud)

ip 地址显示 enp0s3 的结果给了我:

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
Run Code Online (Sandbox Code Playgroud)

地址 10.1.2.96 是辅助 DHCP 分配的地址,如辅助动态关键字所示。

  • 不幸的是,这会导致 DHCP 地址成为辅助地址。但是,它必须是主要的才能使传出连接正常工作。 (2认同)