![转换不寻常的 Netplan 配置以避免弃用的 Gateway4 字段](https://linux22.com/image/230223/%E8%BD%AC%E6%8D%A2%E4%B8%8D%E5%AF%BB%E5%B8%B8%E7%9A%84%20Netplan%20%E9%85%8D%E7%BD%AE%E4%BB%A5%E9%81%BF%E5%85%8D%E5%BC%83%E7%94%A8%E7%9A%84%20Gateway4%20%E5%AD%97%E6%AE%B5.png)
我有一个01-netcfg.yaml
来自文档的现有文件,该文件应该以前可以使用。
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
dhcp6: no
addresses: []212.80.140.1/32]
gateway4: 62.210.0.1
nameservers:
addresses: [62.210.16.6, 62.210.16.7]
routes:
- to: 62.210.0.1/32
via: 212.80.140.1
scope: link
此配置适用于虚拟机管理程序 (Proxmox PVE) 内的虚拟机中的辅助或故障转移 IP4Scaleway网络。
我无法再在 Ubuntu 22.04 上的 Netplan 中使用 Gateway4 字段。运行netplan apply
失败并出现错误:
gateway4 has been deprecated, use default routes instead
我相信我必须更新语法以使用该routes
字段,gateway4
但我无法获得正确的语法。默认网关位于主地址的子网之外,因此需要额外配置。也许是 onlink、源路由、路由表等。我不知道。
http://people.ubuntu.com/~slyon/netplan-docs/examples/#reaching-a-directly-connected-gateway
任何人都可以将给定的配置转换为使用routes
等而不是gateway4
?
答案1
on-link: true
在默认路由上设置“onlink”标志 ( ) 就足够了:
网络化 | Netplan(尽力尝试) |
---|---|
[路由] |
路线: |
添加本地 /32 路由是一种替代方法(通常不需要1来同时执行这两项操作)。您的示例显示了执行此操作的 BSD 方式(通过自己的 IP 地址进行路由),但在 Linux 上定义路由会更传统没有一个网关。 (仅需要在旧的网络版本中指定错误的范围。)
网络化 | netplan(尝试猜测语法) |
---|---|
[路线] |
路线: |
1(您发现的文档稍微过时了;从内核 4.17 开始,“onlink”标志也适用于 IPv6。仅需要单独的 /128 路由,因为较旧的内核忽略了该标志。)