我正在使用 MAAS 配置机器,并且所有机器都配置了两个不同的子网:
- 公共网络 9.9.9.0/24。可公开路由的子网。(9.9.9.0 已删除)。DHCP。
- 私有网络 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 自动部署的一部分?