我正在 DMZ 中运行 14.04.2 LTS ubuntu 盒子,IP 为 10.10.30.35,我有以下网络谜团。我正在尝试连接到 DMZ 之外但位于我们内部网络 10.2.0.200 的另一个 unix 盒子(通过 ssh 或 https),但失败并出现类似No route to host
或ping
导致目标主机无法访问的错误。但是,我可以连接(ping、ssh 和 https)到位于 10.2.0.170 的类似 unix 盒子,该盒子也在 DMZ 之外但在我们的网络内部。我的 iptables 中没有任何内容:
> iptables --list
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
网关看起来设置正确:
> route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.10.30.25 0.0.0.0 UG 0 0 0 eth0
10.10.30.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
当我从 DMZ 中的机器执行 tcpdump 并尝试 ping 10.2.0.200 框时,我所看到的只是:
ARP, Request who-has 10.2.0.200 tell myserver.mydomain.com, length 28
但是,我从未看到任何对 10.2.0.200 的响应或任何其他流量。看来arp协议不起作用?检查 arp,我得到这个:
> arp -na
? (outsideipaddress) at <incomplete> on eth0
? (10.10.30.25) at 00:1a:8c:f0:50:82 [ether] on eth0 <-- gateway
? (10.10.30.80) at 00:50:56:a7:06:89 [ether] on eth0
? (outsideipaddress) at <incomplete> on eth0
? (10.2.0.200) at <incomplete> on eth0
? (outsideipaddress) at <incomplete> on eth0
所以,那个 10.2.0.200 条目很奇怪,我尝试清除它并得到这个:
> arp -d 10.2.0.200
SIOCDARP(dontpub): Network is unreachable
尝试使用ip -s -s neigh flush all
也不会删除该条目。
所以,我在这里束手无策。是否是 arp 条目阻止我连接到 10.2.0.200?或者我完全缺少其他东西?我可以手动编辑 arp 表并添加 MAC 地址吗?
在此先感谢您的帮助。
答案1
我做了一个
ip route flush cache
我能够 ping 和 SSH。仍然不能https,但我相信那是网络防火墙。谢谢大家的帮助。
答案2
该? (10.2.0.200) at <incomplete> on eth0
条目是无法访问机器时的正常行为(机器是否已通电?)
如果目标计算机在 IPTables 中有某些内容,例如,它阻止了 ICMPv4 请求,您将在 arp 表中看到完整的条目,因为流量已被丢弃,但已到达主机。
所以,只是猜测。你有防火墙来做 DMZ 吗?只是为了确定...尝试跟踪路线。