老的ipsec vpn技术在高扩展上的问题
1.两次加解密
2.两次占用中心带宽
1.ipsec vpn配置过多
2.每个客户端需要维护扩多的ipsec sa
3.每个客户需要固定ip地址dmvpn是一个高扩展性的vpn
1.mgre
多点gre,类似于fr,fr我们需要fr map,一个ip到dlci的映射,mgre环境里边我们需要虚拟ip的映射,这个时候我们就需要nhrp了
mgre是一个nbma的网络,不能运行组播,为了能够让组播正常工作我们需要对组播进行手动映射才行,例如我们需要手动的,让branch1发送组播给center,这样branch就可以和center运行动态路由协议了。
2.nhrp
下一跳解析协议,帮我们解析物理的ip。center是nhs(下一跳解析服务器),所有的branch都需要静态指定nhs的映射,branch会到nhs上去注册,注册虚拟地址所对应的物理地址,所有的branch之间的访问都需要到center上去解析对方虚拟地址的物理地址,只有获取对方的物理地址之后才能直接与对方的branch建立gre通道
3.ipsec vpn
mgre配置:
center:
inter tunnel 0
ip add 172.16.1.100 255.255.255.0
tunnel mode gre multipoint (多点gre)
tunnel source fa0/0 多点gre没有目的
tunnel key 12345(这个必须敲不然多点gre不会up)
branch1:inter tunnel 0
ip add 172.16.1.1 255.255.255.0
tunnel mode gre multipoint
tunnel soutce f0/0
tunnel key 12345
branch2:
inter tunnel 0
ip add 172.16.1.2 255.255.255.0tunnel mode gre multipoint
tunnel souce f0/0
tunnel key 12345
所有的客户端都知道center的物理ip是什么
dranch1:
int tunnel0
ip nhrp ma 172.16.1.100 202.100.1.100(手动映射center虚拟ip和物理ip)
ip nhrp network-id 10(网络id,必须要在同一个网络id里面,才能够进行正常的通信,所有的客户端和中心都要一样)
ip nhrp nhs 172.16.1.100(指定nhrp的服务端的虚拟ip地址)
他会把自己的物理ip和虚拟ip做映射给服务端,服务端维护了一个物理ip和虚拟ip的映射表。
center:
int tunnel0
ip nhrp network-id 10
dranch2:
int tunnel0
ip nhrp map 172.16.1.100 202.100.1.100
ip nhrp nhs 172.16.1.100
ip nhrp network id 10
center:
show ip nhrp
center:
inter tunnel 0
ip nhrp map multicast dynamic(由于mgre不支持组播,组播映射)
branch1:
int tunnel 0
ip nhrp map multicast 202.100.1.100
branch2:
int tunnel 0
ip nhrp map multicast 202.100.1.100
center:
router eigrp 100
no au
net 172.16.1.0 0.0.0.255
net 192.168.100.0 0.0.0.255
branch1:
router eigrp 100
no au
net 172.16.1.0 0.0.0.255
net 192.168.1.0 0.0.0.255
branch2:
router eigrp 100
no au
net 172.16.1.0 0.0.0.255
net 192.168.2.0 0.0.0.255
由于dmvpn有个bug所以必须把所有tunnel接口shutdown,开启的时候由中心开始no shutdown
由于eigrp水平分割,branch1:没有学到branch2的内部网络。需要在center执行。
inter tunnel 0
no ip split-horizon eigrp(关闭水平分割)
no ip next-hop-self eigrp 100(取消eigrp100的下一跳是自己)
dmvpn是一个gre over ipsec的技术
center:
cry isa pol 10
au pre
hash md5
cry isa key 0 cisco address 0.0.0.0
cyr ipsec transform-set cisco esp-des esp-md5-hmac
mode transport
cry ipsec profile cisco
set transform-set cisco
branch1:
crypto isakmp policy 10
hash md5
authentication pre-share
crypto isakmp key cisco address 0.0.0.0 0.0.0.0
crypto ipsec transform-set cisco esp-des esp-md5-hmac
mode trunsport
crypto ipsec profile cisco
set transform-set cisco
branch2:
crypto isakmp policy 10
hash md5
authentication pre-share
cry isakmp key cisco address 0.0.0.0 0.0.0.0
crypto ipsec transform-set cisco esp-des esp-md5-hmac
mode transport
crypto ipsec profile cisco
set transform-set cisco
调用:
center:
inter tunnel 0
tunnel prolection ipsec profile cisco
branch1:
inter tunnel 0
tunnel prolection ipsec profile cisco
branch2:
inter tunnel 0
tunnel prolection ipsec profile cisco
由于对于原始的包加了很多包头,所以又可能造成分片,所以调整我们的mtu.可以设置为1440.或1436.
center:
inter tunnel 0
ip mtu 1440
branch1:
int tunnel 0
ip mtu 1440
branch2:
int tunnel 0
ip mtu 1440