为什么IPsec两端内网的网段能不能重复?分明可以实现!

简介: 为什么IPsec两端内网的网段能不能重复?分明可以实现!

上一个IPsec实验,我们测试了两端不同子网的隧道打通,那能不能打通两端相同的子网呢?

原则上是不行的,因为不同站点的网段在设计时就要求不能冲突,这样会影响报文的正常转发。当分支数量大于2个时,也会导致不同隧道的保护流量源目地址段重复,进而导致数据转发异常。

但是,大二层网络技术都已经实现了,为什么IPsec不能用呢?我们来一步一步地分析一下具体原因和解决办法。


组网需求和组网图


和上个实验相同。在RT1和RT2之间建立一条IPsec隧道,对PCA(192.168.1.101/24)与PCB(192.168.1.102/24)互访的数据流进行安全保护。

1677228575603.jpg

发现问题并解决问题


问题1


正常来讲,PCA和PCB在同一网段但是不在同一网络应该是不能通信的。举个例子,PCA(192.168.1.101)请求PCB(192.168.1.102)时,会发现在同一个广播域内,那么他就会直接发送ARP广播请求。当网关设备RT1收到ARP解析请求时,因为本身没有对应的ARP表项,也就不会响应该请求流量。

1677228598658.jpg

最终导致的结果就是,这一请求流量最终终结在了PCA的LAN侧。


解决方案


解决该问题就是要让请求流量上到网关设备上,常用的解决方案就是代理ARP。


如果ARP请求是从一个网络的主机发往同一网段却不在同一物理网络上的另一台主机,那么连接它们的具有代理ARP功能的设备就可以回答该请求,这个过程称作代理ARP(Proxy ARP)。


代理ARP功能屏蔽了分离的物理网络这一事实,使用户使用起来,好像在同一个物理网络上。


代理ARP分为普通代理ARP和本地代理ARP,二者的应用场景有所区别:


普通代理ARP的应用场景为:想要互通的主机分别连接到设备的不同三层接口上,且这些主机不在同一个广播域中。


本地代理ARP的应用场景为:想要互通的主机连接到设备的同一个三层接口上,且这些主机不在同一个广播域中。


所以我们此处要用的就是普通代理ARP,开启方法很简单,就是在接口下配置如下命令:

proxy-arp enable

问题2


解决了问题1,流量就可以上送到网关设备了,这个时候RT1会进行查表,不过查表的时候会发现192.168.1.0/24这个网段是直连路由,还会丢回到上来的接口。


解决方案


这个问题也很简单,大家都知道路由查表的最长匹配原则,只要有掩码长度更短的明细路由就可以了。如果用到这种场景,一般还是要规划一下,毕竟地址冲突就不好了。这个环境中我们将PCA地址配置为192.168.1.101/24,网关为192.168.1.1/24;PCB地址配置为192.168.1.102/24,网关配置为192.168.1.2/24。这样的话,我们把明细路由配置完整即可。


1677228642936.jpg

问题3


问题3其实也不是问题,就是前两个问题解决之后的正常配置调整,就是把保护的数据流量和NAT排除的地址段进行调整即可。


验证配置


此时两台主机就已经通了。

1677228658013.jpg

查看ARP信息,发现192.168.1.102的MAC地址和网关的MAC地址相同。

1677228671357.jpg

 

抓包看一下,没有问题。

1677228675949.jpg

问题4


两端的网关地址能不能设置成相同的IP地址192.168.1.1呢?

答案是可以。但是有一个问题,就是你没有办法判断你到对端的网关是否能通了。像下面这样,ping测网关只能是自己当前的网关,有TTL值为证。

PCA测试网关。

 

1677228688852.jpg

PCB测试网关。

1677228701068.jpg

 

而如果两端网关不同,就能看到效果了。

从PCA发起测试。

1677228706297.jpg

 

从PCB发起测试。

1677228711076.jpg


设备配置


RT1

#
interface GigabitEthernet0/0
ip address 192.168.1.1 255.255.255.0
 proxy-arp enable
#
interface GigabitEthernet0/1
ip address 12.1.1.1 255.255.255.0
 nat outbound 3403
 ipsec apply policy ipsec
#
 ip route-static 23.1.1.0 24 12.1.1.2
 ip route-static 192.168.1.2 32 12.1.1.2
 ip route-static 192.168.1.102 32 12.1.1.2
#
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
#
acl advanced 3403
 rule 0 deny ip source 192.168.1.0 0.0.0.255 destination 192.168.1.0 0.0.0.255
 rule 5 permit ip
