NAT穿透

1.NAT穿越

NAT分两大类,一类是对称的(Symmetric NAT),5元组(源端口,IP,目的端口IP,协议)限制更加严格,很大一部分企业的NAT是对称的;一类是非对称的(Cone NAT,锥型),非对称的。非对称Cone包括完全锥形(穿透后任何IP和端口都可以往私网发送包),限制锥型(穿透后,同一IP的程序可以往私网发送包),和端口限制锥形(只有接到私网内部包的IP和端口可以往私网发送包)。

1.1 STUN Simple Traversal of User Datagram Protocol (UDP)  Through Network Address Translators (NATs) rfc3489

STUN的精髓:

 

                           /-----\
                          // STUN  \\
                         |   Server  |
                          \\       //
                            \-----/


                       +--------------+             Public Internet
       ................|     NAT 2    |.......................
                       +--------------+


                       +--------------+             Private NET 2
       ................|     
NAT 1    |.......................
                       +--------------+

                            /-----\
                          // STUN  \\
                         |   Client  |
                          \\       //               Private NET 1
                            \-----/

                     Figure 1: STUN Configuration 

STUN 是用来探测NAT类型和获取私网内部客户程序IP地址和端口的。它只适用于锥形的NAT,和发送UDP包。STUN Server并不保存ClientIP地址和端口。但会在绑定回复包里告诉Client它的IP地址和端口。比较源IP 端口和回复包里的给的IP端口,如果不一致,就知道客户端在NAT后。为了探清楚NAT类型,可以发送绑定请求,让STUN Server换个IP和端口发回复,如果收到,就是完全锥形。

 
1.2.TURN

TURN
相当于一个Proxy服务器,可以用来对TCP协议穿透和Symmetric NAT的穿透。 

    TURN server  ======= TURN Server

       /                                           \

-----------------------          ------------------------- Symmetric NAT

    /                                               \

     A                                            B

 

1.3.ICE
TURNSTUN协议结合起来用。 

    NAT                                                        NAT

A   |      ---------ICE(TURN+STUN server)--------| B 

1.4.Full Proxy

解析协议报文并转发。客户端不用任何修改

 

2. 防火墙穿透

2.1 HTTP代理 rfc2616 GETPOSTCONNECT方法,CONNECT建立连接后直接发送数据。可能需要一个proxy或前置机来处理HTTP信息,再重新组包发给真正的接受主机或进程。 

2.2 Socks 5代理 RFC1928 知名端口1080,支持TCPUDP的防火墙穿透。其报文也是TLVTypeLengthValue)的形式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值