网络基础知识笔记08 NAT网络地址转换
随着Internet的发展和网络应用的增多,IPv4地址枯竭已经成为制约网络发展的瓶颈。尽管IPv6可以从根本上解决IPv4地址空间不足的问题,但目前众多的网络设备和网络应用仍是基于IPv4的,因此在IPv6广泛应用之前,一些过渡技术的使用是解决这个问题的主要技术手段。
网络地址转换技术NAT(Network Address Translation)主要用于实现位于内部网络的主机访问外部网络的功能。当局域网内的主机需要访问外部网络时,通过NAT技术可以将其私网地址转换为公网地址,并且多个私网用户可以共用一个公网地址,这样既可保证网络互通,又节省了公网地址。
本笔记主要介绍网络地址转换技术的工作原理和基本配置。
静态NAT的配置方法
拓扑图如下所示。有两台私网主机PCA和PCB,他们想通过NAT的方式访问位于公网的主机PCC。其中PCA通过静态NAT的方式从私网地址192.168.1.1映射成100.1.1.100来访问PCC,PCB通过静态NAT的方式从私网地址映射成100.1.1.200来访问PCC。
Step 1:基本配置。为各个设备以及端口配置IP,以及配置静态路由保证网络调通。
网关设备RA的基本配置:
运营商ISP路由设备RB的基本配置:
RB作为公网的路由设备,在这个场景中只需配置端口IP即可,因为公网的路由器不可能学习到内网的路由,所以不必添加静态路由指向192.168.1.0网段。
为主机设备添加IP配置在此省略。
Step 2:在网关设备RA配置静态NAT
在RA连接外网的端口GE0/0/1上配置静态NAT:
命令:nat static global { 公网地址 } inside { 私网地址 }
用于创建静态NAT。
global参数用于配置外部公网地址。
inside参数用于配置内部私有地址。
Step 3:通过抓包进行配置验证
通过PCA发送ping包到外网设备200.1.1.1,可以发现数据包正确到达目的地。
首先通过抓包软件抓取RA的入接口上的数据包:
可以看到此时数据包的源IP地址是填写了PCA的私网地址192.168.1.1,那么当数据包经过了RA后会发生什么变化呢?
接着通过抓包软件抓取RA出接口上的数据包:
此时RA将私网地址192.168.1.1通过静态NAT的方式映射为一个公网的地址100.1.1.100,再转发给公网的设备。对于公网的设备来说,与其通信的IP地址不是192.168.1.1,而是映射的公网地址100.1.1.100。
对配置进行验证:
动态NAT的配置方法
配置动态NAT需要与ACL(访问控制列表)搭配使用。
拓扑图和静态NAT的一致。网络的基本配置已省略。
Step 1:配置NAT地址池
命令:nat address-group { 组号 } { IP起始地址 } { IP终止地址 }
该命令用于配置NAT地址池。
以上命令配置了一个地址范围为100.1.1.50到100.1.1.250的地址池,地址池的组号为1(范围从0到7)。
Step 2:配置ACL匹配需要进行NAT的流量
配置需要进行NAT的流量为192.168.1.0网段
Step 3:应用动态NAT
命令:nat outbound { ACL号 } address-group { 地址池号 } no-pat
用来将一个访问控制列表ACL和一个地址池关联起来,表示ACL中规定的地址可以使用地址池进行地址转换。
使用地址池1(address-group 1)中的地址进行地址转换。
Tips:no-pat是一个可选的参数,表示只转换数据报文的地址而不转换端口信息。
Step 4:配置验证
抓包查看转换情况
对配置进行验证:
命令:display nat address-group { 组号 } 用来查看NAT地址池配置信息。
命令:display nat outbound 查看动态NAT配置信息。
可以用这两条命令验证动态NAT的详细配置。在本示例中,指定接口GE0/0/1与ACL关联在一起,并定义了用于地址转换的地址池1。参数no-pat说明没有进行端口地址转换。
Easy IP的配置方法
Easy IP配置方法相对更简单。因为其不需配置一个地址池,而是直接通过将私网地址映射为网关RA的出接口GE0/0/1的IP地址。当多个私网地址需要地址转换时,则利用端口号来加以区分。拓扑图同上。
Step 1:配置Easy IP
命令:nat outbound { ACL号 }
用来配置Easy-IP地址转换。
在本示例中,命令nat outbound 2000表示对ACL 2000定义的地址段进行地址转换,并且直接使用GE0/0/1接口的IP地址作为NAT转换后的地址。
Step 2:配置验证
命令:display nat outbound
查看命令nat outbound的配置结果。
Address-group/IP/Interface表项表明接口和ACL已经关联成功,type表项表明Easy IP已经配置成功。
再通过抓包软件查看地址转换的情况:
NAT服务器的配置方法
拓扑图与上面示例基本一致,私网中换成一台运行http服务的服务器,IP地址为192.168.1.1/24,公网中换成一台可以访问http服务的客户端,IP地址为200.1.1.1/24。其他的网络基本配置基本不变。
现有一台公网的客户端想要访问私网的服务器。按照实际情况,公网的设备Client不可能拥有访问私网的路由,那么就需要为私网服务器Server提供一个公网的IP地址,让公网的设备Client可以通过这个IP地址访问到私网的服务器。
Step 1:配置NAT服务器
网关路由器RA的出接口GE0/0/1配置如下:
命令:nat server protocol { 网络协议号|icmp|tcp|udp } global { 公网地址 端口号 } inside { 私网地址 端口号 } vpn-instance VPN实例名称 acl ACL号 description 描述内容
用来定义一个内部服务器的映射表,外部用户可以通过公网地址和端口来访问内部服务器。
参数protocol指定需要地址转换的协议;
参数global-address指定需要转换的公网地址;
参数inside指定内网服务器的地址。
通过对RA的接口GE0/0/1可知,为私网服务器Server配置了一个公网的IP地址100.1.1.200。则当公网的设备Client想要访问Server时,只需要在数据包的目的IP处填写公网IP地址100.1.1.200,通过路由将数据包发送到RA。RA通过NAT服务器的功能,将目的IP改成192.168.1.1并转发给自己所连接的私网服务器Server。
私网服务器配置如下:
Step 2:配置验证
在公网客户端Client上输入http://100.1.1.200(最好带上端口号80。因为http默认使用80端口所以这里没有写),可以看到访问成功。
对网关RA的出接口进行抓包:
源IP地址为200.1.1.1,访问私网服务器Server的公网IP地址100.1.1.200,端口号为80
对网关RA的入接口进行抓包:
可以看到通过RA的地址转换,目的IP地址已经换成了私网服务器Server的IP地址192.168.1.1,实验成功。
小结
1、哪种NAT转换允许服务器既能被内部访问又能被外部访问?
通过NAT内部服务器配置,将公网地址与一个私网服务器地址绑定,在地址转换后,外网主机便可以通过公有地址访问内网服务器。同时,私网地址用户可以通过服务器的私网地址访问内网服务器。
2、NAPT(网络地址端口转换)有什么功能和特点?
NAPT是基于端口的转换,而不是基于IP地址的转换。NAPT允许多个内部地址映射到同一个公有地址的不同端口。