一、NAT——网络地址转化技术
1、网络地址转换技术NAT——主要用于实现位于内部网络的主机访问外部网络的功能。当局域网内的主机需要访问外部网络时,通过NAT技术可以将其私网地址转换为公网地址,并且多个私网用户可以共用一个公网地址,这样既可保证网络互通,又节省了公网地址。
NAT是将IP数据报文头部中的IP地址转换为另一个IP地址的过程,主要用于实现内部网络(私有IP地址)访问外部网络(公有IP地址)的功能。
2、应用场景:
(1)企业或家庭所使用的网络为私有网络,使用的是私有地址;运营商维护的网络为公共网络,使用的是公有地址。私有地址不能在公网中路由。
(2)NAT一般部署在连接内网和外网的网关设备上。当收到的报文源地址为私网地址、目的地址为公网地址时,NAT可以将源私网地址转换成一个公网地址。这样公网目的地就能够收到报文,并做出响应。
(3)此外,网关上还会创建一个NAT映射表,以便判断从公网收到的报文应该发往的私网目的地址。
3、静态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。
使用环境:如果希望一台主机优先使用某个关联地址,或者想要外部网络使用一个指定的公网地址访问内部服务器时,可以使用静态NAT。
缺点:一个公网IP只会分配给唯一且固定的内网主机。不节省IP地址。
4、动态NAT:基于地址池来实现私有地址和公有地址的转换。
过程分析:当内部主机A和主机B需要与公网中的目的主机通信时,网关RTA会从配置的公网地址池中选择一个未使用的公网地址与之做映射。每台主机都会分配到地址池中的一个唯一地址。当不需要此连接时,对应的地址映射将会被删除,公网地址也会被恢复到地址池中待用。当网关收到回复报文后,会根据之前的映射再次进行转换之后转发给对应主机。
缺点:动态NAT地址池中的地址用尽以后,只能等待被占用的公用IP被释放后,其他主机才能使用它来访问公网。
5、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同理。
6、Easy IP:可以映射到网关出接口的不同端口号上。
使用环境:Easy IP适用于小规模局域网中的主机访问Internet的场景。出接口可以通过拨号方式获取一个临时公网IP地址。Easy IP可以实现内部主机使用这个临时公网IP地址访问Internet。
过程分析: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地址和端口号,并转发报文到主机。
7、NAT Server-NAT 服务器技术:通过配置NAT服务器,可以使外网用户访问内网服务器。
NAT在使内网用户访问公网的同时,也屏蔽了公网用户访问私网主机的需求。当一个私网需要向公网用户提供Web和SFTP服务时,私网中的服务器必须随时可供公网用户访问。
需要配置服务器私网IP地址和端口号转换为公网IP地址和端口号并发布出去。路由器在收到一个公网主机的请求报文后,根据报文的目的IP地址和端口号查询地址转换表项。路由器根据匹配的地址转换表项,将报文的目的IP地址和端口号转换成私网IP地址和端口号,并转发报文到私网中的服务器。
过程分析:主机C需要访问私网服务器,发送报文的目的IP地址是200.10.10.1,目的端口号是80。RTA收到此报文后会查找地址转换表项,并将目的IP地址转换成192.168.1.1,目的端口号保持不变。服务器收到报文后会进行响应,RTA收到私网服务器发来的响应报文后,根据报文的源IP地址192.168.1.1和端口号80查询地址转换表项。然后,路由器根据匹配的地址转换表项,将报文的源IP地址和端口号转换成公网IP地址200.10.10.1和端口号80,并转发报文到目的公网主机。
8、相关配置命令总结:
(1)静态NAT配置:
*** nat static global +公网地址 inside +私网地址 命令——用于创建静态NAT。
global参数——用于配置外部公网地址。 inside参数——用于配置内部私有地址。
*** display nat static 命令——用于查看静态NAT的配置。
(2)动态NAT配置:
*** nat outbound 命令——用来将一个访问控制列表ACL和一个地址池关联起来,表示ACL中规定的地址可以使用地址池进行地址转换。 ACL用于指定一个规则,用来过滤特定流量。
*** nat address-group 命令——用来配置NAT地址池。
*** no-pat 命令——表示只转换数据报文的地址而不转换端口信息。
*** display nat address-group 命令——用来查看NAT地址池配置信息。
*** display nat outbound——用来查看动态NAT配置信息。 可以用这两条命令验证动态NAT的详细配置。
*** ping命令过后可以使用display nat session all 命令查看NAT 会话信息;
(3)Easy IP配置:
*** nat outbound acl-number 命令——用来配置Easy-IP地址转换。 Easy IP的配置与动态NAT的配置类似,需要定义ACL和nat outbound命令,主要区别是Easy IP不需要配置地址池,所以nat outbound命令中不需要配置参数address-group。
(4)NAT Server配置:
*** nat server protocol xxx global +公网地址 inside +私网地址 vpn-instance VPN实例名 acl ACL数 description 命令——用来定义一个内部服务器的映射表,外部用户可以通过公网地址和端口来访问内部服务器。
参数protocol——指定一个需要地址转换的协议; 参数global-address——指定需要转换的公网地址; 参数inside——指定内网服务器的地址。
*** display nat server 命令——用于查看详细的NAT服务器配置结果。 可以通过此命令验证地址转换的接口、全局和内部IP地址以及关联的端口号。