NAT
前言

NAT应用场景
随着网络设备的数量不断增长,对IPv4地址的需求也不断增加,导致可用IPv4地址空间逐渐耗尽。解决IPv4地址枯竭问题的权宜之计是分配可重复使用的各类私网地址段给企业内部或家庭使用。但是,私有地址不能在公网中路由,即私网主机不能与公网通信,也不能通过公网与另外一个私网通信。
NAT是将IP数据报报头中的IP地址转换为另一个IP地址的过程,主要用于实现内部网络(私有IP地址)访问外部网络(公有IP地址)的功能。NAT一般部署在连接内网和外网的网关设备上。当收到的报文源地址为私网地址、目的地址为公网地址时,NAT可以将源私网地址转换成一个公网地址。这样公网目的地就能够收到报文,并做出响应。此外,网关上还会创建一个NAT映射表,以便判断从公网收到的报文应该发往的私网目的地址。




NAT 优点

NAT类型
- NAT 的实现有多种方式,适用于不同的场景
静态NAT
在本示例中,源地址为192.168.1.1的报文需要发往公网地址100.1.1.1。在网关RTA上配置了一个私网地址192.168.1.1到公网地址200.10.10.1的映射。当网关收到主机A发送的数据包后,会先将报文中的源地址192.168.1.1转换为200.10.10.1,然后转发报文到目的设备。目的设备回复的报文目的地址是200.10.10.1。当网关收到回复报文后,也会执行静态地址转换,将200.10.10.1转换成192.168.1.1,然后转发报文到主机A。和主机A在同一个网络中其他主机,如主机B,访问公网的过程也需要网关RTA做静态NAT转换。

- 如果希望一台主机优先使用某个关联地址,或者想要外部网络使用一个指定的公网地址访问内部服务器时,可以使用静态NAT
- 但这种一对一的IP地址映射无法缓解公用地址短缺的问题
动态NAT
本示例中,当内部主机A和主机B需要与公网中的目的主机通信时,网关RTA会从配置的公网地址池中选择一个未使用的公网地址与之做映射。每台主机都会分配到地址池中的一个唯一地址。当不需要此连接时,对应的地址映射将会被删除,公网地址也会被恢复到地址池中待用。当网关收到回复报文后,会根据之前的映射再次进行转换之后转发给对应主机。

- 动态NAT地址池中的地址用尽以后,只能等待被只占用的公网地址被释放后,其他主机才能使用它来访问公网。
NAPT
本例中,RTA收到一个私网主机发送的报文,源IP地址是192.168.1.1,源端口号是1025,目的IP地址是100.1.1.1,目的端口是80。RTA会从配置的公网地址池中选择一个空闲的公网IP地址和端口号,并建立相应的NAPT表项。这些NAPT表项指定了报文的私网IP地址和端口号与公网IP地址和端口号的映射关系。之后,RTA将报文的源IP地址和端口号转换成公网地址200.10.10.1和端口号2843,并转发报文到公网。当网关RTA收到回复报文后,会根据之前的映射表再次进行转换之后转发给主机A。主机B同理。

NAPT(Network Address Port Translation),也称NAT-PT或PAT,网络地址端口转换,允许多个私网地址映射到同一个公网地址的不同端口- 通常适用于大型企业网络(申请多个固定的公网地址)
Easy IP
Easy IP适用于小规模局域网中的主机访问Internet的场景。小规模局域网通常部署在小型的网吧或者办公室中,这些地方内部主机不多,出接口可以通过拨号方式获取一个临时公网IP地址。Easy IP可以实现内部主机使用这个临时公网IP地址访问Internet。
本示例说明了Easy IP的实现过程。RTA收到一个主机A访问公网的请求报文,报文的源IP地址是192.168.1.1,源端口号是1025。RTA会建立Easy IP表项,这些表项指定了源IP地址和端口号与出接口的公网IP地址和端口号的映射关系。之后,根据匹配的Easy IP表项,将报文的源IP地址和端口号转换成出接口的IP地址和端口号,并转发报文到公网。报文的源IP地址转换成200.10.10.10/24,相应的端口号是2843。
路由器收到回复报文后,会根据报文的目的IP地址和端口号,查询Easy IP表项。路由器根据匹配的Easy IP表项,将报文的目的IP地址和端口号转换成私网主机的IP地址和端口号,并转发报文到主机。

- Easy IP 适用于小规模局域网中的主机访问Internet的场景
- 如:家庭、小型网吧、小型办公室,这些地方内部主机不多,出接口可以通过
拨号方式获取一个临时公网IP地址
NAT服务器

- NAT具有
“屏蔽”内部主机的作用,但有时内网需要向外网提供服务 - 当外网用户访问内网服务器时,
NAT Servce事先通过配置好的“公网IP地址+端口号”与“私网IP地址+端口号”间的映射关系,将服务器的“公网IP地址+端口号”根据映射关系替换成对应的“私网IP地址+端口号”
NAT配置
静态NAT
进入到对应的端口:
nat nat static enable 开启NAT静态功能
nat static global 公网地址 inside 私网地址 创建静态NAT
display nat static 查看静态NAT的配置

动态NAT
nat address-group 编号 公网地址范围 配置nat地址池
nat outbound [acl编号] 关联一个ACL和一个NAT地址池
address-group 编号[no-pat] ACL用来匹配能够转换的源地址
no-pat 只转换地址而不转换端口
display nat address-group 查看NAT地址池配置信息
displat nat outbound 查看动态NAT配置信息
dis nat session all 查看nat转换表
Easy Ip
nat oubount [acl 编号] 关联出站接口和ACL
dis bat oubound 查看outbound 的配置结果

NAT服务器配置
nat server protocol tcp/udp 配置NAT服务器
global 公网地址/接口 端口 inside 私网地址 端口
display nat server 验证nat 服务器

外网访问内网的方法
- 端口映射,NAT服务器 - 发布服务到外网
display nat server 验证nat 服务器
[外链图片转存中…(img-GrFBaa0F-1629551481489)]
外网访问内网的方法
- 端口映射,NAT服务器 - 发布服务到外网
- VPN