破解T.M.D运行商的路由封杀

现在很多家里都有不止一台计算机(笔记本),如果要同时联网很多家庭就购置了无线路由器,但是不少地方的联通和电信采取了一定的技术手段限制多台计算机通过路由共享一个宽带帐号的情况,以下简单探讨一下可能的技术原理问题:
共享上网,一般都是用路由器作NAT、NAPT方式//NAT有三种类型:静态NAT(Static NAT)、动态地址NAT(Pooled NAT)、网络地址端

//转换NAPT(Port-Level NAT)。NAPT(Network Address Port Translation)即网络端口地址转换,就是将多个内部地址映射为

//一个合法公网地址,但以不同的协议端口号与不同的内部地址相对应。

的IP地址转换,把多个内网地址转换成一个公网IP地址。路由器或者代理只是对IP地址作了转换,把IP数据包的内网的IP地址替换成了拨号获得的公网IP地址,从外部来看是看不出来与普通的IP包有什么不同的,那么是如何检测到的呢?用TCP/IP协议构建的互联网,一般看作4层结构,在应用层千差万别的应用,是不太可能据此来确定内网机器的数量的。我们仔细分析一下IP报头看看到底有那些信息可能泄漏我们内网机器的数量。看一下IP报文的结构:

0 4 8 16 31
版本 首部长 服务类型 总长度
标识 标志 片偏移量
寿命 协议 首部校验和
源端IP地址
目的端IP地址
长度可变的任选字段 填充
数据


版本:IP协议的版本,大家都是4。
首部长度:报头首部的长度,4字节的整倍数。
服务类型(TOS):每个机器都一样,用来表示优先级。
总长度:整个报文首部和数据的长度。
标识(identification):数据报的标识,用来标识出数据长度超过MTU分片时,进行重新组装数据的位置标识。这部分可以用来分析共享上网的特征。
标志:有MF和DF分别标志分片结束和不能分片。
片偏移: 长报文分片后,在原报文中的位置。
生存时间(TTL):数据报在网络中的寿命。
协议: 携带数据使用的协议。
首部校验和:报文首部的校验信息。
源地址:4字节源IP地址。
目的地址:4字节目的地址。

从IP报头的组成来看,只有可能携带内网信息的就是“标识(IPID)”,在每一台内网机器作地址转换时,IPID的序号是没变化的,而每台机器又是随机从一个数开始,有规律单调增加,看来根据这个ID的不连续来判断机器的数量。 抓包看看,果然:
12:19:41.000000 10.10.49.204.61993 > 10.199.201.37.http: . [tcp sum ok] ack 4292552168 win 64240 (DF) (ttl 127, id 40255, len 40)
12:20:23.000000 10.10.49.204.62017 > 10.199.201.37.http: . [tcp sum ok] ack 1 win 64240 (DF) (ttl 127, id 40756, len 40)
12:21:37.000000 10.10.49.204.62216 > 10.54.226.252.http: S [tcp sum ok] 1820371619:1820371619(0) win 16384 (DF) (ttl 127, id 57601, len 48)
12:21:40.000000 10.10.49.204.61993 > 10.199.201.37.http: . [tcp sum ok] ack 4293696808 win 64240 (DF) (ttl 127, id 41427, len 40)
12:22:06.000000 10.10.49.204.61993 > 10.199.201.37.http: . [tcp sum ok] ack 4293946004 win 64240 (DF) (ttl 127, id 41671, len 40)
12:23:10.000000 10.10.49.204.62017 > 10.199.201.37.http: . [tcp sum ok] ack 1633741 win 64240 (DF) (ttl 127, id 42293, len 40)
12:24:00.000000 10.10.49.204.61993 > 10.199.201.37.http: . [tcp sum ok] ack 4294795172 win 64240 (DF) (ttl 127, id 42632, len 40)
12:24:24.000000 10.10.49.204.61993 > 10.199.201.37.http: SFRPW [bad tcp cksum 1748!] 2115643160:2115643180(20) ack 972685314 win 46144 urg 3585 (DF) (ttl 125, id 42893, len 40)
12:25:05.000000 10.10.49.204.62259 > 10.200.222.45.http: P [bad tcp cksum 6be7!] ack 1 win 19652 (DF) (ttl 127, id 1673, len 40)
12:25:53.000000 10.10.49.204.61993 > 10.199.201.37.http: . [tcp sum ok] ack 940080 win 64240 (DF) (ttl 127, id 43799, len 40)
12:25:56.000000 10.10.49.204.61993 > 10.199.201.37.http: . [bad tcp cksum 579d!] ack 1019539 win 17520 (DF) (ttl 125, id 43846, len 40)
12:25:56.000000 10.10.49.204.62017 > 10.199.201.37.http: E [bad tcp cksum 8380!] 2120652494:2120652506(12) win 11414 urg 5633 (DF) (ttl 125, id 43859, len 40)
12:26:05.000000 10.10.49.204.62259 > 10.200.222.45.http: R [tcp sum ok] 3206002624:3206002624(0) win 0 (DF) (ttl 127, id 1731, len 40)

有三个变化范围的IPID序号,彩色标记出来的IPID序列号的变化很有规律,一定范围内变化的报文就是由一台机器发出的,根据这个因此可以判断有三台机器共享上网。

另外Windows还可以将每个TCP的包头中的可选扩展段用来打标每台机器的时间戳(默认情况是没有打开的)想必我们每台机器的时间不会都调得完全同步,所以利用这个时间戳也可以大致判 断内网的机器数量。

好了,知道原理,那么解决办法也就有了:1.刷新路由器的固件,使NAT服务增加修改IPID的功能,或者顺序或者分散IPID就能使运营商的检测系统失效。2.使用一台计算机作为代理服务器,其他机器都共享这一个Internet连接即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值