域内双向NAT
实验目的
企业内部有需要想要将内网的HTTP Server中WEB服务映射到公网地址10.1.12.100的80端口上,一般该需求只需要我们部署NAT Server,就可以使得其他网络内的客户端通过公网地址10.1.12.100访问内网HTTP 服务器的目的。
此时如果我们内网客户端也想要通过该公网地址去访问HTTP Server,那么会出现错误导致无法访问。将HTTP Server的私网地址直接透露出来,也不利于保障WEB服务器的安全性。
本实验通过部署域内双向NAT,使得内网地址能够通过访问10.1.12.100(即映射出的公网地址)来达成访问HTTP Server的目的。
实验拓扑
)
图:域内双向NAT场景
正常情况下,我们需要将内网的HTTP Server映射到外网,以便其他网络内的主机对该地址进行资源访问。首先我们部署内网的映射配置,将内网HTTP Server(192.168.1.100)映射到10.1.12.100。并登录到Clietn3,测试Client3访问10.1.12.100
1、全网配置IP地址
Clietn 1 ip:192.168.1.2/24 GW 192.168.1.254(AR1的G0/0/0)
Clietn 3 ip:192.168.2.2/24 GW 192.168.2.254(AR2的G0/0/0)
AR1和AR2互联地址为10.1.12.1 和10.1.12.2。其余地址图内均有标识
2、在AR1和AR2的G0/0/1出接口上部署easy NAT,使得内网地址能够正常访问外网。
AR1和AR2的配置如下,就是双方的acl per地址网段有所差异。
[AR1]acl 2000
[AR1-acl-basic-2000]rule per sou 192.168.1.0 0.0.0.255
[AR1-acl-basic-2000]quit
//匹配source 地址为192.168.1.0/24
[AR1]int g0/0/1
[AR1-GigabitEthernet0/0/1]nat outbound 2000
//配置easy NAT,使得内网地址能够成功访问外网
3、配置基本的NAT Server,将内网服务器映射到10.1.12.100,以便处于其他网络的Clietn3能够正常访问。
在AR1的G0/0/1出接口上进行如下配置:
AR1的G0/0/1出接口配置如下:
[AR1]int g0/0/1
[AR1-GigabitEthernet0/0/1]nat server pro tcp glo 10.1.12.100 80 inside 192.168.1.100 80
// 用于将内网的Server 映射到10.1.12.100 .
在经过上述部署后,Clietn3能够正常通过公网地址10.1.12.100 访问内部的HTTP Server,
内部HTTP Server的配置很简单,就是一个启用的过程,这里就直接跳过了。
此时我们验证其他域的Client3访问10.1.12.100能否正常通信。
图:Client3成功访问HTTP Server
此时Client3能够正常通过10.1.12.100访问内部的HTTP Server服务器,但我们本次实验是为了探究域内双向NAT的过程。我们查看域内Client1能否正常访问内部的HTTP Server服务器。
图:Client1无法访问HTTP Server
此时本次实验的重点来了,由于Client1访问10.1.12.100时,他会将HTTP请求给到网关(或者说是TCP连接请求)。到达网关时,网关发现目的地址是10.1.12.100(AR1的G0/0/1同网段地址),于是想要将该数据包从G0/0/1发出,不过G0/0/1接口上配置了NAT Server,发现转换后的地址是AR1的G0/0/0网段地址,那么该HTTP请求又从G0/0/0接口发回,G0/0/0接口上并没有配置NAT Server进行转换。所以此时的HTTP 请求数据包,Src ip是Client1地址,Dst 地址为10.1.12.100。但内网又没人是这个地址,于是该TCP请求被丢弃。
**备注:**可以通过抓包发现,AR1的G0/0/1出接口并无数据包,而G0/0/0的接口存在TCP无回应。
于是为了解决该一现象,我们可以在AR1的G0/0/0接口上通过配置转换,将Dst 10.1.12.100转换回服务器地址。使得Client1或域内其他客户端能够通过公网地址服务器的访问操作。
4、在AR1的G0/0/0接口上执行如下命令,完成 “域内双向NAT” 的部署。
[AR1]acl 3000
[AR1-acl-adv-3000]rule per tcp des 10.1.12.100 0
[AR1-acl-adv-3000]quit
//配置ACL 3000,匹配目标地址为10.1.12.100的数据。
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]nat server pro tcp glo 10.1.12.100 80 inside 192.168.1.100 80
[AR1-GigabitEthernet0/0/0]nat outbound 3000
[AR1-GigabitEthernet0/0/0]
//在G0/0/0接口上也部署一个NAT Server转换。使得内网的HTTP请求数据包的目的地址能够转换成192.168.1.100
我们再次在Client1上面测试访问,看看能否成功通信!
图:Client1成功访问HTTP Server
成功完成通信!至此,域内双向NAT成功。
实验思考
Q:在AR1的G0/0/0上进行部署时,需要配置ez NAT,若不配置,通信是否正常?
Q:需要ez NAT的原因是:防止回包不经过网关接口而无法进行NAT server地址转换,若在交换机上部署隔离,能否正常通信呢?
Q:NAT的妙用可不止这些哦,各位可以好好想想。
|