NAT技术概述
由于IPv4地址的紧缺,NAT技术应运而生,NAT技术是一种地址转换技术,如今已经运用地十分广泛。它实现的是将局域网内主机的IP地址经过NAT路由器转换为一个可以访问互联网的IP地址。
主要实现的过程是:当局域网内的主机想访问外网时,假设它所在内网中被分配的IP地址是10.10.10.1 ,那么在建联时构建的IP包中的源IP地址填的就是10.10.10.1,在经过NAT路由器后,10.10.10.1就会被替换为一个公网IP,这个公网IP是多少取决于NAT路由器的转换表,替换完成后外网的主机就只能看到这个被替换后的IP地址,将它作为目的IP地址去返回应答包,应答包回到NAT路由器时,NAT路由器又会去对照映射表,再把目的IP替换成内网真正目标主机的IP地址,这样通信就建立起来了。
这样一来,内网的安全性也得到了显著的提升,因为除非对方知道NAT路由器的映射表,才能主动访问内网中的主机,而如果直接将内网的主机IP作为目标去访问的话,一定是无法访问的。我们可以设想一个场景,你和同事同时用公司电脑连入公司的内网,这时你的同事用他的电脑开了个热点,然后用自己的一台笔记本连上了这个热点,这种情况下,他可以用自己的笔记本ping通你的电脑,而你在知道他的笔记本当前IP的情况下却无法ping通他的笔记本。其实这里同事的公司电脑就作为了一台NAT服务器,大家不妨可以试下,更好地理解NAT技术。
网络拓扑
实验设备
Server-PT两台、2960-24TT Switch三台、Router-PT两台、PC六台
实验步骤
1、首先对Router2和Router3进行配置
Router2:
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#int fa 0/0
Router(config-if)#ip add
Router(config-if)#ip address 10.10.10.1 255.255.255.0
Router(config-if)#no shu
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#int fa 1/0
Router(config-if)#ip add
Router(config-if)#ip address 10.10.11.1 255.255.255.0
Router(config-if)#no shu
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#int s 2/0
Router(config-if)#ip add
Router(config-if)#ip address 20.20.20.1 255.255.255.0
Router(config-if)#no shu
Router(config-if)#no shutdown
Router(config-if)#exit
Router3:
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#int s
Router(config)#int serial 2/0
Router(config-if)#ip add
Router(config-if)#ip address 20.20.20.2 255.255.255.0
Router(config-if)#no shu
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#int fa 0/0
Router(config-if)#ip add
Router(config-if)#ip address 20.20.21.1 255.255.255.0
Router(config-if)#no shu
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#int fa 1/0
Router(config-if)#ip add
Router(config-if)#ip address 20.20.22.1 255.255.255.0
Router(config-if)#no shu
Router(config-if)#no shutdown
Router(config-if)#exit
2、再配置两台Web服务器的IP、子网掩码和网关:
3、配置其余六台PC,全部配置完成后:
4、配置Router2、Router3动态路由
Router2:
Router>
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#router rip
Router(config-router)#net
Router(config-router)#network 10.10.11.0
Router(config-router)#ne
Router(config-router)#network 10.10.10.0
Router(config-router)#ne
Router(config-router)#network 20.20.20.0
Router(config-router)#exit
Router3:
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#router rip
Router(config-router)#ne
Router(config-router)#network 20.20.20.0
Router(config-router)#ne
Router(config-router)#network 20.20.21.0
Router(config-router)#ne
Router(config-router)#network 20.20.22.0
Router(config-router)#exit
配置完成后,每台主机之间应该就可以ping通了,测试一下:
5、配置静态NAT路由器
注意,我们只需要配置Router2即可,因为Router2充当的是内网的NAT路由器,进行一个地址的转换。配置如下:
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#int fa 0/0
Router(config-if)#ip nat in
Router(config-if)#ip nat inside
Router(config-if)#exit
Router(config)#int fa 1/0
Router(config-if)#ip nat in
Router(config-if)#ip nat inside
Router(config-if)#exit
Router(config)#int se
Router(config)#int serial 2/0
Router(config-if)#ip nat ou
Router(config-if)#ip nat outside
Router(config-if)#exit
Router(config)#ip nat inside so
Router(config)#ip nat inside source st
Router(config)#ip nat inside source static 10.10.11.3 20.20.20.3
Router(config)#ip nat inside source static 10.10.11.2 20.20.20.4
Router(config)#ip nat inside source static 10.10.10.2 20.20.20.5
Router(config)#ip nat inside source static 10.10.10.3 20.20.20.6
Router(config)#exit
查看一下NAT映射表
Router#show ip nat tr
Router#show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- 20.20.20.3 10.10.11.3 --- ---
--- 20.20.20.4 10.10.11.2 --- ---
--- 20.20.20.5 10.10.10.2 --- ---
--- 20.20.20.6 10.10.10.3 --- ---
--- 222.0.1.3 192.168.1.2 --- ---
到此,静态NAT路由器就配置完成了。
这时,我们用外网的PC0 ping 内网的PC4,却是可以ping通的
按照之前的理解,外网不能直接ping通内网主机的IP,那么问题出在哪呢?来看看Router3的路由表:
原来问题出在这,Router3将所有10.0.0.0网段的IP包全部路由到Router2上去了,所以外网的主机还是可以直接ping到内网的主机。
因此,我们只要对Router2的RIP路由做如下修改:
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#router rip
Router(config-router)#no ne
Router(config-router)#no network 10.10.11.0
Router(config-router)#no ne
Router(config-router)#no network 10.10.10.0
这样,我们再一次用PC0 ping PC4,发现此时已经ping不通了:
而如果将IP地址改为NAT转换后的公网IP,则可以ping通:
而内网可以直接访问外网的主机:
Web服务器也是一样的,直接访问内网IP是行不通的:
而改为映射后的公网IP则是可以访问的:
本次实验说明了NAT地址转换的特性。