移动网络 为何ping 不通自己的公网 IP?

admin 2023年9月22日23:45:39评论35 views字数 1219阅读4分3秒阅读模式

移动网络 ping 不通自己的公网 ip,显示请求超时怎么办?


题主所谓的公网IP,并没有配置在任何主机的TCP/IP协议栈上,所以Ping不通。在浩瀚的互联网上去寻找答案,包括ChatGPT机器人,答案就是“禁Ping了“。可是真相往往并不是这样。
这是手机4G网络分配的内网IP:10.181.2.18
移动网络 为何ping 不通自己的公网 IP?
这个内网IP地址配置在手机TCP/IP协议栈上的,所以手机Ping自己的内网IP是没有问题的。
用这个手机访问互联网时呈现的公网IP:223.104.5.212
移动网络 为何ping 不通自己的公网 IP?
这个公网IP,是存在于移动网络城域网与核心网边界网关(Edge Gateway)上,准确地说,是以NAT Database的形式存在。
这个IP有没有配置在边界TCP/IP协议栈上?
并没有。既然没有配置,那么不光手机Ping不通,地球上所有的主机都不会Ping通它。
移动网络 为何ping 不通自己的公网 IP?
没有配置在TCP/IP协议栈上,手机怎么使用它访问互联网服务器(微信什么)的?
一句话:边界网关在出方向,将IP报文10.181.2.18 ---- > 223.104.5.212  (可能还有TCP/UDP端口号的映射)。
两句话:将以上映射关系保存在NAT Table里。
三句话:边界网关在入方向,查NAT Table,将IP报文223.104.5.212  ---- > 10.181.2.18 (可能还有TCP/UDP端口号的映射)。
通过上文的分析,公网IP配没配在TCP/IP协议栈上并不会影响上网。唯一的影响就是Ping不通它。
问题来了,一个IP地址没有配置在TCP/IP协议栈上,如何将它通过BGP路由协议将它通告给互联网呢?
不知道读者还有印象哇,向BGP advertise路由,这个路由必须存在于Routing Table?
简单,可以使用aggregate命令产生一个聚合静态路由,指向Null接口,比如:
223.104.0.0/16 --------- > Null0
然后向BGP协议通告即可。
现在来Ping 223.104.5.212,会发生什么?
Ping报文到达边界网关,查路由表,相比0.0.0.0/0,汇聚路由223.104.0.0/16更优,故选择之。由于出口对应Null0,这是一个逻辑空接口,直接将Ping报文扔进去,没有了。
接下来看看Ping 8.8.8.8,会发生什么?
Ping报文到达边界网关,查路由表,最佳匹配0.0.0.0/0,指向互联网。
返程流量,先查NAT Table,将公网IP---> 内网IP,可以Ping通。
最后,浩瀚互联网有N多公网IP,它们绝大多数都是Ping不通的,因为它们不提供对公服务。只有哪些需要提供对公服务的公网IP需要提供Ping服务,比如微信、知乎、亚马逊等。而要提供公网IP的Ping服务,这个公网IP一定是配置在TCP/IP协议栈上,而且不要有防火墙阻隔,两者缺一不可。
最后,如果对无线网络感兴趣,推荐阅读

原文始发于微信公众号(车小胖谈网络):移动网络 为何ping 不通自己的公网 IP?

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年9月22日23:45:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   移动网络 为何ping 不通自己的公网 IP?https://cn-sec.com/archives/2059666.html

发表评论

匿名网友 填写信息