两个相同的ip地址(2个QQ为何IP地址相同)

​​只想到两种可能:

  • 一台主机,两个QQ之间的通信。
  • 一个公网IP,两个QQ共同使用,相互通信。

第一种情况,已经在详细讨论过了,所以接下来重点讨论第二种情况。一个公网IP,两个QQ共同使用,相互通信即使两个QQ同时使用一个公网IP,要能看到这壮丽奇迹的一幕,也是非常不容易的。

读者会很疑惑,既然两个QQ都使用了一个公网IP,为何说却很难看到这一幕?稍安勿躁,罗马不是一天建成的,让我们一步一步详细分析。

2个QQ的联系信息分别如下:

Alice

私网IP= 10.1.1.1 端口号= 1000

公网IP =1.1.1.1 端口号= 1111

Bob

私网IP= 192.168.1.1 端口号= 2000

公网IP =1.1.1.1 端口号= 2222

QQ中心服务器将两者的联系信息分别推送给彼此。Alice使用Bob公网IP、端口号与其通信,以下是在Alice主机上抓包的结果:

两个相同的ip地址(2个QQ为何IP地址相同)(1)

很显然,这里源IP ≠目的IP,源IP = 目的IP的神奇一幕并没有出现。

Bob使用Alice公网IP、端口号与其通信,以下是在Bob主机上抓包的结果:

两个相同的ip地址(2个QQ为何IP地址相同)(2)

同样这里源IP ≠目的IP,源IP = 目的IP的神奇一幕也没有出现。继续让这些报文朝着互联网的放心继续流淌,到达网关处。网关不能袖手旁观,网关需要强势介入,将报文中源IP、源端口替换成公网IP、公网端口。

Alice的被修改后的报文:

两个相同的ip地址(2个QQ为何IP地址相同)(3)

Bob的被修改后的报文:

两个相同的ip地址(2个QQ为何IP地址相同)(4)

哇,源IP = 目的IP的神奇一幕同时出现了,不是很容易出现的吗?

通常,网关上的抓包并没有那么容易,要么用户没有权限,要么网关不提供抓包的接口。Alice被修改过的报文,需要重新进入路由引擎处理,查表可得这是网关的WAN口的IP,于是将修改后的IP报文从WAN口流出,并流入互联网。Alice在互联网里游啊游,穿过了N个交换机,终于碰到了网关。网关查表发现,目的IP的路由指向与Alice报文的流动方向相反,于是网关对Alice、Bob的报文说,亲爱的老司机们请掉头。于是两位老司机掉头往回走,继续游啊游,穿过N个交换机,又回到出发的起点网关。

网关查表将Alice、Bob的报文的目的IP、目的端口做了一次替换。Alice报文替换结果为:

两个相同的ip地址(2个QQ为何IP地址相同)(5)

Bob报文替换结果为:

两个相同的ip地址(2个QQ为何IP地址相同)(6)

从上文的描述可知,源IP = 目的IP出现的时间周期,从网关第一次替换完成始,到网关第二次替换前。在这个时间周期内,并在报文途径的设备上抓包都是可以看到这神奇的一幕。

上文Alice、Bob的报文其实走了一段冤枉路,如果做IP替换的网关不是将替换后的IP报文,从WAN口发出,而是将其从LAN口流出,流出LAN口前,做第二次替换,IP报文就不会跑冤枉路了。简而言之,就是在本地做一个环路(Loop)。这项技术就是NAT Hairpin技术。

两个相同的ip地址(2个QQ为何IP地址相同)(7)

由于NAT Hairpin技术打破了路由器的水平分割(Split Horizon )限制,即从一个接口收到的报文,绝不允许从同一个接口再次发出,避免形成环路。

使用NAT Hairpin技术的场景下,源IP = 目的IP 出现的时间仅仅是一霎那间,如果中间的流水线工序不提供抓包点,这个瞬间也是无法捕获到的!

注:本文转载自车小胖谈网络微信公众号;文内观点仅供参考。​​​​

埃文科技——IP定位技术领域专家,最全面、最精准的网络空间地图服务提供商。

公司成立于2012年,专注于网络空间、地理空间和社会空间的相互映射,绘制三位一体的网络空间地图,对网络空间资源的静态属性和动态变化情况进行探测。拥有27项软件著作权及13项发明专利。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页