NAT技术与NAT打洞浅析

NAT技术与NAT打洞原理浅析

NAT类型

NAT共有四种类型 , 按照映射转发的严格程度从宽松到严格可以排序为 :

全锥形 , (IP)受限锥形 , 端口受限锥形 , 对称型

他们的区别如下 :

  • 当主机{a:b}通过NAT{c:d}与服务器A{p:q}建立通信后 , 另一台服务器B{m:n}向{c:d}发送数据 , 可以被正常接收转发给{a:b}的 , 称为全锥形

    • 在全锥形NAT下建立的映射可以接收任意外部数据
  • 当主机{a:b}通过NAT{c:d}与服务器A{p:q}建立通信后 , 服务器A的另一端口{p:m}向{c:d}发送数据 , 可以被正常接收转发给{a:b}的 , 称为**(IP)受限锥形**

    • 在受限锥形NAT下建立的映射可以接收映射中指定IP地址的数据
  • 当主机{a:b}通过NAT{c:d}与服务器A{p:q}建立通信后 , 服务器A的另一端口{p:m}向{c:d}发送数据 , 不能被正常接收转发给{a:b}的 , 称为端口受限锥形

    • 在端口受限锥形NAT下建立的映射只能接收映射中指定IP:端口的数据

锥形NAT使用更少的端口映射 , 主机端口A与所有外部服务器连接时总会被映射为同一端口B

而对称型NAT使用更多的端口映射 , 主机端口A与每个外部服务器的不同端口连接时 , 都会被映射为不同的端口

对称型NAT的其余特性与端口受限型相同 , 是限制最严格 , 也是最安全的类型

NAT打洞

不同NAT的穿透性如下

在这里插入图片描述

主机A , B 互相打洞需要公网服务器C的参与 , C用来收集A,B的NAT地址和开启端口 , 具体过程如下

  • 全锥形 - 全锥形 : 主机A与C建立通讯 , C将A的NAT地址告知B , B可以直接向A发送数据

  • (端口)受限锥形 - (端口)受限锥形 : 主机A通过C得知B的NAT地址 , 向B的NAT地址发送数据 , 欲与B建立连接

    • 此时B会将A的请求包丢弃 , 因为B未曾与A的NAT地址建立连接 ; 而A在短时间内会等待B的回应
    • A通过C通知B , 使B向A的NAT地址发送回应报文
    • 之后A建立与B的NAT地址的连接 , B可以直接向A发送数据
  • 受限锥形 - 对称型 :

    • 主机A通过C得知B的NAT地址 , 向B的NAT地址发送数据 , 欲与B建立连接
      • 此时B会将A的请求包丢弃 , 因为B未曾与A的NAT地址建立连接 ; 而A在短时间内会等待B的回应
      • A通过C通知B , 使B向A的NAT地址发送回应报文 , 因为此处A为IP受限型 , 所以B用任意端口回应A都可被接收
      • 之后A建立与B的NAT地址的连接 , B可以直接向A发送数据
    • 最后B向A的NAT地址:端口发送连接请求 , A向来源地址做出回应 , 即可建立连接
  • 端口受限锥形 - 对称型 : 无法建立

    • 当A通过C通知B , 使B向A的NAT地址发送回应报文 , 因为此处A为IP+端口受限型 , 所以B需要用A发出请求时指定的B的端口做出回应. 而B对A通讯时使用的端口是无法得知的 , A无法指定准确的端口 , 固然可以对B发送65535个连接请求 ,或者依靠运气 , 规律猜测 , 但还是近似认为无法连接
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值