转换不寻常的 Netplan 配置以避免弃用的 Gateway4 字段

转换不寻常的 Netplan 配置以避免弃用的 Gateway4 字段

我有一个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(尽力尝试)
[路由] 
Gateway=62.210.0.1
GatewayOnLink=yes
路线:
- 通过:62.210.0.1
链接:true

添加本地 /32 路由是一种替代方法(通常不需要1来同时执行这两项操作)。您的示例显示了执行此操作的 BSD 方式(通过自己的 IP 地址进行路由),但在 Linux 上定义路由会更传统没有一个网关。 (仅需要在旧的网络版本中指定错误的范围。)

网络化 netplan(尝试猜测语法)
[路线]
目的地=62.210.0.1/32
范围=链接

[路线]
# 目的地=0.0.0.0/0
网关=62.210.0.1
路线:
- 至:62.210.0.1
范围:链接
- 经由:62.210.0.1

1(您发现的文档稍微过时了;从内核 4.17 开始,“onlink”标志也适用于 IPv6。仅需要单独的 /128 路由,因为较旧的内核忽略了该标志。)

相关内容