NetPlan 未为 VLAN 应用静态 IP

NetPlan 未为 VLAN 应用静态 IP

我设置了一个新的Ubuntu 18.04 server,并花了一些时间与之斗争netplan。我只需要一个非常简单的网络配置,但由于某种原因它不起作用,我不知道哪里出了问题。

我需要一个VLAN带有的static IP

问题是:一旦我配置任何内容static IP(无论是在物理接口还是VLAN),我就会失去任何连接。

这是我当前的(不工作) yaml(它是唯一的 yaml,因此没有其他配置干扰)

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0: #the physical interface
    match:
      macaddress: "xx:xx:xx"
    dhcp4: no

    #this is the same IP I would get with dhcp
    addresses: [ "10.1.0.1/24" ]
    gateway4: 10.1.0.254
vlans:
  lab1:
    id: 10
    link: eth0
    dhcp4: no
    addresses: [ "10.1.10.100/24" ]

应用配置后,我得到以下 IF<->IP:
eth0 <-> 10.1.0.1
lab1 <-> 10.1.0.1

我无法通过sshping通过此 IP 连接到服务器。

运行后的配置netplan generate

10-netplan-eth0.网络

[Match]
MACAddress=xx:xx:xx

[Network]
Address=10.1.0.1/24
Gateway=10.1.0.254
VLAN=lab1

10-netplan-lab1.网络

[Match]
Name=lab1

[Network]
Address=10.1.10.100/24

10-netplan-lab1.netdev

[NetDev]
Name=lab1
Kind=vlan

[VLAN]
Id=10

如果我将其更改为dhcp4: yes并删除地址/网关,我将获得与上面静态配置的相同的地址DHCP,并ssh/ping使用该VLAN地址。

如果我更改eth0dhcp4: yes并保留 的静态配置lab1lab1则会获取DHCP分配的地址。

为什么静态地址会被lab1忽略?

注意:我确信交换/路由配置正确,但我愿意再次检查。

答案1

由于这个问题可能会引起其他人的看法,所以我想我会很快回答。

YAML 文件的语法必须正确,才能配置项目。使用“netplan --debug generate”检查文件以查看问题,否则生成和应用将配置任何有效的内容,并忽略其余内容(为了具有弹性 - 有总比没有好)。

在这种情况下,原作者对 vlan 部分的缩进是不正确的。它必须与“ethernets”标题对齐,从“network”标题缩进。应该是:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0: #the physical interface
    match:
      macaddress: "xx:xx:xx"
    dhcp4: no

    #this is the same IP I would get with dhcp
    addresses: [ "10.1.0.1/24" ]
    gateway4: 10.1.0.254
  vlans:
    lab1:
      id: 10
      link: eth0
      dhcp4: no
      addresses: [ "10.1.10.100/24" ]

相关内容