前言
随着Internet的发展和网络应用的增多,有限的IPv4公有地址已经成为制约网络发展的瓶颈。为解决这个问题,NAT(Network Address Translation,网络地址转换)技术应需而生。
NAT技术主要用于实现内部网络的主机访问外部网络。一方面NAT缓解了IPv4地址短缺的问题,另一方面NAT技术让外网无法直接与使用私有地址的内网进行通信,提升了内网的安全性。 本次将了解NAT的技术背景, 学习不同类型NAT的技术原理、使用场景。
目录
NAT产生背景
随着互联网用户的增多,IPv4的公有地址资源显得越发短缺。 同时IPv4公有地址资源存在地址分配不均的问题,这导致部分地区的IPv4可用公有地址严重不足。 为解决该问题,使用过渡技术解决IPv4公有地址短缺就显得尤为必要。
私网IP地址
公有地址:由专门的机构管理、分配,可以在Internet上直接通信的IP地址。【在网络中是唯一存在的,一定不会出现地址冲突】
私有地址:组织和个人可以任意使用,无法在Internet上直接通信,只能在内网使用的IP地址。【使用私网地址的设备:如果要进行外网的访问,则需要在出口设备上进行地址的转换,将地址转换为公网地址】
A、B、C类地址中各预留了一些地址专门作为私有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
公网路由无法确认私网路由的唯一性,所以公网设备不维护私网路由。
公网的设备一定不会存在私网信息(地址、路由)
NAT技术原理
NAT:对IP数据报文中的IP地址进行转换,是一种在现网中被广泛部署的技术,一般部署在网络出口设备,例如路由器或防火墙上。
NAT的典型应用场景:在私有网络内部(园区、家庭)使用私有地址,出口设备部署NAT,对于“从内到外”的流量,网络设备通过NAT将数据包的源地址进行转换(转换成特定的公有地址),而对于“从外到内的”流量,则对数据包的目的地址进行转换。
通过私有地址的使用结合NAT技术,可以有效节约公网IPv4地址。
NAT需要在路由器的出口进行配置。
静态NAT
静态NAT:每个私有地址都有一个与之对应并且固定的公有地址,即私有地址和公有地址之间的关系是一对一映射。
支持双向互访:私有地址访问Internet经过出口设备NAT转换时,会被转换成对应的公有地址。同时,外部网络访问内部网络时,其报文中携带的公有地址(目的地址)也会被NAT设备转换成对应的私有地址。
简述
一对一做转换
固定的转换关系
双向互访
安全性较低
静态NAT配置介绍
动态NAT
动态NAT:静态NAT严格地一对一进行地址映射,这就导致即便内网主机长时间离线或者不发送数据时,与之对应的公有地址也处于使用状态。为了避免地址浪费,动态NAT提出了地址池的概念:所有可用的公有地址组成地址池。
当内部主机访问外部网络时临时分配一个地址池中未使用的地址,并将该地址标记为“In Use”。当该主机不再访问外部网络时回收分配的地址,重新标记为“Not Use”。
简述
将地址池中的地址随机分配进行转换。
本质还是一对一进行转换,转换关系不固定。
地址池的地址数量决定了同一时刻访问外网的数量,上网服务得不到保障。
可以双向互访(私网可访问公网,公网可访问私网),但是需要内网主机先访问外网,当外网得知对应的私网地址时,可以主动访问内网。
动态NAT配置介绍
NAPT
动态NAT选择地址池中的地址进行地址转换时不会转换端口号,即No-PAT(No-Port Address Translation,非端口地址转换),公有地址与私有地址还是1:1的映射关系,无法提高公有地址利用率。
NAPT(Network Address and Port Translation,网络地址端口转换):从地址池中选择地址进行地址转换时不仅转换IP地址,同时也会对端口号进行转换,从而实现公有地址与私有地址的1:n映射,可以有效提高公有地址利用率。
简述
将地址池中的地址随机分配进行地址转换并且将源端口号也进行转换。
本质上是多个私网IP对一个公网IP进行转换,转换关系不固定。
可以提供大量拥护共享公网地址上网。
只允许使用内网主动访问公网。
Easy IP
Easy IP:实现原理和NAPT相同,同时转换IP地址、传输层端口,区别在于Easy IP没有地址池的概念,使用接口地址作为NAT转换的公有地址。
Easy IP适用于不具备固定公网IP地址的场景:如通过DHCP、PPPoE拨号获取地址的私有网络出口,可以直接使用获取到的动态地址进行转换。
简述
直接利用外网接口地址做动态的NAPT。
无需地址池
可以提供大量用户上网
只允许内网访问公网
NAT Server
NAT Server:指定[公有地址:端口]与[私有地址:端口]的一对一映射关系,将内网服务器映射到公网,当私有网络中的服务器需要对公网提供服务时使用。 外网主机主动访问[公有地址:端口]实现对内网服务器的访问。
自己实验做的配置及笔记:
NAT配置+拓扑【后续补充】
![](https://i-blog.csdnimg.cn/blog_migrate/76f2a5a1daa2320e92c5a0c042232eba.png)
静态NAT:
[AR1]interface GigabitEthernet 0/0/1
[AR1-GigabitEthernet0/0/1]nat static global 100.1.12.3 inside 192.168.1.253
是实现私网地址和公网地址 一对一映射
本质是进行为了网络访问安全设计的(被访问的公网设备,认为访问的源是一个公网设备)
本身是不安全的,因为静态NAT可以让公网设备主动访问内网设备
动态NAT:
[AR1]nat address-group 1 100.1.12.10 100.1.12.20
[AR1]acl 2000
[AR1-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255
[AR1]int gi 0/0/1
[AR1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat
模拟器会将每一个报文都当作一个上网的主机,当公网地址池中的地址数量耗尽,私网设备就不能访问公网了,需要等待公网地址被回收到公网地址池,才能继续访问。
可以实现公网地址的重复利用,但是在访问的过程中还是地址的一一对应
NAPT:
[AR1]nat address-group 1 100.1.12.10 100.1.12.13
[AR1]acl 2000
[AR1-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255
[AR1]int gi 0/0/1
[AR1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1
NAPT不光指定地址的转换,还要做端口的转换,通过地址+端口的信息来确保唯一的地址转换
通过端口来区分不同私网地址,最多可以同时实现6W+个主机同时使用一个公网地址进行地址转换
适用于中大型网络(NAPT至少要使用一个公网地址来作为地址池地址进行分配)
easy ip:
[AR1]acl 2000
[AR1-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255
[AR1]int gi 0/0/1
[AR1-GigabitEthernet0/0/1]nat outbound 2000
直接在出口设备上使用连接外网的接口地址,作为转换后的公网地址
适用于小型网络
NAT server:
在内网部署服务,由外网的设备进行数据的访问。
[AR1]interface GigabitEthernet 0/0/1
[AR1-GigabitEthernet0/0/1]nat server protocol tcp global 100.1.12.100 123 inside 192.168.1.100 80
小结NAT分类:【我喜欢上面的理解】
NAT的类型:
1.转换的内容
1)源NAT
- 静态NAT
- 动态NAT
- NAPT
- Easy IP
2)目的NAT
- NAT server
2.转换的方式
1)NAT
- 静态NAT
- 动态NAT
2)PAT【端口多路复用(Port address Translation)】[多对一]
- NAPT
- Easy IP
- NAT server
总结
在私有网络内使用私有地址,并在网络出口使用NAT技术,可以有效减少网络所需的IPv4公有地址数目,NAT技术有效地缓解了IPv4公有地址短缺的问题。
动态NAT、NAPT、Easy IP为私网主机访问公网提供源地址转换。 NAT Server实现了内网主机对公网提供服务。 静态NAT提供了一对一映射,支持双向互访。