#
ipsec transform-set tran1
 esp encryption-algorithm aes-cbc-128
 esp authentication-algorithm sha1
#
ipsec policy ipsec 10 manual
 transform-set tran1
 security acl 3402
 remote-address 23.1.1.3
 sa spi inbound esp 123456
sa string-key inbound esp simple qwer
 sa spi outbound esp 654321
 sa string-key outbound esp  simple asdf

RT2

#
interface GigabitEthernet0/0
ip address 192.168.1.2 255.255.255.0
 proxy-arp enable
#
interface GigabitEthernet0/1
ip address 23.1.1.3 255.255.255.0
 nat outbound 3403
 ipsec apply policy ipsec
#
 ip route-static 12.1.1.0 24 23.1.1.2
ip route-static 192.168.1.1 32 23.1.1.2
 ip route-static 192.168.1.101 32 23.1.1.2
#
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
#
acl advanced 3403
 rule 0 deny ip source 192.168.1.0 0.0.0.255 destination 192.168.1.0 0.0.0.255
 rule 5 permit ip
#
ipsec transform-set tran1
 esp encryption-algorithm aes-cbc-128
 esp authentication-algorithm sha1
#
ipsec policy ipsec 10 manual
 transform-set tran1
 security acl 3402
 remote-address 12.1.1.1
sa spi inbound esp 654321
 sa string-key inbound esp simple asdf
 sa spi outbound esp 123456
 sa string-key outbound esp simple qwer

RT-ISP

#
interface GigabitEthernet0/0
ip address 12.1.1.2 255.255.255.0
#
interface GigabitEthernet0/1
ip address 23.1.1.2 255.255.255.0

总结

其实我测试的顺序是问题4-3-2-1。先修改了两端的IP地址,再调整了配置,再增加了路由,这个时候在网关上带源地址ping,两端的网关已经能通了。最后发现没有流量上到网关,才开启的网关ARP普通代理。


1、二层流量可以通过网关的ARP代理,将流量引入到网关设备。


2、改变流量转发路径可以通过添加明细路由的方式解决,当然,这个也可以作为一个网络攻击手法,之前我也遇到过这种问题,此处就不展开了。


3、可以发现,两个区域网段相同的场景比正常场景要求的规划更多,配置更复杂,不太推荐使用啊。


相关文章
|
5月前
|
网络协议
地址重叠时,用户如何通过NAT访问对端IP网络?
地址重叠时,用户如何通过NAT访问对端IP网络?
|
网络协议 网络架构
内网IP 外网IP 网卡 路由器通信过程(全)
       这几天上了计算机网络的课,对于老师讲的内容也是懵懵懂懂,一个慌神就没跟上,啥ip 啥NAT一脸蒙蔽。课后oogle补了点东西算是大致有了点了解,不过网上的总结都是零零散散而且点到即止。
4961 0
|
2月前
|
网络架构
|
5月前
|
网络虚拟化 网络架构
路由器实现 IP 子网之间的通信
路由器实现 IP 子网之间的通信
48 2
|
5月前
|
JavaScript 网络虚拟化 网络架构
路由器只能连接不同网段的设备,隔离广播域,交换机可以连接不同网段,也可以连接相同网段(三层) 二层只能同网段
路由器只能连接不同网段的设备,隔离广播域,交换机可以连接不同网段,也可以连接相同网段(三层)二层只能同网段
70 1
|
5月前
|
网络虚拟化
配置BGP/MPLS IP VPN示例
配置BGP/MPLS IP VPN示例
网段和网络号的区别
网络号和网段是两个不同的概念。在 IP 地址中,网络号指的是这个 IP 地址所在的网络的标识符,而网段是由网络前缀加上主机地址共同组成的一段地址范围,用来划分一个网络中各个子网的边界。
466 0
|
网络架构
交换机与路由器技术-35-NAT转换-PAT
交换机与路由器技术-35-NAT转换-PAT
34 0
|
网络安全 数据安全/隐私保护 网络虚拟化
GRE隧道也能实现两端配置相同子网了,快来看看!(下)
GRE隧道也能实现两端配置相同子网了,快来看看!
GRE隧道也能实现两端配置相同子网了,快来看看!(下)
|
安全 数据安全/隐私保护
GRE隧道也能实现两端配置相同子网了,快来看看!(上)
GRE隧道也能实现两端配置相同子网了,快来看看!
GRE隧道也能实现两端配置相同子网了,快来看看!(上)