Network Address Translation (NAT、网络地址转换)

NAT 在计算机网络中是一种在IP数据包通过路由器或防火墙时重写来源IP地址或目的 IP 地址的技术。这种技术被普遍使用在有多台主机但只通过一个公有 IP 地址访问互联网的私有网络中。NAT 不仅能解决IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机

NAT 类型

根据 NAT 转换是对报文中的源地址进行转换还是对目的地址进行转换,NAT 可以分为源 NAT、目的 NAT 和双向 NAT,下面我们分别介绍这三种 NAT 类型

源 NAT

类别 描述 场景
NAT No-PAT NAT No-PAT 属于只转换地址,不转换端口的 NAT。可以实现私网地址到公网地址的一对一转换 NAT No-PAT 适用于上网用户较少且公网地址数与同时上网用户数量相同的场景
NAPT NAPT 是同时转换地址和端口的 NAT。NAPT 使用一个地址池,地址池里有多个公网地址可供转换。NAPT 可以实现多个私网地址到一个或多个公网地址的转换 NAPT 适用于公网地址数量较少,但需要上网的私网用户数量大的场景
Easy IP Ease IP 使用出接口的公网地址作为 NAT 转换后的地址 Ease IP 适用于仅有一个公网 IPv4 地址的场景,或者需要固定使用出接口的公网 IPv4 地址上网的场景

NAPT : Network Address and Port Translation (网络地址端口转换)

目的 NAT

类别 描述 场景
静态目的 NAT 静态 NAT 是一种转换报文目的 IP 地址的方式,转换前后的地址存在一种固定的映射关系 公司需要将内部网络中的资源提供给外部网络中的客户和出差员工访问
动态目的 NAT 动态 NAT 是一种动态转换报文目的 IP 地址的方式,转换前后的地址不存在固定的映射关系 移动终端通过目的地址访问无线网络
NAT Server NAT Server 属于特殊的静态目的 NAT,NAT Server 将发往私网服务器的报文中的公网地址转换为之对应的私网地址 学校或公司会部署一些服务器对公网用户提供服务

双向 NAT

双向 NAT 指的是在转换过程中同时转换报文的源信息和目的信息。双向 NAT 不是一个单独的功能,而是源 NAT 和目的 NAT 的组合。双向 NAT 是针对同一条流,在其经过设备时同时转换报文的源地址和目的地址。双向 NAT 主要应用在同时有外网用户访问内部服务器和私网用户访问内部服务器的场景

相关指令

系统视图

NAT 静态转换

# nat static global 公网地址 inside 私网地址
nat static global 40.0.0.1 inside 192.168.0.1

创建地址组

# nat address-group 地址组编号 起始地址 结束地址
nat address-group 1 40.0.0.1 40.0.0.254

查看静态 NAT 状态

display nat static

查看动态 NAT 状态

# display nat address-group 地址组编号
display nat address-group 1

查看 Ease IP 状态

display nat outbound

查看 NAT Server 状态

display nat server

接口视图

接口下使能静态转换

nat static enable 

NAT 静态转换

# nat static global 公网地址 inside 私网地址

NAT 动态转换 (路由器出接口配合 ACL 实现)

# nat outbound ACL编号 address-group 地址组编号 no-pat     # no-pat 不适用 pat (则使用 nat)
nat outbound 2000 address-group 1 no-pat 

NAPT 配置 (路由器出接口配合 ACL 实现)

# nat outbound ACL编号 address-group 地址组编号
nat outbound 2000 address-group 1

Ease IP 配置 (路由器出接口配合 ACL 实现)

# nat outbound ACL编号
nat outbound 2000

NAT Server 配置

# nat server protocol {tcp|udp|icmp|协议号} global 公网地址 公网端口 inside 私网地址 私网端口
nat server protocol tcp global 40.0.0.1 www inside 192.168.0.1 8080