路由行为异常,仅阻止 *DNS* 到其他网络

路由行为异常,仅阻止 *DNS* 到其他网络

我有一台带有两个 NIC 的 PC,一个连接到 LAN(eth0,静态 IP 192.168.0.254),另一个连接到 DMZ 模式的 DSL 调制解调器(eth1,从调制解调器接收公共 IP)。

昨天,它突然无法访问互联网了。

我已经将问题缩小到这一点(或者这可能只是一个副作用,我不确定):

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     *               255.255.0.0     U     1      0        0 eth0
link-local      *               255.255.0.0     U     1000   0        0 eth0
default         <public_ip>     0.0.0.0         UG    0      0        0 eth1

编辑:我所说的 public_ip 并不是指分配给这台机器的实际公共 IP,而是指另一个公共 IP,我猜它是分配给调制解调器的 IP。

使用如上所述的默认路由,我可以 ping 到 IP 但无法解析域,因此似乎 DNS 以某种方式被阻止了,或者也许它正在尝试使用 eth0 中的 DNS 服务器。

如果我删除路由 192.168.0.0,那么它会显示 FQDN 而不是 public_ip。然后我就可以解析域名并正常访问互联网了。

如果我将另一台计算机指定为调制解调器中的 DMZ 节点,它就可以正常工作,因此这台 PC 一定出了问题。我甚至尝试为 eth0 分配另一个 NIC,但没用。

有任何想法吗?

答案1

根据您的补充回答:

发生这种情况是因为您的调制解调器使用的 192.168.1.254/24 地址也在您的内部网络使用的 192.168.0.0/16 地址范围内。

由于您没有 192.168.1/24 的特定路由表条目,因此您的 PC 使用了最佳路由 - 到 192.168/16 的路由。

答案2

您的 /etc/resolv.conf 中有什么?它是否正在尝试使用 192.168.0.0/16 中的某些内容进行解析?

答案3

我不知道为什么会出现这个问题,前一刻还运行正常,下一刻……

无论如何,问题似乎在于调制解调器的 IP 地址类似于 192.168.1.254/255.255.255.0(我们的内部网络是 192.168.0.0/255.255.0.0),并且似乎机器正在尝试在我们的 LAN 内找到 192.168.1.254(为什么!?!)。

我之前没有注意到,因为这台机器分配了公网 IP(即不是192.168.1.x)。

因此我更改了调制解调器使用的 IP,现在它可以工作了。

我仍然不明白这里到底发生了什么。我能找到的最好的解释是,我们的 ISP 在我们不知情的情况下更新了调制解调器的固件,这不知何故干扰了它之前的运行方式。

相关内容