MAAS:18.04LTS 获得的路线与 16.04LTS 不同 - 如何更改路线指标

MAAS:18.04LTS 获得的路线与 16.04LTS 不同 - 如何更改路线指标

我正在使用 MAAS 配置机器,并且所有机器都配置了两个不同的子网:

  1. 公共网络 9.9.9.0/24。可公开路由的子网。(9.9.9.0 已删除)。DHCP。
  2. 私有网络 192.168.79.0/24。Maas 管理网络(自动分配)。

在所有节点上保持 MAAS 中的相同接口配置,当我在 18.04LTS 上部署时,路由表与我部署 16.04LTS 时开箱即用的不同。设置方式是,18.04 节点基本上阻止来自 (1) 和 (2) 之外的网络的连接。例如,我无法从公共互联网 ssh 或 ping 18.04 主机。16.04 主机上一切正常。

从 16.04 和 18.04 主机,我都可以成功连接公共互联网(例如wget google.com),然后我得到了回应。

18.04 上的路由表与 16.04 上的路由表略有不同:

# 18.04 machine has IPs 9.9.9.9 (eno1), and 192.168.79.9 (eno2)
ubuntu@18-04:~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.79.254  0.0.0.0         UG    0      0        0 eno2
0.0.0.0         9.9.9.254       0.0.0.0         UG    100    0        0 eno1
192.168.79.0    0.0.0.0         255.255.255.0   U     0      0        0 eno2
9.9.9.0         0.0.0.0         255.255.255.0   U     0      0        0 eno1
9.9.9.254       0.0.0.0         255.255.255.255 UH    100    0        0 eno1

16.04:

ubuntu@16-04:~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         9.9.9.254       0.0.0.0         UG    0      0        0 eno1
192.168.79.0    0.0.0.0         255.255.255.0   U     0      0        0 eno2
9.9.9.0         0.0.0.0         255.255.255.0   U     0      0        0 eno1

18.04 上的路由无法正常工作。我不确定为什么要添加额外的主机路由 (UH),优先路由是通过 eno2(私有网络)。我可以看到传入的互联网数据包通过 eno1 进入(使用 tcpdump -i eno1),但我猜回复会返回到 eno2 并丢失。

有没有办法配置 MAAS,使 18.04 路由表看起来像 16.04 上的路由表?

更新:

18.04 使用 netplan 配置网络,并且它对 dhcp 有特殊规则。网络配置位于 /etc/netplan/50-cloud-init.yaml 中,并且 netplan 优先考虑静态路由而不是通过 dhcp 获取的路由。

我不得不撤销该优先级分配,但我设法解决此问题的唯一方法是在部署后修补 netplan 文件。

eno1:
    dhcp4: true
    match:
        macaddress: c8:1f:66:c9:fd:3c
    mtu: 1500
    set-name: eno1
eno2:
    addresses:
    - 192.168.79.110/24
    gateway4: 192.168.79.254
    match:
        macaddress: c8:1f:66:c9:fd:3d
    mtu: 1500
    nameservers:
        addresses:
        - 192.168.79.10
        - 192.168.79.11
        search:
        - maas
    set-name: eno2

我最初的想法是在 /etc/netplan/ 中创建一个按字典顺序排列的名称更大的覆盖文件,以删除“gateway4”条目,但我认为没有办法删除一个密钥。您可以直接覆盖它们。因此,我编辑了同一个文件以添加路由,并为其指定一个高于 dhcp 网络默认 100 的度量值。

这是我为 eno2 修补的路线。eno1(dhcp)保持不变。

eno1:
    dhcp4: true
    match:
        macaddress: ca:fe:ba:be:ca:3c
    mtu: 1500
    set-name: eno1
eno2:
    addresses:
    - 192.168.79.110/24
    # no need for this. use routes below.
    # gateway4: 192.168.79.254
    routes:
      - to: 0.0.0.0/0
        via: 192.168.79.254
        # dhcp gateways get 100 by default. make this > 100
        metric: 200
    match:
        macaddress: ca:fe:ba:be:ca:3d
    mtu: 1500
    nameservers:
        addresses:
        - 192.168.79.10
        - 192.168.79.11
        search:
        - maas
    set-name: eno2

我还考虑过将 dhcp gw 路由度量设为 0(使用 dhcp4-overrides),但这样两个网关路由的优先级都会是 0——而我对 linux 规则不太清楚。

netplan apply通过更新的配置我可以到达我想要的地方。

有没有办法将该编辑作为 MAAS 自动部署的一部分?

相关内容