有几种方法都可以判定:
1、IP报头的通过IPID可以查找是否经过NAT转换。同一台机器发出的数据包,IPID应该是相邻的,如果有多台机器,则IPID的跨度会比较大。
2、检查IP包的ttl值是否是32、64、128这几个值,默认情况下,客户端发出来后会是这些值之一,但如果经过了NAT设备转换,则会减少,从而判定使用NAT。 (此种情况,需要想判定是否使用NAT的下一级设备处抓包。)
3、据说在进行NAT检测的网络中,会将TCP报头中的可选扩展段用来打标每台机器的时间戳,由于每台机器的时间不会都调得如此精准,会存在差异,所以有些也通过这个方法判定是否存在多台机器,也就是是否使用了NAT。(此种方法没试过,不知道是否能行。) |