Ubuntu 22.04:Netplan(静态 IP)-无法 ping 网关或互联网 IP,本地网络设备 ping 正常

Ubuntu 22.04:Netplan(静态 IP)-无法 ping 网关或互联网 IP,本地网络设备 ping 正常

情况

我有 VMWare ESXI 和 Ubuntu Server 22.04 实例。此实例为我的本地网络运行 PowerDNS,需要静态 IP。我的本地网络使用 A 类 IP 地址,范围为 10.0.1.xxx,WiFi 在 10.0.2.xxx 范围内的单独路由器上运行。

Router IP (gateway) = 10.0.1.1
Ubuntu server IP    = 10.0.1.3

我可以通过 SSH 连接到这台机器在我的本地网络内的任何地方都可以完美运行,无论是 10.0.1.xxx 范围内的物理连接机器,还是 10.0.2.xxx 范围内的 WiFi 连接设备。

Ubuntu Server 实例可以正常 ping 本地网络上的设备除了用于网关和外部互联网 IP 地址。因此,该机器根本没有互联网连接。昨晚一切正常,但重启后我觉得有些问题,但我似乎无法弄清楚是什么问题……

UFW 是不活跃,iptables 允许一切(默认配置)

配置

我的 netplan 配置如下所示(尽管我在这里尝试了很多不同的东西):

network:
  version: 2
  renderer: networkd
  ethernets:
    ens160:
      dhcp4: false
      dhcp6: false
      addresses: 
        - 10.0.1.3/24
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
          - 1.1.1.1
          - 1.0.0.1
      routes:
        - to: default
          via: 10.0.1.1

netplan --debug generate并且netplan --debug apply不显示任何错误。每次应用新配置时我都会重新启动实例,但无济于事……

10.0.1.1我的路由器在 IP和子网上配置了其 LAN 255.255.252.0

我迄今为止尝试过的事情

  • 删除整个静态配置并替换为dhcp4: true无效。路由器无法提供 IP 地址,导致启动时间过长。

  • 删除routing条目并让系统自行决定也行不通。尝试这样做时,问题会变得更糟,因为每个 IP 地址都会变成无法到达,包括本地网络设备。

  • 将路由器的子网从 更改为255.255.255.0255.255.252.0允许10.0.x.范围内有更多空间。这没有改变任何东西。它目前设置为开启255.255.252.0,并且我的本地网络上的所有内容仍然正常工作。

  • 我再次启用了 DHCP,重新启动了机器,突然获得了一个 IP 地址。在路由器的 DHCP 配置中根据实例的 MAC 地址分配静态 IP 后,它无法再次提供 IP 地址(等待网络配置...)启动时需要很长时间。所以这台机器也不起作用需求静态 IP。

我知道这不是 DNS 配置问题,因为我甚至无法 ping1.1.1.18.8.8.8直接(100%数据包丢失),就像直接 ping 路由器一样。

输出:

IP 路由:

harold@ingress:~$ ip route
default via 10.0.1.1 dev ens160 proto static 
10.0.1.0/24 dev ens160 proto kernel scope link src 10.0.1.3

IP 地址:

harold@ingress:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:b7:49:41 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 10.0.1.3/24 brd 10.0.1.255 scope global ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:feb7:4941/64 scope link 
       valid_lft forever preferred_lft forever

Ping 网关:

harold@ingress:~$ ping 10.0.1.1
PING 10.0.1.1 (10.0.1.1) 56(84) bytes of data.
^C
--- 10.0.1.1 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3060ms

对本地网络上的另一台设备进行 ping 操作:

harold@ingress:~$ ping 10.0.1.2
PING 10.0.1.2 (10.0.1.2) 56(84) bytes of data.
64 bytes from 10.0.1.2: icmp_seq=1 ttl=64 time=0.060 ms
64 bytes from 10.0.1.2: icmp_seq=2 ttl=64 time=0.225 ms
64 bytes from 10.0.1.2: icmp_seq=3 ttl=64 time=0.125 ms
^C
--- 10.0.1.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2028ms
rtt min/avg/max/mdev = 0.060/0.136/0.225/0.067 ms

答案1

我想到了。

我有两个路由器,一个是 Genixis HRG1000(由我的 ISP 提供),用于连接 ESXi 主机,另一个是 TP-Link 路由器,目前仅用于内部 WiFi。

因为我想运行自己的 DNS 服务器,所以我将路由器中的名称服务器配置设置为:

nameserver 1: "10.0.1.3"
nameserver 2: "1.1.1.1"

由于某种原因,名称服务器配置中具有内部 IP 会导致 DHCP 不再起作用,也无法分配静态 IP 并 ping 路由器或外部互联网。

由于我的网络中已经有两个路由器,我将把 ESXi 主机插入这个路由器,并将网络上的所有其他设备连接到第二个路由器,因为那个允许我将名称服务器配置为自己的名称服务器。

相关内容