我们前面已经通过几种方式介绍了三层网络中两个内网网段相同时的局域网如何互通,有基于IPsec的(为什么IPsec两端内网的网段能不能重复?分明可以实现!),有基于GRE的(GRE隧道也能实现两端配置相同子网了,快来看看!)。最关键的点就是要合理规划网段,做好地址分配。
但也有同学不信邪,坚持要用NAT来做。H3C官网上有一个地址重叠的配置案例“内网用户通过NAT地址访问外网配置举例(地址重叠)”。
一定程度上讲,我对这个方案是持怀疑态度的,而且要和DNS搭配使用,DNS返回解析地址之后,还是和内网重合的。那我今天就要试一下这个方案好用不好用。
组网需求
1、某公司内网网段地址为192.168.1.0/24,该网段与要访问的外网Server服务器所在网段地址重叠。
2、该公司拥有12.1.1.10-12.1.1.20多个外网IP地址。
3、需要实现,内网用户可以通过域名访问外网的Server服务器。
组网图
内网用户通过NAT访问外网配置组网图(地址重叠)
实验环境
Windows 10专业版(1909-18363.1556,16 GB内存)
HCL 3.0.1
MSR 36-20(Version 7.1.064, Release 0821P11)
配置思路
1、搭配使用DNS ALG功能和nat inbound,对DNS服务器返回的地址进行地址转换。
2、使用地址池进行区分,将双向的地址转换为两个不同的地址,使双方均不发现问题。
配置步骤
首先按照组网图完成设备IP地址的基本配置。
在DNS服务器上配置一条解析记录,并开启DNS代理功能。
#
dnsproxyenable
ip host guo.com 192.168.1.101
在PC1上配置DNS服务器为24.1.1.4,并尝试使用域名进行访问Server。
通过返回的地址和TTL值,我们可以看到,PC1此时实际访问的是他自己。
接下来,我们开启RTA的NAT ALG功能。
#
nat alg dns
然后从PC1请求域名,看一下RTA上的debug信息。
可以看到提示,“域名为 guo.com 的 DNS 数据包的载荷将被转换”。
然后我们在RTA连接ISP的G0/0接口上启用NAT inbound,匹配DNS应答报文载荷中的外网源地址192.168.1.0/24网段,转换为指定地址,并在转换过程中不使用端口信息,以及允许反向地址转换。
#
acl advanced 3402
rule 0 permit ip source 192.168.1.00.0.0.255
#
nat address-group 1 name inbound
address 12.1.1.1012.1.1.10
#
interface GigabitEthernet0/0
nat inbound 3402 address-group 1no-pat reversible
此时再从PC1触发到Server的DNS解析请求。
可以看到已经将响应的192.168.1.101转换成了12.1.1.10,而且PC1上现在无法访问Server。
此时我们再看一下RTA上的NAT转换过程。
可以看到,PC1访问Server的报文最后被转换成了RTA的接口地址12.1.1.1请求192.168.1.101的报文,而由于内网主机的地址与Server服务器的真实地址重叠,查路由表并不能将报文转发出来。
所以在RTA上增加一个明细路由。
#
ip route-static 12.1.1.10 32 12.1.1.2
此时再查看访问情况。
已经可以正常访问,并且TTL值为252,从Server上debug收发包情况,确认是PC1发起的访问流量。
此时再查看一下RTA的NAT转换情况。
可以看到第一个过程是PC1向DNS请求guo.com解析的地址,并通过NAT ALG将返回的192.168.1.101地址转换成了虚拟地址12.1.1.10;第二个过程是将PC1访问Server的PC1请求虚拟地址12.1.1.10的流量,分别对源目地址进行两次转换,转换为接口地址12.1.1.1请求Server的流量;对于Server的响应报文,再进行两次地址转换,转换为虚拟地址12.1.1.10响应PC1的流量。
验证配置
查看NAT会话的详细信息。
可以看到请求信息中,源地址为PC1的真实地址192.168.1.101,目的地址为Server经过NAT后的地址12.1.1.10。响应信息中,源地址为Server的真实地址192.168.1.101,目的地址为PC1经过NAT后的地址12.1.1.1。
可以通过dis nat all或dis nat address-group、dis nat inbound、dis nat outbound、dis nat alg等命令查看NAT的相关配置信息。
使用nat alg dns命令开启功能之后,配置中不会显示相关命令,需要使用dis nat alg命令查看是否开启成功。
后台回复“20211211”获取本实验的HCL工程文件。
声明:来自铁军哥,仅代表创作者观点。链接:https://eyangzhen.com/2689.html