我有一个运行 Ubuntu 18.04 的虚拟机 - 它全部设置并运行在单个公共 IP 上,并且有两个接口 - ens160
(公共)和ens192
(私有)。
我的接口 ens160 已完全配置。但是,当我尝试使用 进行设置ens192
和应用设置时netplan apply
,ens160
会停止外部 ping。
ifconfig-
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 78.111.203.13 netmask 255.255.255.224 broadcast 78.111.203.31
inet6 fe80::250:56ff:feb2:ac74 prefixlen 64 scopeid 0x20<link>
ether 00:50:56:b2:ac:74 txqueuelen 1000 (Ethernet)
RX packets 8761053 bytes 3882588408 (3.8 GB)
RX errors 0 dropped 242551 overruns 0 frame 0
TX packets 10449256 bytes 4654699595 (4.6 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::250:56ff:feb2:3d74 prefixlen 64 scopeid 0x20<link>
ether 00:50:56:b2:3d:74 txqueuelen 1000 (Ethernet)
RX packets 242552 bytes 14553120 (14.5 MB)
RX errors 0 dropped 227391 overruns 0 frame 0
TX packets 7256 bytes 2349506 (2.3 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 9194 bytes 2309681 (2.3 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 9194 bytes 2309681 (2.3 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
50-cloud-init.yaml
以下是我尝试使用的配置文件-
network:
ethernets:
ens160:
addresses:
- 78.111.203.13/27
gateway4: 78.111.203.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
search: []
optional: true
ens192:
addresses:
- 10.0.203.13/27
gateway4: 10.0.203.1
optional: true
version: 2
一旦运行netplan try
,我就无法再 ping 我的外部 IP,78.111.203.13
直到超时并且网络自行重置。但有趣的是,我仍然可以从网络内的其他 VM ping 外部 IP - 我不确定这是否意味着什么?
新配置的内部 IP 也开始在网络内 ping 操作 - 这正是我所期望的。
我希望你能帮忙!
克里斯。
答案1
该问题几乎肯定与您尝试在辅助接口上设置默认网关有关。
务必始终记住,默认网关实际上并不是单个接口的属性,而是添加到路由表中的路由。当没有其他更具体的路由与给定目标不匹配时,将使用“默认网关”路由。如果您尝试添加两个具有相同度量的默认网关,则只有一个或另一个会起作用。
答案2
默认网关是路由器的地址,它将路由您尚未定义路由的数据包。大约 99% 的时间里,这是为您的系统提供互联网访问权限的路由器。任何主机都会有恰好一个在正常配置下,这些(每个协议)
你已经定义了二,因此一个与另一个相冲突并覆盖另一个。因为它是不是您的互联网网关,您应该再次将其删除。