所以,接下来龙哥通过分享GRE over IPsec ***的配置案例,来了解看看这个问题是如何解决的?
1拓扑图
2需求(目的)
1、需要解决两个站点之间跑动态路由协议,能学习到对端路由。
2、需要解决安全性问题,因为使用GRE,是不安全的(明文),所以需要再GRE之下跑IPsec ***解决安全性问题。
3配置思路
1、搭建好拓扑图环境,标出规划好的IP地址。2、修改网络设备默认名称、配置好IP地址。3、配置分公司与总部网关设备的路由,使之互通。(这里使用默认路由)4、配置GRE,创建虚拟隧道口,配置隧道口IP地址。5、配置R1、R3的router id、OSPF路由协议。6、利用ACL配置IPsec 感兴趣流。
7、配置IPsec(这里使用ike)。9、把IPsec 策略调用到出接口下。
4配置过程
01
搭建好拓扑图环境,标出规划好的IP地址。
关于eve模拟器如何添加设备、如何使用VPC(模拟电脑)配置IP地址,可参考往期文章:
02
修改网络设备默认名称、配置好IP地址。
R1配置(分公司网关设备)
Router>en
R2(模拟互联网)
Router>enRouter#config tRouter(config)#hostname R2R2(config)#int e0/0R2(config-if)#ip add 12.1.1.2 255.255.255.0R2(config-if)#no shutR2(config-if)#exitR2(config)#int e0/1R2(config-if)#ip add 23.1.1.2 255.255.255.0R2(config-if)#no shutR2(config-if)#
R3(模拟公司总部)
Router>
03
配置分公司与总部网关设备的路由,使之互通。
分公司的网关和总部网关设备必须能通信,你想想,现网中只要你接入运营商的网络,就能上公网,两个站点肯定能ping通。所以本实验中,用默认路由来实现两端网关设备互通的问题。
在R1配置默认路由:
R1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2
在R3配置默认路由:
R3(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2
配置完路由后,测试一下两边站点的连通性:
04
配置GRE,创建虚拟隧道口,配置隧道口IP地址。
我们在两个站点间的网关设备,各起一个GRE的隧道接口,配置同网段IP地址:
在R1配置GRE:
R1(config)#int tunnel 0
R1(config-if)#ip add 100.1.1.1 255.255.255.0R1(config-if)#tunnel source 12.1.1.1R1(config-if)#tunnel destination 23.1.1.3R1(config-if)#在R3配置GRE:
R3(config)#int tunnel 0
R3(config-if)#ip add 100.1.1.2 255.255.255.0R3(config-if)#tunnel source 23.1.1.3R3(config-if)#tunnel destination 12.1.1.1R3(config-if)#
配置GRE后,可以测试一下 R1和R3的虚拟隧道接口连通性:(此刻,它们就好比是直连一样。)
05
配置R1、R3的router id、OSPF路由协议
R1配置如下:
R1(config)#router ospf 1
R1(config-router)#router-id 192.168.1.1
R1(config-router)#network 100.1.1.0 0.0.0.255 area 0
R1(config-router)#network192.168.1.0 0.0.0.255 area 0
R1(config-router)#network 192.168.2.0 0.0.0.255 area 0
R1(config-router)#network 192.168.3.0 0.0.0.255 area 0
R1(config-router)#
R3配置如下:
R3(config)#router ospf 1
R3(config-router)#router-id 172.16.1.1R3(config-router)#network 100.1.1.0 0.0.0.255 area 0R3(config-router)#network 172.16.1.0 0.0.0.255 area 0R3(config-router)#network 172.16.2.0 0.0.0.255 area 0R3(config-router)#network 172.16.3.0 0.0.0.255 area 0R3(config-router)#
现在,我们来查看一下OSPF 邻居状态如何?以及是否学习到对端的路由了?
R1学习到总部的路由了:
R3学习到分公司的路由了:
现在,我们把tunnel 口 shutdown一下,然后在网关出接口抓包看一下:(这里抓包,龙哥的目的是为了待会配置IPsec ***后再做个对比)
抓包,可以看到,GRE封装后,还是可以看到OSPF里面的内容,如路由信息。
同时,我们也再次学习到了,GRE的协议号是47。
我们可以看到GRE外层的IP,使用的是网关出接口的IP地址。
06
利用ACL配置IPsec 感兴趣流
现在两边站点跑OSPF是通过GRE,包括正常的业务数据也是通过GRE来封装了:
所以,接下来,我们配置感兴趣流,只需匹配GRE的流量就可以了。
在R1配置GRE感兴趣流:
R1(config)#ip access-list extended ***
在R3配置GRE感兴趣流:
R3(config)#ip access-list extended ***
07
配置IPsec(这里使用ike)
R1(config)#crypto isakmp policy 10
R1(config-isakmp)#authentication pre-share
R1(config-isakmp)#exit
R1(config)#crypto isakmp key 0 along address 23.1.1.3
R1(config)#crypto ipsec transform-set trans esp-des esp-md5-hmac
R1(cfg-crypto-trans)#mode transport
R1(cfg-crypto-trans)#exit
R1(config)#crypto map R1toR3 10 ipsec-isakmp
R1(config-crypto-map)#match address ***
R1(config-crypto-map)#set transform-set trans
R1(config-crypto-map)#set peer 23.1.1.3
R1(config-crypto-map)#
R3(config)#crypto isakmp policy 10
R3(config)#crypto isakmp key 0 along address 12.1.1.1
R3(config)#crypto ipsec transform-set trans esp-des esp-md5-hmacR3(cfg-crypto-trans)#mode transportR3(cfg-crypto-trans)#exit
R3(config)#crypto map R3toR1 10 ipsec-isakmpR3(config-crypto-map)#match address ***R3(config-crypto-map)#set transform-set transR3(config-crypto-map)#set peer 12.1.1.1R3(config-crypto-map)#exit
08
把IPsec 策略调用到出接口下。
R1(config)#int e0/0
R1(config-if)#crypto map R1toR3
R3(config)#int e0/0R3(config-if)#crypto map R3toR1
当IPsec 策略在接口下调用,可以看到日志信息,开始协商了:
因为我的抓包一直是开启着,所以接下来,我直接在R1带源地址继续ping 总部地址,然后再看看报文。
从报文看,我们可以发现,ICMP报文已经被ESP协议封装了,即被IPsec加密了,我们无法看到里面的内容。
而且两边站点OSPF定期发的hello报文,也被加密,我们无法看到真正的内容,所以安全性提高了。
配置IPsec,我们查看OSPF邻居,Full的。
顺便也验证一下其他网段连通性:(都没问题)