![通过互联网,一个主机是否可能无法从另一个主机访问?](https://linux22.com/image/1361249/%E9%80%9A%E8%BF%87%E4%BA%92%E8%81%94%E7%BD%91%EF%BC%8C%E4%B8%80%E4%B8%AA%E4%B8%BB%E6%9C%BA%E6%98%AF%E5%90%A6%E5%8F%AF%E8%83%BD%E6%97%A0%E6%B3%95%E4%BB%8E%E5%8F%A6%E4%B8%80%E4%B8%AA%E4%B8%BB%E6%9C%BA%E8%AE%BF%E9%97%AE%EF%BC%9F.png)
有两台主机A、B,位于不同地点,且均连接到互联网,则可能出现以下情况吗:
- B 可以接收来自 A 的数据包,但 A 不能接收来自 B 的数据包
- A 和 B 无法互相访问,但都可以成功接收或向其他节点发送数据包
答案1
是的,这有多种可能,主要是路由错误或故意在主机上设置路由以将另一台主机的流量发送到不存在的地方。
也可以通过设置防火墙并配置其来阻止部分流量来强制实现。
1) 可能因路由错误而意外发生 - 传出和返回流量可能有不同的路径,因此 A 可能有一条通往 B 的路由,而 B 有一条通往 A 的路由,但该路由在途中进入了故障或配置错误的设备,导致流量丢失。我本周在工作中看到这种情况发生。
2)如果下一跳设备配置不当,可能会意外发生这种情况,但这是一种人为的情况。例如
A 位于 1.0.0.2/24,网关:1.0.0.1
B 在 1.0.2.2/24,网关:1.0.2.1
但网关设置为 1.0.0.1/16 和 1.0.2.1/16。因此,每台主机都配置正确,但每个网关都不会将发往另一台主机的流量发送到互联网,因为它认为主机应该是本地的。但 A 和 B 都可以访问互联网的其余大部分内容 - 只是无法访问 1.0.xx 站点。
编辑:这看起来与您在此处的其他问题大致相同:对于互联网上的一对主机,两个方向的路由是否相同?
答案2
只需在两者之间添加一个适当配置的防火墙即可。甚至可以添加可以访问两者的 C,即使它们无法互相访问。