其他分享
首页 > 其他分享> > GRE Over IPsec ***思科路由器配置案例(EVE-NG模拟器环境下)

GRE Over IPsec ***思科路由器配置案例(EVE-NG模拟器环境下)

作者:互联网

前面我们分享过在eve模拟器环境下,使用思科路由器配置手工方式的IPsec ***,但现实中往往不是两边站点各只有一个网段,可能会有很多网段,这就需要站点之间跑动态路由协议。但是站点之间通过IPsec ***互联会有个问题:就是没有虚拟隧道接口,无法跑动态路由协议。例如跑OSPF两边无法建立邻居。

所以,接下来龙哥通过分享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地址,可参考往期文章:

图片

手把手教你安装eve-ng模拟器,带你遨游网络技术世界!




02

修改网络设备默认名称、配置好IP地址。



R1配置(分公司网关设备)

Router>en

Router#config tEnter configuration commands, one per line.  End with CNTL/Z.Router(config)#hostname R1R1(config)#int e0/0R1(config-if)#ip add 12.1.1.1 255.255.255.0R1(config-if)#no shutR1(config-if)#exitR1(config)#int lo 10R1(config-if)#ip add 192.168.1.1 255.255.255.0R1(config-if)#no shutR1(config-if)#int lo 20R1(config-if)#ip add 192.168.2.1 255.255.255.0R1(config-if)#no shutR1(config-if)#int lo 30R1(config-if)#ip add 192.168.3.1 255.255.255.0R1(config-if)#no shutR1(config-if)#



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>

Router>enRouter#config tRouter(config)#hostname R3R3(config)#int e0/0R3(config-if)#ip add 23.1.1.3 255.255.255.0R3(config-if)#no shutR3(config-if)#exitR3(config)#int lo 10R3(config-if)#ip add 172.16.1.1 255.255.255.0R3(config-if)#no shutR3(config-if)#int lo 20R3(config-if)#ip add 172.16.2.1 255.255.255.0R3(config-if)#no shutR3(config-if)#int lo 30R3(config-if)#ip add 172.16.3.1 255.255.255.0R3(config-if)#no shutR3(config-if)#




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 ***

R1(config-ext-nacl)#permit  gre host  12.1.1.1 host 23.1.1.3R1(config-ext-nacl)#



在R3配置GRE感兴趣流:

R3(config)#ip access-list extended ***

R3(config-ext-nacl)#permit  gre host  23.1.1.3 host 12.1.1.1R3(config-ext-nacl)#


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-isakmp)#authentication pre-shareR3(config-isakmp)#exit
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的。

图片


顺便也验证一下其他网段连通性:(都没问题)

图片



标签:R1,R3,Over,EVE,NG,GRE,router,config,crypto
来源: https://blog.51cto.com/u_15127557/2701424