书接上文(地址重叠时,用户如何通过NAT访问对端IP网络?),我们已经通过两台设备的组合配置实现了通过IP地址进行访问。但一般场景中,我们还是希望只变更尽量少的设备和配置,那如果我们只能操作一台设备是否可行呢?
组网需求
1、某公司有两个办公点,内网网段地址均为192.168.1.0/24,现在通过专线方式将两个办公点内网打通,但是因为有生产业务,不能改变主机地址。
2、该公司拥有组网图中所有地址段的所有地址的使用权。
3、需要实现,A办公点能够访问B办公点主机。
组网图
用户通过NAT访问对端网络配置组网图(地址重叠)
实验环境
Windows 10专业版(1909-18363.1556,16 GB内存) HCL 3.0.1 MSR 36-20(Version 7.1.064, Release 0821P11) S5820V2-54QS-GE(Version 7.1.075, Alpha 7571)
配置步骤
首先按照组网图完成主机IP地址的基本配置。
我们先尝试将静态地址转换映射配置到RTA的下行口试一下。这次将实际的地址192.168.1.101和1.102映射为192.168.2.1和2.2。
# nat static outbound 192.168.1.101 192.168.2.1 nat static outbound 192.168.1.102 192.168.2.2 # interface GigabitEthernet0/0 nat static enable # ip route-static 0.0.0.0 0 12.1.1.2 ip route-static 192.168.2.0 24 12.1.1.2
测试从PCA1访问192.168.2.1,发现可以访问,但是TTL不对。
查看RTA的NAT转换过程,发现虽然增加了去往192.168.2.0/24的明细路由,但是静态转换是在G0/0接口完成的,流量并没有转发出设备,从G0/0口又回去了。
那就加个明细路由,让这个流量从G0/1口出去。
# ip route-static 192.168.1.101 32 12.1.1.2
这个时候还是不通的,查看NAT转换过程貌似没有问题,但是因为明细路由的问题,RTA没办法将报文回给PCA1了。
此时PCA1就连访问网关都回不来。
看来明细路由不行,那就改成策略路由试一下。
# acl advanced 3402 rule 0 permit ip source 192.168.1.0 0.0.0.255 destination 192.168.1.0 0.0.0.255 # policy-based-route nat permit node 1 if-match acl 3402 apply next-hop 12.1.1.2 # interface GigabitEthernet0/0 nat static enable ip policy-based-route nat
再测试发现可以正常访问了,TTL值好像也正常了。
从PCB1上确认一下,确实收到了源地址为12.1.1.1的请求报文。
再次从RTA的上行口查看NAT过程。
可以看到,第一次转换之后,还是192.168.1.101请求192.168.1.101,但是策略路由将报文丢到了G0/1接口,这样一来,就进行了第二次转换,转换成了12.1.1.1请求192.168.1.101,转发正常。
这里我们考虑一下,出方向一对一静态地址转换通常应用在外网侧接口上,对于经该接口发送的请求报文,将其源IP地址转换为指定的公网地址;对于该接口接收到的请求报文,将匹配的目的IP地址转换为本地地址。
而入方向的一对一静态地址转换,对于该接口接收到的请求报文,将匹配的源IP地址转换为指定的IP地址;对于经该接口发送的请求报文,将匹配的目的IP地址转换为公网IP地址。
如果用nat inbound,那就只能转换源地址,不转换目的地址,主机还以为是请求的自身接口,报文都上送不到RTA。就算两个结合来用,RTA还是会因为目的地址的问题转发失败。
综合来看,在接口的入方向对源地址做转换意义不大,还增加了配置的工作量,所以一台设备上操作配置时,一对一静态映射 + SNAT + 策略路由,应该是不错的选择。