我正在使用 Ubuntu 18.04 bionic。
当我尝试在 netcfg.yaml 文件中配置 GRE 隧道时遇到错误:
网络定义 //etc/netplan/01-netcfg.yaml 第 x 行第 x 列错误:未知的密钥隧道。
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配置,但是还是出现同样的错误:
错误是:Error in network definition line 3 column 2: unknown key tunnels
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
。更正此问题,使它们都具有相同的缩进级别,这样应该就可以正常工作了。