动态多点V.P.N集成了动态**的动态简化多线**配置和GRE over IPSEC 的多协议tunnel传输功能,形成了HUB-SPOKER的网络架构模式,既可以实现中心节点一次配置零调整,分支节点无限制接入,又能实现动态协议的部署。
DMV.P.N只能部署在Cisco的路由器上,同时还需要注意版本支持。
实现DMV.P.N功能的四大技术组件分别是MGRE(多点隧道)、NHRP(吓一跳解析协议)、IPSEC、和动态路由协议(主要为EIGRP、OSPF、BGP)。
MGRE目的是HUB端一次配置后可以和无上限SPOKER建立若干Tunnel,另外也是为传递以组播为主的动态路由协议提供通道。
NHSP目的是建立Tunnel和公网IP地址之间的映射关系,为SPOKER和HUB注册关联提供路由前置条件,另外也是为了建立SPOKER-SPOKER虚拟tunnel提供依据。
IPSEC是为了数据传递的安全性。
动态路由协议是为了在DMV.P.N中实现路由动态更新和互联。
R1为HUB端,R2为ISP ,剩余的为SPOKER。
HUB端配置:
- IPSEC V.P.N部分配置
crypto isakmp policy 1
encr 3des
hash md5
authentication pre-share
group 2
crypto isakmp key cisco123 address 0.0.0.0
crypto ipsec transform-set DC esp-3des esp-md5-hmac
mode tunnel
crypto ipsec profile profile1
set transform-set DC
Tunnel部分配置
interface Tunnel1
bandwith 1000 //tunnel默认bandwith 比较低约9Kbps ,改变该值只能影响动态路由协议的传递,如EIGRP metric ,HUB和SPOKER最好保持一致
ip address 169.254.1.1 255.255.255.0
ip mtu 1400 //设置tunnel数据最大传输单元,
no ip next-hop-self eigrp 20 //在SPOKER-SPOKER模式中将SPOKER1去往SPOKER2的路由吓一跳从HUBtunnel接口地址改为目的SPOKER的tunnel接口地址
no ip split-horizon eigrp 20 //关联EIGRP的水平分割,HUB将一个SPOKE学来的路由信息通告给其他SPOKER
ip nhrp authentication cisco456 // SPOKER注册到HUB的认证密码
ip nhrp map multicast dynamic //HUB端自动开启组播映射,SPOKER通过一对一映射注册到HUB后使建立的隧道可以自动发送组播
ip nhrp network-id 1 //SPOKER向HUB注册关联的识别ID,必须相同
tunnel source Ethernet0/0 //Tunnel关联的公网物理接口
tunnel mode gre multipoint //设置tunnel模式为多点tunnel
tunnel key 1024 //建立tunnel的key必须保持一致
tunnel protection ipsec profile profile1 //开启tunnel数据通过IPSEC加密接口
interface Ethernet0/0
ip address 100.0.1.2 255.255.255.252
end
SPOKER端配置
IPSEC V.P.N配置
crypto isakmp policy 1
encr 3des
hash md5
authentication pre-share
group 2
crypto isakmp key cisco123 address 0.0.0.0
crypto ipsec transform-set B1 esp-3des esp-md5-hmac
mode tunnel
crypto ipsec profile profile1
set transform-set B1Tunnel部分配置
interface Tunnel1
bandwith 1000
ip address 169.254.1.3 255.255.255.0
ip mtu 1400
ip nhrp authentication cisco456
ip nhrp map 169.254.1.1 100.0.1.2 //静态建立HUB端公网IP地址和Tunnel地址的单播映射
ip nhrp map multicast 100.0.1.2 //建立静态组播映射
ip nhrp network-id 1
ip nhrp nhs 169.254.1.1 //指定HUB的地址
tunnel source Ethernet0/0
tunnel mode gre multipoint
tunnel key 1024
tunnel protection ipsec profile profile1
end接口
interface Ethernet0/0
ip address 100.0.3.2 255.255.255.252
end
动态路由的一些问题
EIGRP
如上面所说,DM***中在部署SPOKER-SPOKER网络连接时,EIGRP需要关闭EIGRP的水平分隔特性,使得HUB可以将路由通告给其他所有SPOKER ,保持HUB\SPOKER 的EIGRP路由一致。
为了避免SPOKER到另一个SPOKER的路由还是要经过HUB转发,需要在HUB上关闭吓一跳为HUB自己的tunnel接口,及调整EIGRP目的路由的吓一跳为目的SPOKER的tunnel地址
PS:EIGRP水平分割是指路由器一个接口收到的路由信息不会再从这个口通告出去。
OSPF
OSPF和网络类型有很大区别,tunnel接口 默认的网络类型为POINT-TO-POINT ,对于HUB而言,其MGRE通道需要和多个SPOKER建立邻居,所以默认情况下,即使建立了OSPF邻居,也会出现OSPF 邻居flapping的情况,及down/up, 为了解决这个问题就需要将tunnel接口的ospf 网络类型更改为BROADCAST类型,
另外为了解决 SPOKER-SPOKER通信中下一跳默认为HUB的问题,可以调整HUB tunnel接口的优先级使其成为DR。
采用上述办法调整后的结果如下:
另一种办法时通过NHRP来解决;
修改网络类型为point-to-mulitipoint(不选举DR/BDR)
在没有开启重定向和NHRP查询时,SPOKER路由的下一跳还是HUB,
总部HUB开启重定向(ip nhrp redirect)
分部SPOKER开启NHRP的查询 (Spoke上ip nhrp shortcut 可以发映射请求了)
以上,在配置以后,触发SPOKER和SPOKER之间的流量就会看到,下一跳被重写了,标记有“%”
协议相关
在HUB-SPOKER建立通道时(永久)
SPOKER先和HUB建立GRE over IPSEC ***隧道,然后SPOKER注册到HUB,最后是动态路由的建立和更新;
在SPOKER和SPOKER建立(临时)
SPOKER先通过NHSP映射关系找到目标SPOKER,然后进行IPSEC ***隧道的建立,之后再传递加密数据。
参考连接:
https://www.cisco.com/c/dam/en/us/products/collateral/security/dynamic-multipoint-***-dm***/prod_presentation0900aecd80313c9d.pdf
https://www.cisco.com/c/dam/en/us/products/collateral/security/dynamic-multipoint-***-dm***/prod_presentation0900aecd80313ca0.pdf