动态多点×××是一个高扩展的IPSEC ×××解决方案

传统的ipsec S2S 有如下劣势

1. 中心站点配置量大,无论是采用经典ipsec ***还是采用 gre over ipsec 多一个分支站点就要增加一份配置,那么当分支站点过多配置就会变成沉重的负担并且不容易进行管理

2.分支站点间的流量延迟较大

分支站点与分支站点之间不能直接通信,分支与分支进行通信时 数据需要先送往数据中心进行中转 需要进行2次加密解密 大大增加了延迟时间

3 .每一个分支站点之间都需要固定的IP地址

DM×××的优点

1. 简单的星型拓扑配置 提供了虚拟网状网络的连通性

2.分支站点之间支持动态IP

3.增加新的分支站点无需更改中心站点的配置

4.分支站点之间的流量不需要经过HUB端进行中转

DM××× 由4部分组成

1. 动态多点GRE 隧道

2. 下一跳地址解析协议 NHRP

3. 动态路由协议

4. ipsec技术


wKiom1TI2erD5Cm6AAEEPBv9Ifg922.jpg


预配要求

1.各总部与分支机构之间不能有去往对方的路由条目

2.确保总部与分支机构之间的公网可通

创建DM ××× 总共分为4个步骤

1. 创建多点隧道

2. NHRP

3. 动态路由协议

4. IPSEC

第一步:创建多点隧道

hub1
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
R1(config-if)#tunnel source s1/0
R1(config-if)#tunnel  key 12345
R1(config-if)#ip mtu  1400
R1(config-if)#bandwidth  1000

hub2
R2(config)#  int tunnel  0
R2(config-if)#  ip add 172.16.1.2 255.255.255.0
R2(config-if)#tunnel  mode gre  multipoint
R2(config-if)#tunnel  key  12345
R2(config-if)#tunnel  source  s1/1
R2(config-if)#ip mtu  1400
R2(config-if)#bandwidth  1000

spoke1
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  key 12345
R3(config-if)#tunnel source  s1/2
R3(config-if)# ip mtu  1400
R3(config-if)# bandwidth  1000

spoke2
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  key 12345
R4(config-if)#tunnel source s1/3
R4(config-if)#ip mtu  1400
R4(config-if)# bandwidth  1000

第二步 配置NHRP

hub1

R1(config)#   int tunnel  0
R1(config-if)# ip nhrp  holdtime  300
R1(config-if)#ip nhrp network-id  100
R1(config-if)#  ip nhrp map 172.16.1.2 25.1.1.2
R1(config-if)#ip nhrp map multicast  25.1.1.2
两个hub端要互指

hub2
R2(config)#    int tunnel  0
R2(config-if)# ip nhrp holdtime  300
R2(config-if)# ip nhrp network-id  100

R2(config-if)#   ip nhrp map  172.16.1.1 15.1.1.1
R2(config-if)# ip nhrp  map multicast  15.1.1.1
两个hub端要互指

spoke1
R3(config)#  int tunnel  0
R3(config-if)# ip nhrp holdtime 300
R3(config-if)# ip nhrp network-id  100
R3(config-if)#  ip nhrp  nhs 172.16.1.1
R3(config-if)# ip nhrp nhs 172.16.1.2
R3(config-if)# ip nhrp map 172.16.1.1 15.1.1.1
R3(config-if)#ip nhrp map 172.16.1.2 25.1.1.2

spoke2
R4(config)#  int tunnel  0
R4(config-if)#   ip nhrp holdtime  300
R4(config-if)# ip nhrp  network-id  100
R4(config-if)#ip nhrp nhs 172.16.1.1
R4(config-if)# ip nhrp nhs 172.16.1.2
R4(config-if)# ip nhrp map  172.16.1.1 15.1.1.1
R4(config-if)# ip nhrp map 172.16.1.2 25.1.1.2

第三步 宣告路由协议EIGRP
hub1
R1(config)#router eigrp 90
R1(config-router)#net 172.16.1.0
R1(config-router)#no auto-summary

hub2
R2(config)#  router eigrp 90
R2(config-router)#net 172.16.1.0
R2(config-router)#no auto-summary

spoke1
R3(config)# router eigrp 90
R3(config-router)#net 172.16.1.0
R3(config-router)#no auto-summary

spoke2
R4(config)#router  eigrp  90
R4(config-router)# net 172.16.1.0
R4(config-router)#no auto-summary

此时EIGRP邻居关系无法建立  因为tunnel链路开启组播传输


hub1
R1(config-if)# ip nhrp map multicast  dynamic

hub2
R2(config-if)# ip nhrp  map multicast  dynamic

spoke1
R3(config-if)# ip  nhrp  map multicast  15.1.1.1
R3(config-if)# ip nhrp map multicast 25.1.1.2

spoke2
R4(config-if)# ip nhrp   map multicast  15.1.1.1
R4(config-if)# ip nhrp map multicast  25.1.1.2


tunnel链路的路由条目正确学习 但是分支与分支之间进行通信,仍然要通过HUB端进行中转

hub1
R1(config-if)# no ip split-horizon  eigrp  90
R1(config-if)# no ip next-hop-self eigrp  90

hub2
R2(config-if)# no ip split-horizon  eigrp  90
R2(config-if)# no ip next-hop-self eigrp  90



第四步: 在各总部与分支机构路由器上开启IPSEC

Rx(config)#  crypto  isakmp  policy  10
Rx(config-isakmp)#encryption  3
Rx(config-isakmp)#authentication pre-share 
Rx(config-isakmp)#hash  md5 
Rx(config-isakmp)#group  2

Rx(config)#  crypto isakmp  key  cisco address  0.0.0.0 0.0.0.0 

Rx(config)#crypto ipsec  transform-set  myset esp-3des  esp-md5-hmac
Rx(cfg-crypto-trans)#mode tunnel
Rx(cfg-crypto-trans)#exit
Rx(config)#crypto ipsec profile myfile
Rx(ipsec-profile)#set transform-set myset
Rx(ipsec-profile)#exit
Rx(config)# int tunnel  0
Rx(config-if)#tunnel  protection ipsec profile myfile