地址转换是把局域网的私有地址转换为公有地址,如果想要上外网,而公有地址是有限的,则需要将私有地址转换成公有地址,用端口号进行区分。
一.基本原理
NAT是改变IP报文中的源或目的地址的一种处理方式;让局域网用户访问外网资源,也可以设定内部的应用对外提供的服务;隐藏内部局域网的IP主机,起到安全保护的作用;NAT功能通常被集成到路由器,防火墙,ISDN路由器或者单独的NAT设备中。
1.IANA为私有网络预留的IP地址空间:
①A类地址范围是10.0.0.0 --- 10.255.255.255;
②B类地址范围是172.16.0.0 --- 172.31.255.255;
③C类地址范围是192.168.0.0 --- 192.168.255.255。
2.NAT的优点:
①节约合法的注册公网地址;
②在地址重叠时提供解决方案;
③提高连接到Internet的灵活性;
④在网络发生变化时避免重新编址。
3.NAT的缺点:
①地址转换将增加交换延迟;
②导致无法进行端到端IP追踪;
③导致有些应用程序无法正常运行。
4.NAT的类型
NAT的主要类型包括:①静态NAT/NAPT;②Easy IP;③NAT服务器。
(1)静态NAT简介:
①内网中一个主机的私有IP地址与一个公网IP地址相绑定;
②实现一对一的转换关系;
③实际中很少应用,因为一个公网IP地址无法为内网中的多台主机同时提供外网连接。
(2)NAPT简介:
①把二元组“内部网络主机的IP+端口号”和“公网IP+端口号”执行一对一绑定;
②一个公网IP地址可以同时为多个私有IP地址提供外网连接。
(3)Easy IP简介:
①是NAPT的一种方式,直接借用路由器出接口IP地址作为公网地址;
②常用于拨号上网的网络环境中;
③拨号得到的公网地址自动成为转换的公网IP;
④所有内网主机都需要使用这个临时公网获取的IP地址来访问互联网。
(4)NAT服务器简介:
①用于对内网应用对外提供服务;
②静态配置公网“IP地址+端口号”和私有“IP地址+端口号”之间的转换;
③公网用户只知道通过公网IP地址访问服务,内网的IP隐藏起到保护作用。
二.静态NAT配置
1.建立如下拓扑图并初始化设备
2. 配置基础IP地址
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ip add 10.1.0.1 24
[AR1]int g0/0/1
[AR1-GigabitEthernet0/0/1]ip add 12.1.1.1 29
[AR2]int g0/0/1
[AR2-GigabitEthernet0/0/1]ip add 12.1.1.2 29
3.在AR2上配置一个IP地址为8.8.8.8的环回接口,用以模拟Internet中的地址:
[AR2]int loopback0
[AR2-LoopBack0]ip add 8.8.8.8 24
4.配置PC端
5.配置路由
(1)若在AR1上配置静态路由:
[AR1]ip route-static 0.0.0.0 0.0.0.0 12.1.1.2
但此时PC端与AR2并不能连通,因为信号去往AR2后,没有设置返回路由。
但由于在实际生活中,公网是不能到私有IP或者路由,所以不能通过配置静态路由的方法进行连接。
所以,此时应当使用静态NAT的配置。
(2)配置静态NAT
在网关路由器AR1的G0/0/1接口上配置一对一的NAT映射:
[AR1]interface GigabitEthernet 0/0/1
[AR1-GigabitEthernet0/0/1]nat static global 12.1.1.3 inside 10.1.0.100
[AR1-GigabitEthernet0/0/1]nat static global 12.1.1.4 inside 10.1.0.101
PC1的IP地址会被转换的Global IP是12.1.1.3,
PC2的IP地址会被转换的Global IP则是12.1.1.4。
若此时对AR1的g0/0/1进行抓包可得:
注:AR2并不能知道PC端真正的路由,它只能ping通12.1.1.3和12.1.1.4,并且与AR1是直连。
二.NAPT的配置
静态NAT的配置是一对一的地址映射,不会节省任何地址空间。因此,网络中通常采用的网络地址转换设计方案都是将多个私有IP地址转换为一个公有IP地址,并且利用传输层的端口号来区分不同的私有IP地址,这种称为NAPT(Network Address Port Translation)的技术。
1.建立如下拓扑图并初始化设备
若是在NAT静态拓扑图的基础上进行配置,则只需删除静态NAT配置即可。
[AR1]interface GigabitEthernet 0/0/1
[AR1-GigabitEthernet0/0/1]undo nat static global 12.1.1.3 inside 10.1.0.100 netmask 255.255.255.255
[AR1-GigabitEthernet0/0/1]undo nat static global 12.1.1.4 inside 10.1.0.101 netmask 255.255.255.255
2.NAPT的配置
(1)使用ACL匹配内网(AR1)需要转换的私有IP地址:
[AR1]acl 2000
[AR1-acl-basic-2000]rule permit source 10.1.0.0 0.0.0.255
(2)配置可用的公有IP地址组
[AR1]nat address-group 1 12.1.1.3 12.1.1.6
(3)使用前面两个步骤中配置好的ACL(编号)和NAT地址组(编号),在执行转换的接口上指定私有地址到公有地址的NAT转换关系:
[AR1]interface GigabitEthernet 0/0/1
[AR1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1
3.查看配置结果
(1)查看NAT公有地址池:
[AR1]display nat address-group
目前公有地址池中包含的地址范围是12.1.1.3-----12.1.1.6。
(2)查看NAT转换表项:
[AR1]display nat outbound
(3)在AR1上g0/0/1抓包可知,都转换为相同公有地址:12.1.1.5。
(4)查看转发表项:
[AR1]display nat session all
三.Easy IP的配置
1.建立如下拓扑图并初始化设备
[AR1]int g0/0/1
[AR1-GigabitEthernet0/0/1]undo nat outbound 2000 address-group 1
[AR1]undo nat address-group 1
2.easy IP的配置
[AR1]int g0/0/1
[AR1-GigabitEthernet0/0/1]nat outbound 2000
//acl 2000在NAPT的配置中配置过,所以这里可以直接拿来使用
3.查看配置结果
(1)PC端对8.8.8.8的ping
(2)查看NAT转换表项:
[AR1]display nat outbound
(3)在AR1上g0/0/1抓包可知,都转换为相同公有地址:12.1.1.1。
四. NAT Server的配置
在真实的网络中,与NAT相关的设计方案往往会是下图所示的一种融合NAT环境。其中,内网PC设备需要使用动态NAT去访问Internet,同时又有服务器需要为公网的设备提供服务。
1.建立拓扑图如下所示并初始化设备
若是在Easy IP拓扑图的基础上进行配置,则只需按照如图所示进行增减配置即可。
2.在AR2上配置连接Client1的接口IP:
[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]ip add 2.1.0.1 24
3.对server1进行配置
并建立一个文件夹,使Server1能有根目录,选择点击“启动”。
4.对Client1进行配置
5.网络配置
因为在Easy IP的配置里,已经实现了内网PC上网的需求。
之前配置的程序如下:
[AR1]acl 2000
[AR1-acl-basic-2000]rule permit source 10.1.0.0 0.0.0.255
[AR1-acl-basic-2000]quit
[AR1]interface GigabitEthernet 0/0/1
[AR1-GigabitEthernet0/0/1]nat outbound 2000
以上程序在Easy IP中已经配置过了,所以在拓扑图修改的时候,我们只需要配置内网服务器的地址转换,即NAT Server。
[AR1]interface GigabitEthernet 0/0/1
[AR1-GigabitEthernet0/0/1]nat server protocol tcp global 12.1.1.6 www inside 10.1.0.101 www
6.检查配置结果
(1)NAT Server的配置结果
[AR1]display nat server
路由器AR1只把公有IP地址12.1.1.6的TCP 80端口转换为内网服务器IP地址10.1.0.101的80端口。
(2)连通性测试:
(3)在AR1上对G0/0/1端口抓包,PC1 ping 2.1.0.100 测试与公网的连通性
(4)Client1进行配置结果测试
五.NAT Server的配置的升级版
在内网再添加一台FTP服务器,IP地址为10.1.0.102/24
1.修改拓扑图如图所示
2.Server2的配置
同样,建立一个文件夹作为根目录
3.配置内网的服务器的地址转换,即NAT Server
[AR1]interface GigabitEthernet 0/0/1
[AR1-GigabitEthernet0/0/1]nat server protocol tcp global 12.1.1.6 ftp inside 10.1.0.102 ftp
4.存在的问题
(1) 此时若用Client登录ftp,会处于无法登录的状态。
NAT只会针对数据包头部的IP地址和端口号执行转换,而不会关注数据包载荷部分的内容。而ftp协议,也会在数据包的载荷中携带地址和端口信息。如果执行NAT转换的网关路由器不对载荷中的地址和端口信息进行任何处理的话,通信就会失败。
(2) 用户无法正常访问FTP服务器,是因为网关路由器缺少ALG配置。
ALG称为应用程序网关(Application Level Gateway),ALG地址转换改变了IP地址数据包头的IP地址信息,如果数据报文的载荷中含有地址信息,地址转换就要特殊处理,除了改变IP包头的地址信息,还得改变数据报文中载荷中的地址信息。
5.开启ALG
[AR1]nat alg ftp enable //启用ALG功能
6.检测配置结果
(1) 查看ALG的状态
[AR1]display nat alg
(2)Client1获取 ftp
(3) 在AR1上对G0/0/1端口抓包