演示目标:演示外部全局地址与外部局部地址的使用环境。
演示环境:如下图9.72所示的演示环境。
演示背景:在图9.72的环境中,公共网络中的202.202.1.2需要访问192.168.2.100的服务器,但是由于企业网络内部的安全需求,比如:IP地址审计,不允许公共网络的主机202.202.1.2的IP地址出现在私有网络内部,要求将202.202.1.2的IP地址转换成私有专用IP地址192.168.2.50来访问192.168.2.100的服务器,在这个环境中路由器R1的E1/0接口为NAT的内部接口;E1/1为NAT的外部接口,现在要求实施上述配置:
演示步骤:
第一步:配置NAT外部到内部的翻译,先前的NAT配置中,使用的都是ip nat inside Source,将内部地址向外部的翻译,这里需要执行外部向内部的翻译,具体的配置如下所示:
配置NAT外部到内部的翻译:
R1(config)#ip nat outside source static 202.202.1.2192.168.2.50
* 当从公共网络访问内部网络时,将NAT外部的地址202.202.1.2翻译成内部地址192.168.2.50,那么202.202.1.2到内部会话的源IP将以192.168.2.50体现在内网中。
R1(config)#inte e1/0
R1(config-if)#ip nat inside
R1(config)#inte e1/1
R1(config-if)#ip nat outside
第二步:现在到外部主机202.202.1.2 ping 192.168.2.100;会发现一个问题,NAT的翻译生效了,如下图9.73所示,与前面NAT地址类型中描述的理论一致,在该环境中,外部全局IP是202.202.1.2,也就是外部发起访问主机的源IP地址,外部本地地址为192.168.2.50,也就是外部需要被执行翻译后的IP地址,在这种情况下内部本地地址与内部全局地址相同,都是被访问的目标服器192.168.2.100。但是会发现无法ping通192.168.2.100,如下图9.74所示,翻译生效了,但是ping不通,这是什么原因?
第三步:现在来分析NAT翻译生效,但是无法ping通的原因,NAT生效表示,主机202.202.1.2进入NAT路由器后,源地址被成功的翻译成192.168.2.50这个IP与192.168.2.100这个主机通信,当192.168.2.100这个主机回应192.168.2.50这个主机的通信时,在它本地的子网中(NAT的内部网络上)根本就没有这个192.168.2.50的IP地址,因为,真正的接收者是在NAT的外部,所以,使用NAT路由器上关于192.168.2.0这个子网的直连路由无法完成通信,必须为NAT路由器指示一条通过E1/1接口到目标主机192.168.2.50的主机路由,关于主机路由的配置如下所示,当主机路由配置完成后,再次检测202.202.1.2主机ping 192.168.2.100,结果如下图9.75所示。如果,此时在主机192.168.2.100上使用协议分析器捕获202.202.1.2 ping 自己的数据帧,会如下图9.76所示,可明显看出ICMP报文的源地址是192.168.2.50,事实上,因为NAT将202.202.1.2翻译成为192.168.2.50这个地址。
在NAT路由器上配置一条到192.168.2.50的主机路由:
R1(config)#ip route 192.168.2.50 255.255.255.255 e1/1
题问:在真实的工程环境中,202.202.1.2这个公共IP地址直接访问192.168.2.100这个私有网络专用地址,这可能吗?是不是同时也需要将192.168.2.100这个私有网络IP地址映射成为一个公共IP地址,再提供给公共网络主机202.202.1.2访问?
正确,这种思考方式很全面,因为上述演示环境,主要为了描述NAT外部到内部的翻译,所以让202.202.1.2直接访问了私有网络专用IP地址192.168.2.100,但事实上,您可以使用如下的配置来完善整个NAT的配置,根据下面的配置可以得出这样一种情况,当公共网络的主机202.202.1.2访问202.202.1.100时,实际上就是访问的192.168.1.100,此时,NAT的内部本地地址是192.168.1.100;内部全局地址是202.202.1.100;当202.202.1.2的数据报文进入NAT路由器后,它会被翻译成192.168.2.50访问192.168.2.100的私有网络专用服务器,此时的外部全局地址就是202.202.1.2;外部本地地址就是192.168.2.50,具体将如下图9.77所示:
完善的NAT配置:
R1(config)#ip nat inside source static192.168.2.100 202.202.1.100
R1(config)#ip nat outside source static 202.202.1.2192.168.2.50