NAT的几种类型

15 篇文章 1 订阅

一、概念

NAT(Network Address Translation,网络地址转换),当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
要真正了解NAT就必须先了解现在IP地址的适用情况,私有IP地址是指内部网络或主机的IP 地址,公有IP地址是指在因特网上全球唯一的IP地址。RFC 1918为私有网络预留出了三个 IP地址块,如下:
A 类:10.0.0.0~10.255.255.255
B 类:172.16.0.0~172.31.255.255
C 类:192.168.0.0~192.168.255.255
上述三个范围内的地址不会在因特网上被分配,因此可以不必向ISP或注册中心申请而在公司或企业内部自由使用。

二、分类

NAT主要可以分为两类:基本NAT和NAPT(Network Address/Port Translation):
1)基本NAT一般是用于NAT拥有多个公网IP的情形下,将公网IP地址与内网主机进行静态绑定。
2)NAPT(Network Address/Port Translators):这种才是常见的NAT。NAPT将内部连接映射到外 部网络中的一个单独IP地址上,同时在该地址上加上一个由NAT设备选定的端口号。
一般来讲, NAT可以分为四种类型,分别是:

  • 全锥型(Full Cone)
  • 限制锥型(Restricted Cone), 或者说是IP受限锥型
  • 端口受限锥型(Port Restricted Cone), 或者说是IP + PORT受限锥型
  • 对称型(Symmetric)

假定公网一IP地址是45.6.99.100,监听端口是7545
另一IP地址是46.7.100.101,监听端口是7546
NAT routerIP地址是8.88.88.88
NAT内部client是192.168.0.3
假定client(192.168.0.3, 100)给一公网IP(45.6.99.100,7545)发送报文,报文到达路由器,路由器在自己的公网ip上开辟一个端口800,从而建立了一个映射关系(8.8.8.8,800)<--->(192.168.0.3,100), 建立映射关系后,所以(192.168.0.3,100)和(45.6.99.100,7545)之间的报文都通过这 个映射关系进行转发。

1、client(192.168.0.3, 100)和一公网IP(45.6.99.100,7545)在路由器上建立好连接关系后,如果client(192.168.0.3,100)又给(46.7.100.101,7546)发送数据:

1)复用旧的映射关系(8.8.8.8, 800)<--->(192.168.0.3, 100)和(46.7.100.101,7546) 通信,这就是锥型(Cone)NAT;
2)创建新的映射关系(8.8.8.8, 801)<--->(192.168.0.3, 100)和(46.7.100.101,7546) 通信, 这就是对称型NAT。

2、client(192.168.0.3, 100)和一公网IP(45.6.99.100,7545)在路由器上建立好连接关系后,如果这个时候路由器(8.8.8.8)在800端口上收到从另外一台server(46.7.100.101,7546)发来的数据,是不是应该转发给(192.168.0.3, 100)呢?

有四种情况:

  • 无条件转发给(192.168.0.3, 100), 这就是全锥型(Full Cone)NAT。
  • (192.168.0.3, 100)之前给(46.7.100.101)发送过数据,则转发,是受限锥型(Restricted Cone)。
  • (192.168.0.3, 100)之前给(46.7.100.101,7546)发送过数据,则转发,是端口受限锥型(Port Restricted Cone)。
  • 丢弃报文,拒绝转发, 这就是对称型NAT。

通过五元组来分析NAT

Symmetric NAT型 (对称型)

 

在客户机时    192.168.0.8:4000——6.7.8.9:8000     192.168.0.8:4000——6.7.8.10:8000
在网关时,两个不同session端口号不同     
1.2.3.4:62000——6.7.8.9:8000      1.2.3.4:62001——6.7.8.10:8000
服务器C      6.7.8.9:8000
服务器D     6.7.8.10:8000

Cone NAT型(圆锥型)

 

在客户机时              192.168.0.8:4000——6.7.8.9:8000     192.168.0.8:4000——6.7.8.10:8000
在网关时,两个不同session但端口号相同     
1.2.3.4:62000——6.7.8.9:8000     1.2.3.4:62000——6.7.8.10:8000
服务器C           6.7.8.9:8000
服务器D           6.7.8.10:8000

a)Full Cone NAT(完全圆锥型):从同一私网地址端口192.168.0.8:4000发至公网的所有请求都映射成同一个公网地址端口1.2.3.4:62000 ,192.168.0.8可以收到任意外部主机发到1.2.3.4:62000的数据报。
b)Address Restricted Cone NAT (地址限制圆锥型):从同一私网地址端口192.168.0.8:4000发至公网的所有请求都映射成同一个公网地址端口1.2.3.4:62000,只有当内部主机192.168.0.8先给服务器C 6.7.8.9发送一个数据报后,192.168.0.8才能收到6.7.8.9发送到1.2.3.4:62000的数据报。
c)Port Restricted Cone NAT(端口限制圆锥型):从同一私网地址端口192.168.0.8:4000发至公网的所有请求都映射成同一个公网地址端口1.2.3.4:62000,只有当内部主机192.168.0.8先向外部主机地址端口6.7.8.9:8000发送一个数据报后,192.168.0.8才能收到6.7.8.9:8000发送到1.2.3.4:62000的数据报。   

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值