stun探测过程

来源:互联网 发布:綦美合 知乎 编辑:程序博客网 时间:2024/05/12 19:35

本文在之前的一片博文的基础上继续研究nat穿越

一、NAT种类细分

(1)Open Internet(公网开放):直接是Internet上一台主机,且free of UDP 

(2)UDP Block(UDP阻隔):位于UDP防火墙之后

(3)Internet FireWall(公网防火墙):拥有公网IP,在防火墙之后,防火墙阻断外部的主动UDP访问

(4)Full Cone NAT(完全锥形):NAT内IP:Port映射同一外部IP:Port,且外部可以先主动访问

(5)Restricted Cone NAT(受限锥形):NAT内IP:Port映射同一外部IP:Port,外部不可先主动访问,需要内部先访问外部的IP:Port,外部访问内部只检查IP,不检查Port(即只有内部先访问的IP才能访问内部)

(6)Port Restricted Cone NAT(端口受限访问):NAT内IP:Port映射同一外部IP:Port,外部不可先主动访问,需要内部先访问外部IP:Port,外部访问内部需检查IP和Port(即只有内部先访问的IP:Port才能访问内部)

(7)Symmetric NAT(对称NAT):NAT内部IP:Port与要访问的外部IP:Port一一对应,外部不可先主动访问,需要内部先访问外部IP:Port,外部访问内部需检查IP和Port

注:同一映射和一一对应的区别:同一映射即内部的IP:Port不论访问什么样的外部IP:Port,都映射到同一外部IP:Port,而一一映射,则会根据内、外部的IP和Port的不同,映射的外部IP:Port也会不同


二、探测行为

探测行为

NAT(IP:PORT)

映射(IP:PORT)

访问方向

Stun Server(IP:PORT)

Test1

c1:c1

 

C To S

s1:s1

 

m1:m1

S To C

s1:s1

 

Test1#2

c1:c1

 

C To S

s2:s2

 

m2:m2

S To C

s2:s2

 

Test2

changeIP and changePort

c1:c1

 

C To S

s1:s1

 

m1:m1

S To C

s2:s2

 

Test3

changePort

c1:c1

 

C To S

s1:s1

 

m1:m1

S To C

s1:s2



三、探测策略

Step1:进行Test1探测行为,

若收不到响应,判别NAT为UDP Block类型;

若收到响应,比较(m1,m1)以及(c1,c1),仅比较IP即可,如果相同,本机连在公网,若不同,则位于NAT之后,需进一步探测

 

Step2.1:若本机连在公网,进行Test2。

若能收到响应,则为Open Internet类型;

若不能收到响应,则为Symmetric FireWall类型

 

Step2.2:若本机位于NAT之后,进行Test2,

若能收到响应,则为Full Cone NAT;

若不能收到响应,需进一步探测

 

Step3:进行Test1#2,比较(m1,m1)和(m2,m2)是否相同,

若不相同,则为Symmetric NAT类型;

若相同,需进一步探测

 

Step4:进行Test3,

若能收到响应,则为Restricted Cone NAT类型,

若不能收到响应,则为Port Restricted Cone NAT类型



0 0
原创粉丝点击