将 /etc/network/interfaces 转换为 netplan 以获得浮动 IP

将 /etc/network/interfaces 转换为 netplan 以获得浮动 IP

我是 Ubuntu 18.04 上 netplan 的新手,今天才发现它存在。我有一个接口,我正尝试添加它以在 Google Cloud 上创建一个浮动 IP。它基于此示例: https://cloud.google.com/solutions/best-practices-floating-ip-addresses#implementing_option_4

我测试了这个示例,并且它可以工作,但是现在我尝试在 ubuntu 上执行同样的事情,但我不知道如何转换它:

cat << EOF >> /etc/network/interfaces
auto eth0:0
iface eth0:0 inet static
    address 10.190.1.1
    netmask 255.255.255.255
EOF

到 netplan。

的输出为ls /etc/netplan“50-cloud-init.yaml”。 的输出为cat /etc/netplan/*.yaml

network:
    version: 2
    ethernets:
        ens4:
            dhcp4: true
            match:
                macaddress: 42:01:0a:8e:00:3e
            set-name: ens4

我的ifconfig:

# ifconfig  ens4
ens4: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1460
    inet 10.142.0.62  netmask 255.255.255.255  broadcast 0.0.0.0
    inet6 fe80::4001:aff:fe8e:3e  prefixlen 64  scopeid 0x20<link>
    ether 42:01:0a:8e:00:3e  txqueuelen 1000  (Ethernet)
    RX packets 9430  bytes 1635180 (1.6 MB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 13383  bytes 1513428 (1.5 MB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

对于 netplan 来说,他所说的放入文件中的内容相当于什么?

答案1

首先,您的说法/etc/network/interfaces是错误的。您不能先请求“auth eth0”,然后再设置静态地址。

auto eth0:0
iface eth0:0 inet static
    address 10.190.1.1
    netmask 255.255.255.255

如果我明白您要做什么,那么这个 netplan .yaml 代码片段就是您所需的最少内容……

network:
  version: 2
  renderer: networkd
  ethernets:
    ens4:
      dhcp4: false
      dhcp6: false
      addresses:
        - 10.142.0.62/24 # server #1, 10.142.0.63/24 for server #2
        - 10.190.1.1/24  # floating IP in keepalived.conf
      gateway4: 10.142.0.1

假设:

  • 只有一个以太网接口,ens4:
  • 如果你有多端口以太网卡,我的 .yaml 需要额外的代码
  • Ubuntu Server 环境
  • 没有使用 NetworkManager

答案2

似乎你不能创建 eth0:0

看一下这个:https://netplan.io/examples

Multiple addresses on an interface
network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
     addresses:
       - 10.100.1.38/24
       - 10.100.1.39/24
     gateway4: 10.100.1.1

Multiple gateways and multiple ips

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
     addresses:
       - 9.0.0.9/24
       - 10.0.0.10/24
       - 11.0.0.11/24
     #gateway4:    # unset, since we configure routes below
     routes:
       - to: 0.0.0.0/0
         via: 9.0.0.1
         metric: 100
       - to: 0.0.0.0/0
         via: 10.0.0.1
         metric: 100
       - to: 0.0.0.0/0
         via: 11.0.0.1
         metric: 100

答案3

在 netplan 0.100 版本之前,不支持此功能。但是,0.100 版本添加了寿命标签属性地址值。

您可以使用以下命令检查已安装的 netplan 版本:dpkg -l | grep netplan

这个 .yaml 尚未测试,但应该接近您所追求的(或至少可以推动您朝着正确的方向发展):

network:
  version: 2
  renderer: networkd
  ethernets:
    ens4:
      dhcp6: no
      dhcp4: no
      optional: false
      addresses: 
        - 10.142.0.62/24
        - 10.190.1.1/24: 
            lifetime: 0
            label: "eth0:0"

相关内容