NAT 基础:NAT 技术原理,静态 NAT、动态 NAT、NAPT、Easy IP、NAT Server 的原理,以及各 NAT 的配置方法和转换示例。
NAT 技术原理:
NAT:对 IP 数据报文中的 IP 地址进行转换,是一种在现网中被广泛部署的技术,一般部署在网络出口设备,例如路由器或防火墙上。
NAT 的典型应用场景,在私有网络内部(园区、家庭)使用私有地址,出口设备部署 NAT,对于“从内到外”的流量,网络设备通过 NAT 将数据包的源地址进行转换(转换成特定的公有地址),而对于“从外到内的”流量,则对数据包的目的地址进行转换。
通过私有地址的使用结合 NAT 技术,可以有效节约公网 IPv4 地址。
编辑
静态 NAT 原理:
静态 NAT(土豪用法):
一个私有地址对应并固定一个公有地址,现在企业几乎不会使用(因为并不会节省公网 IP 地址,也并不安全,因为可以直接通过公网地址找到主机。)
每个私有地址都有一个与之对应并且固定的公有地址,即私有地址和公有地址的关系是一对一的映射。
支持双向互访:
私有地址访问 Internet 经过出口设备 NAT 转换时,会被转换成对应的公有地址。同时,外部网络访问内部网络时,其报文中携带的公有地址(目的地址)也会被 NAT 设备转换成对应的私有地址。
编辑
NAT 转换示例:
编辑
静态 NAT 配置方法介绍:
1、方式一:
接口视图下配置静态 NAT,在连接外网的接口上配置:
给每个私有地址都配置一个公有地址,一对一转换(土豪用法)
2、方式二:
1、系统视图下配置静态 NAT:
配置命令相同,视图为系统视图,之后在具体的接口下开启静态 NAT
2、进入需要开启 NAT 的接口,在接口下启用 NAT static 功能:
编辑
给多个主机配置静态 NAT 示例:
编辑
静态 NAT 的配置实例:
一个公网地址对应一个私网地址。
配完后需要在公网路由器配置回来的路由,回来时目标地址的私网地址改成公网地址即可。
编辑
动态 NAT 原理:
动态 NAT:静态 NAT 严格地一对一进行地址映射,这就是导致即便内网主机长时间离线或者不发送数据时,与之对应的公有地址也处于使用状态,为了避免地址浪费,动态 NAT 提出了地址池的概念:所有可用的公有地址组成的地址池。
当内部主机访问外部网络时,临时分配一个地址池中未使用的地址,并将改地址标记为“In Use”。当该主机不在访问外部网络时回收分配的地址,重新标记为“Not Use”。
地址池中有多少个公网地址,就可以有多少个主机一起上网。例如有三个公网地址,那就有三个主机可以一起上网,第四个主机想要上网时会因为没有公网地址而访问不了外网。只能等待分配出去的公网地址被回收,才能被分配到公网地址上网。所以在现在的阶段,动态 NAT 也是使用的比较少的。
编辑
动态 NAT 转换示例(1):
首先把公网地址组成一个地址池,当内网主机要访问外网的时候,报文到达了路由器,路由器会根据地址池中没有被使用的地址,在没有使用的地址中给他分配一个,做地址转换,然后把这个分配过去的公网地址做上“In Use”的标记,表示正在使用。 然后将数据发送给外网。
这样就会产生一个临时的 NAT 表项,生成的是临时的 NAT 映射表。如果这个公网地址长时间没有与外网通信,这个临时的 NAT 表项里的地址会存在老化现象,老化就相当于被删掉了,最后会被回收到动态 NAT 地址池,等待重新分配。如果表项不断的转换地,老化时间就会不断刷新,如果没有转换地址,老化时间到了,改地址就会被回收。
编辑
注意:
动态的地址分配是看地址池中哪个地址空闲了,才做出的临时分配。例如上午获取的公网地址时 122.1.2.2,中午出去吃饭空闲了,地址被回收了。下午再来时访问外网被分配的地址可能就是 122.1.2.3 了。
所以说动态 NAT 地址分配的公网地址不是固定的,而是会存在变化的。
而静态 NAT 配置好后,公网地址是固定不变的,内网主机会一直使用这个静态 NAT 分配的公网地址。
回包时也是根据映射表查看公网地址对应的私网地址,进行地址转换,发送到内网主机。
编辑
动态 NAT 配置介绍:
1、创建地址池:
第一步配置地址池范围,可以配置一个公网地址,也可以配置一个范围的公网地址。有多少个公网地址就有多少个主机可以同时访问外网,所以现在动态 NAT 用的也比较少。
2、配置地址转换 ACL 规则:
配置第二步的作用是允许某网段 IP 地址通过,只对这个范围的 IP 地址进行 NAT 地址转换,限制其他网段或其他范围的 IP 地址进行 NAT 地址转换。
在有多个地址池时,用 acl 访问控制列表可以控制哪些内网地址用哪个地址池。
3、接口视图下配置带地址池的 NAT Outbound:
接口下关联 ACL 与地址池进行动态地址转换,no-pat 参数指定不进行端口转换
注:第三步配置好后,要将对方路由器配置路由表,配置的回程路由目的地址是地址池中的地址,要让转换的地址有回来的路。
编辑
no-pat(No-Port Address Translation,非端口地址转换)
动态 NAT 选择地址池中的地址进行地址转换时不会转换端口号,即 No-PAT
编辑
编辑
动态 nat 在华为 ensp 模拟器中不能够很好的实现,所以不推荐在模拟器上配置。
NAPT 原理:
编辑
1、NAPT 的 NAT 映射表比动态 NAT 的 NAT 映射表多了端口号,不同的私网地址会被分配到不同的端口号。同个公有地址也会被分到不同的端口号。
2、在做地址转换时,一个公有地址会被分配到不同的端口号,对应多个私有地址。
3、回包的时候也是依靠 NAT 映射表中的地址端口号,查找与之对应的地址进行回包。
4、相同的公网地址回包时,就是依靠端口号进行区分。然后找到该端口号对应的私有地址进行回包。
5、在做地址转换时,NAT 映射表中公有地址端口号是不会重复的,除非老化后,该端口号被回收,该端口号才会被重新分配。详情可看产品手册。
6、使用 NAPT 技术的话,理论上一个公有地址可以被分配到 65535+65535 个端口号(TCP 1-65535 UDP 1-65535),也就是说一个公有地址可以分配给几万个个私有地址使用。
编辑
NAPT 与动态 NAT 的区别:
1、动态 NAT 选择地址池中的地址转换时不会转换端口号,即 no-pat,动态 nat 是非端口地址转换。公有地址与私有地址还是 1:1 的映射关系,无法提高公有地址利用率。
2、NAPT(Network address and port Translation,网络地址端口转换),NAPT 是网络地址端口转换 :从地址池中选择地址进行地址转换时不仅转换 IP 地址,同时也会对端口号进行转换,从而实现公有地址与私有地址的 1:N 映射(一个公有地址对应多个私有地址),可以有效提高公有地址的利用率。
NAPT 的配置方法:
对比动态 NAT 的配置方法,NAPT 只需要在动态 NAT 的基础上,把 no-pat 删掉即可。
编辑
查看 nat 映射表:
Easy IP:
Easy IP:实现原理和 NAPT 相同,同时转换 IP 地址、传输层端口,区别在于 Easy IP 没有地址池的概念,使用接口地址做为 NAT 转换公有地址。
Easy IP 适用于不具有固定公网 IP 的场景:如通过 DHCP、PPPoE 拨号获取的私有网络出口,可以直接获取到的动态地址进行转换。
Easy IP 适用于小型公司或者家庭网络,没必要让运营商分配公有地址的时候使用。这时候就可以直接利用出口路由器的外网接口的地址来做一个 NAPT。
编辑
Easy IP 配置方法:
直接创建 ACL 列表
配置访问规则,允许哪些内网用户进行地址转换
进入外网接口使用命令:nat outbound 2000 ---(首先接口要配置 IP 地址,才能转换)
将通过的数据 IP 地址转换成接口的 IP 地址
Easy IP 配置示例:
只需要用 ACL 将内网主机的地址段规定好,然后在在外网接口上直接用就行了
编辑
NAT Server(静态 PAT):
NAT Server 和静态 NAT 类似。
静态 NAT 是 地址的一对一转换,允许外部主机访问内网主机的所有端口,可以双向互访,不安全。
NAT Server 是地址和端口的 一对一转换,只能让外部主机访问内网服务器的特定端口,更加的安全,仅支持单项互访,及外网主动访问内网。一般用于提供外网主机访问内网服务器的场景。
NAT Server 使用场景:
NAT Server:指定[公有地址:端口]与[私有地址:端口]的一对一映射关系,将内网服务器映射到公网,当私有网络中的服务器需要对公网提供服务时使用。
外网主机主动访问[公有地址:端口]实现对内网服务器的访问。
当希望外部设备访问公司内部服务的时候,就可以使用 NAT Server 技术,可以让外部设备访问设定好的服务,不能访问公司所有服务,只允许访问这些允许访问的服务。
编辑
NAT Server 转换示例:
编辑
NAT Server 配置示例:
在 R1 上配置 NAT Server 将内网服务器 192.168.1.10 的 80 端口映射到公有地址 122.1.2.1 的 8080 端口。
配置方法:
1、进入连接外网接口:
2、进入接口后配置公有 IP 地址
3、配置 nat server 转换,将 Tcp 协议访问 202.10.10.1 为目标地址的数据转换成 192.168.1.10 8080 端口。
编辑
版权声明: 本文为 InfoQ 作者【Python-派大星】的原创文章。
原文链接:【http://xie.infoq.cn/article/f201b594390266aeaf1ccebba】。文章转载请联系作者。
评论