本文主要是介绍【每天学习一点新知识】互联网安全--NAT和PAT,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
1、NAT
1.1 为什么要有NAT
1.2 NAT概述
1.3 私有IP地址
1.4 静态NAT/动态NAT
2、PAT
2.1 PAT概述
2.2 静态PAT/动态PAT
1、NAT
1.1 为什么要有NAT
我们都知道IP v4的地址由32位(4个字节)组成,因此地址空间中只有4,294,967,296(2)个地址。不过,一些地址是为特殊用途所保留的,如专用网络(约1800万个地址)和多播地址(约2.7亿个地址),这减少了可在互联网上路由的地址数量。随着地址不断被分配给最终用户,IPv4地址枯竭问题也在随之产生。由 IANA 管理的 IPv4 位址,于 2011 年 1 月 31 日完全用尽。
所以为了缓解IP地址枯竭,节省地址空间的需要,出现了NAT,即网络地址转换技术。
1.2 NAT概述
出于安全和节省地址空间的需要,内部网络的终端只分配私有IP地址,但私有IP地址无法与公网中的终端进行通信,所以需要为内网终端分配一个公共网络可以识别的全球IP地址以实现内外网的通信。在通信过程中,边界路由器(连接内网和外网的路由器)实现私有IP地址和全球IP地址的转换,这就是NAT技术。
如图所示,边界路由器R根据内外网的地址转换来实现终端A和终端B的通信。
我们通常将内部网络使用的地址叫做私有地址,将外部网络使用的地址叫全球地址。
- 内部本地地址:内部网络终端使用的本地地址
- 内部全球地址:内部网络终端使用的全球地址
- 外部本地地址:外部网络终端使用的本地地址
- 外部全球地址:外部网络终端使用的全球地址
1.3 私有IP地址
内部网络使用的私有地址和公共网络使用的全球地址不能重复
-
10.0.0.0/8,即10.0.0.0~10.255.255.255
-
172.16.0.0/12,即172.16.0.0~172.31.255.255
-
192.168.0.0/16 ,即192.168.0.0~192.168.255.255
为什么不同的内部网络可以使用相同的私有地址?
因为内部网络使用的私有地址对外是透明的,是不可见的,两个使用相同私有地址空间的内部网络相互通信,看到的也都是对方经过转换后的全球IP地址。
1.4 静态NAT/动态NAT
- 静态NAT:是一对一的,一个私有IP固定对应到一个公网IP上实现地址的转换(直接写死)
- 动态NAT:提出了地址池的概念,将一个范围内可用的公网IP放进地址池中,当内部主机访问外部网络时为其临时分配一个地址池中未使用的地址,当该主机不再访问外部网络时回收分配的地址。因此,内部网络的私有IP地址转换为公用IP地址时,IP地址对是不确定的。(当地址池中的IP地址已经被分配完之后,内部终端想要与外部通信,路由器会丢弃该数据包)
动态NAT必须是内部网络终端发起会话请求,只能实现单向会话
静态NAT可以实现双向会话
2、PAT
2.1 PAT概述
如果同时有多个内部网络终端想要访问Internet中的服务器,而全球IP地址只有一个的情况下,我们就使用PAT(端口地址转换)来实现,让这些内部终端使用同一个IP地址,用不同的端口号来区分。
边界路由器在用全球IP取代私有IP时,必须用内部网络内唯一的源端口号取代IP分组的原始源端口号,在地址转换表中记录,将源IP地址、源端口号、全球地址、目的端口号绑定在一起。
当服务器的回应IP分组到达路由器时,通过目的端口号查找转换表,找到对应项,再用源IP地址、源端口号替换目的IP地址、目的端口号,将IP分组继续转发给内部网络。
说到底就是内部外部的IP地址及端口号的转换
不同的终端可能用相同的源端口号来标识终端内的进程,所以边界路由器必须用内部网络内唯一的源端口号取代IP分组中的原始源端口号,以此实现用源端口号唯一表示内部网络内终端的目的。
2.2 静态PAT/动态PAT
- 静态PAT:需要手工配置建立地址转换表实现某个本地IP和内部网络内唯一端口号之间的映射(直接写死)
- 动态PAT:多个用户同时用一个地址时,路由器用上层的TCP或UDP的端口等唯一标识某个地址。地址转换表中的每一项和某个会话绑定在一起,在会话开始时创立转换项,会话结束时删除该转换项。每一个会话用源和目的IP地址、源和目的端口号作唯一标识。
网上搜了很多资料,说PAT是NAT的一部分,就是当只有一个全球IP地址,而内部网络中又有多个终端想要与外网通信时,NAT也无法实现一对一分配IP地址,所以使用PAT,用端口号来进行进一步的区分。
这篇关于【每天学习一点新知识】互联网安全--NAT和PAT的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!