我有 2 个子网,A和乙以及连接两者的路由器A和乙和广域网。
我有 4 台服务器在子网上双宿主A和 B,其中 2 个是 Mac OS,2 个是 Centos 7 (1503)。它们都配置为在收到请求的同一接口上回复,网关位于乙子网是其默认网关。这图表显示网络。
2 个 Mac OS 服务器和 1 个 CentOS 服务器,鲍勃,因为每个都可以通过其子网 ping 和 ssh 到其他A或者乙地址。
此外,子网上的客户端A还可以访问 Mac OS 服务器和 CentOS 服务器,鲍勃通过他们的子网A或者乙地址;并且这三个服务器可以访问子网 A 上的任意客户端。
第二台 CentOS 服务器,爱丽丝,这就是问题所在。
子网上没有其他双宿主服务器或客户端A可以 ping 或 ssh 进入爱丽丝使用爱丽丝的子网A地址。Ping 和 ssh 只是挂起,我看不到任何流量的证据爱丽丝通过 tcpdump。其他服务器和客户端上的 arp 表都显示爱丽丝子网上的 IP 地址A和乙映射到适当的 MAC 地址。
其他双宿主服务器均无法 ping 或 ssh 进入爱丽丝使用爱丽丝的子网乙地址。
但是,子网上的客户端A能够 ping 和 ssh 到爱丽丝通过使用爱丽丝子网 B 上的地址。
更远,爱丽丝可以通过子网 A ping 和 ssh 到所有服务器和客户端;并可以 ping 子网 B 上的其他三台服务器,但是当爱丽丝尝试通过子网 ssh 进入任意服务器乙地址,爱丽丝收到“连接被拒绝”?!
服务器鲍勃和爱丽丝除了地址之外,配置都是一样的。
我比较了各种/etc/sysconfig/network-scripts/{ifcfg-, route-, rule-}{eno1, eno2}在鲍勃和爱丽丝并且除了分配给每个接口的地址外,它们看起来完全相同。
我比较了“ip addr”、“ip route”、“ip rule”鲍勃和爱丽丝除地址分配外,所有内容看起来都相同。
我已经禁用了 SELinux 并禁用了防火墙爱丽丝将这些从考虑范围中剔除。
我很困惑,哪里出现了错误配置爱丽丝是。
在我看来,从证据来看,A硬件问题爱丽丝的接口,因为我可以通过子网从路由器到达每个接口A和乙地址爱丽丝以及子网上的客户端A可以到达爱丽丝通过子网乙地址。
似乎不是A由于所有其他通信组合均正常,因此路由器存在问题。
此外,被拒绝的连接似乎不是A通过子网与其他三台服务器的配置问题乙因为它们都能够在子网 B 上互相连接。从 tcpdump 来看,爱丽丝尝试连接子网 B 上的其他三台服务器,我没有看到任何数据包到达乙其他三台服务器上的接口。
我将非常感激任何关于如何探究并尝试解决此问题的想法。
谢谢你,克里斯
答案1
在用 wireshark 捕获到从路由器到“隐藏”服务器的大量 ICMP 重定向后,我发现问题出在过度使用策略路由规则。简化规则后,问题就解决了。