netcfg.yaml 文件中的网络定义错误:未知密钥隧道

netcfg.yaml 文件中的网络定义错误:未知密钥隧道

我正在使用 Ubuntu 18.04 bionic。

当我尝试在 netcfg.yaml 文件中配置 GRE 隧道时遇到错误:

网络定义 //etc/netplan/01-netcfg.yaml 第 x 行第 x 列错误:未知的密钥隧道。

yaml 配置如下所示:

Yaml 配置截图

network:
  version: 2
  renderer: networkd
  ethernets:
    ens01:
        addresses : [10.201.x.yyy/24]
        gateway4: 10.201.x.254  
        nameservers:
            addresses: [10.200.nn.tt]
        dhcp4: no
    ens02:
        dhcp4: no
        addresses : [10.200.aa.dd/24]
        routes:
        - to: 10.200.hh.0/24
          via: 10.200.aa.254 

  tunnels: 
    gre1: 
        mode: gre
        local: 10.200.aa.dd
        remote: 10.200.hh.cc
        addresses: 
          - 172.26.jj.14/32
        gateway4: 172.26.jj.13

在 Ubuntu 上配置 GRE 隧道的正确方法是什么?

类似的yaml配置,但是还是出现同样的错误:

Yaml 配置-2 截图

错误是:Error in network definition line 3 column 2: unknown key tunnels

Netplan 版本是:

Netplan 版本

答案1

正确的 .yaml 需要看起来确切地像这样...精确间距、缩进、无尾随空格、无制表符...建议复制/粘贴,然后编辑地址...(删除地址是不必要的,而且会产生错误)...

network:
  version: 2
  renderer: networkd
  ethernets:
    ens01:
      addresses: [10.201.x.yyy/24]
      gateway4: 10.201.x.254
      nameservers:
        addresses: [10.200.nn.tt]
      optional: true
    ens02:
      addresses: [10.200.aa.dd/24]
      routes:
        - to: 10.200.hh.0/24
          via: 10.200.aa.254
      optional: true
  tunnels:
    gre1:
      mode: gre
      local: 10.200.aa.dd
      remote: 10.200.hh.cc
      addresses:
        - 172.26.jj.14/32
      gateway4: 172.26.jj.13

sudo netplan generate

sudo netplan apply

reboot

更新#1:

您安装的 netplan 版本太旧,可能不支持隧道。请更新 netplan,或更新您的操作系统。

答案2

在 yaml 中,缩进很重要。您在问题中粘贴的配置显示 有两个缩进空格,ethernets:有三个缩进空格tunnels:,这意味着它被视为 ethernets 的子级而不是同级,并且没有已知的tunnels在 下有效的密钥ethernets。更正此问题,使它们都具有相同的缩进级别,这样应该就可以正常工作了。

相关内容