经典DMVPN实验
在三个站点之间使用DMVPN技术,建立站点到站点的IPSec VPN
R1模拟总部 R2,R3模拟分部
R1,R2直连网段:12.12.12.0/24 以此类推
R1上环回口地址:192.168.1.1 以此类推
Tunnel网段:172.16.1.0/24
基本网络配置
R1(config)#ip route 0.0.0.0 0.0.0.0 12.12.12.2
R3(config)#ip route 0.0.0.0 0.0.0.0 23.23.23.2
R4(config)#ip route 0.0.0.0 0.0.0.0 24.24.24.2
确保连通性
mGRE与NHRP配置
R1(config)#int tunnel 0
R1(config-if)#ip add 172.16.1.1 255.255.255.0
R1(config-if)#tunnel mode gre multipoint //配置隧道模式为多点GRE
R1(config-if)#tunnel source f1/0 //指定tunnel源地址为出接口
R1(config-if)#tunnel key 12345 //隧道加密密钥,用于表示隧道口
---------------------------------NHRP配置-------------------------------------------------
R1(config-if)#ip nhrp network-id 10 //激活NHRP,network-id最好一致
R1(config-if)#ip nhrp authentication cisco //配置NHRP认证密钥,此项可选
R1(config-if)#ip nhrp map multicast dynamic //动态接NHRP收组播映射
R3(config)#int tunnel 0
R3(config-if)#ip add 172.16.1.3 255.255.255.0
R3(config-if)#tunnel mode gre multipoint
R3(config-if)#tunnel source f1/0
R3(config-if)#tunnel key 12345
---------------------------------NHRP配置-------------------------------------------------
R3(config-if)#ip nhrp network-id 10
R3(config-if)#ip nhrp authentication cisco
R3(config-if)#ip nhrp map 172.16.1.1 12.12.12.1 //手动NHRP映射,映射总部站点的隧道虚拟IP到总部的公网IP,有这个映射,分部才能访问总部站点
R3(config-if)#ip nhrp map multicast 12.12.12.1 //mGRE是NBMA网络,分部站点要和总部站点建立动态路由协议的邻居关系,必须在每个分部站点,映射组播到总部站点的公网IP,这样才能把分部站点的组播送到总部站点。并且能够看到分部站点之间没有组播映射,也就是说,分部站点之间没有动态路由协议邻居关系。
R3(config-if)#ip nhrp nhs 172.16.1.1 //配置NHRP服务器地址为总部站点的隧道口虚拟地址172.16.1.1
R4(config)#int tunnel 0
R4(config-if)#ip add 172.16.1.4 255.255.255.0
R4(config-if)#tunnel mode gre multipoint
R4(config-if)#tunnel source f1/0
R4(config-if)#tunnel key 12345
---------------------------------NHRP配置-------------------------------------------------
R4(config-if)#ip nhrp network-id 10
R4(config-if)#ip nhrp authentication cisco
R4(config-if)#ip nhrp map 172.16.1.1 12.12.12.1
R4(config-if)#ip nhrp map multicast 12.12.12.1
R4(config-if)#ip nhrp nhs 172.16.1.1
测试NHRP
R1查看总部站点的动态注册,包括映射类型为动态;网络类型NBMA及地址;地址映射关系
分部为静态映射
在此处检查连通性,并没有看到总部站点代转发的现象
动态路由协议EIGRP配置
R1(config)#router ei 1
R1(config-router)#no au
R1(config-router)#net 172.16.1.1 0.0.0.0
R1(config-router)#net 192.168.1.1 0.0.0.0
R3(config)#router ei 1
R3(config-router)#no au
R3(config-router)#net 172.16.1.3 0.0.0.0
R3(config-router)#net 192.168.3.1 0.0.0.0
R4(config)#router ei 1
R4(config-router)#no au
R4(config-router)#net 172.16.1.4 0.0.0.0 //通告的是隧道上的虚拟地址,而不是接口的公网地址
R4(config-router)#net 192.168.4.1 0.0.0.0
测试并调整EIGRP
总部站点可以看到学到分部站点内部网络的路由
分部站点上查看EIGRP邻居关系,没有两个分部站点的邻居关系,因为不存在组播映射
查看EIGRP学到的路由
查看分部站点的EIGRP路由,只学到总部站点的内网路由,原因是EIGRP的水平分割默认开启。
R1(config)#int tunnel 0
R1(config-if)#no ip split-horizon ei 1
关闭水平分割就可以看到分部站点的内网路由
虽然分部之间学到了内部网络,但下一跳地址确实总部站点,我们希望学到下一跳地址为172.16.1.4地址(R3隧道口的虚拟地址)
在总部站点的隧道口上关闭EIGRP的next-hope-self特性
R1(config)#int tunnel 0
R1(config-if)#no ip next-hop-self ei 1
配置IPSec VPN
R1(config)#cry is po 10
R1(config-isakmp)#authentication pre-share
R1(config)#crypto isakmp key 0 cisco add 0.0.0.0 0.0.0.0
R1(config)#crypto ipsec transform-set cisco esp-des esp-md5-hmac
R1(cfg-crypto-trans)#mode transport
R1(config)#crypto ipsec profile sovand
R1(ipsec-profile)#set transform-set cisco
R1(config)#int tunnel 0
R1(config-if)#tunnel protection ipsec profile sovand
R1(config-if)#ip mtu 1400
R3(config)#crypto isakmp policy 10
R3(config-isakmp)#authentication pre-share
R3(config)#crypto isakmp key 0 cisco add 0.0.0.0 0.0.0.0
R3(config)#crypto ipsec transform-set cisco esp-d esp-m
R3(cfg-crypto-trans)#mode transport
R3(config)#crypto ipsec profile sovand
R3(ipsec-profile)#set transform-set cisco
R3(config-if)#tunnel protection ipsec profile sovand
R3(config-if)#ip mtu 1400
R4(config)#crypto isakmp policy 10
R4(config-isakmp)#authentication pre-share
R4(config)#crypto isakmp key 0 cisco add 0.0.0.0 0.0.0.0
R4(config)#crypto ipsec transform-set cisco esp-des esp-md5-hmac
R4(cfg-crypto-trans)#mode transport
R4(config)#crypto ipsec profile sovand
R4(ipsec-profile)#set transform-set cisco
R4(config-if)#tunnel protection ipsec profile sovand
R4(config-if)#ip mtu 1400
查看DMVPN状态
可以看到分部站点只维持和总部站点的的隧道
分部站点的隧道流量按需建立,使用ping命令,动态建立分部站点间的隧道
这个地方本来是想验证下总部站点代转发的现象,但是发现即使不用ping去触发,pkts decaps数量也一直在增加,所以show出来的结果就不具备代表性了。