×

多厂商VPN系列之二十:H3C 高扩展性IPSEC VPN DVPN【类似思科DMVPN,V7叫ADVPN】

hqy hqy 发表于2021-12-26 09:08:50 浏览1741 评论0

抢沙发发表评论

DVPN(Dynamic VPN)简介

非常类似于思科的DMVPN,它核心协议是vam,它主要负责收集、维护、分发公网地址等信息,帮助用户快捷、方便的建立内部的安全隧道,通过server获取到其他站点的下一跳对应的公网地址,并且作为隧道目的地址进行封装,然后发送给目的地
DVPN的几个角色
1、DVPN节点:表示为动态VPN隧道两端设备,主要是建立隧道,作为VAM的客户端功能
2、VAM Server:DVPN服务器,它接收来自DVPN节点的注册信息,主要维护管理各个DVPN节点的信息。
3、VAM Client:DVPN客户端,它向VAM Server注册自己的私网地址、公网地址、VAM标识等信息,也会会向Server查询其他VAM Client的信息。VAM Client也是DVPN的一种
(Client发送的UDP报文包括,连接请求报文、初始化完成报文、注册请求报文和认证请求报文)
4、Hub:也是VAM Client,是一个VPN网络的中心设备,在Hub-Spoke结构中,也是数据转发的中心
5、Spoke:VAM Client的一种,通常是分支结构的设备
6、AAA服务器:对于用户进行认证、授权、和计费管理 【可选】

 image001.png

DVPN的主要特性
1、配置简单:通过Tunnel隧道来和多个VPN建立隧道关系,扩展性和维护都很方便
2、穿越NAT:DVPN采用UDP方式,所以穿越NAT非常方便
3、支持动态IP:在这个结构下,只用Server是固定IP即可,其余的可以是动态IP地址
4、支持自动建立隧道:Spoke之间的访问,可以通过Server的重定向功能自动获取到其他站点的Client信息,并且自动建立隧道会话
5、注册过程加密:必须通过CHAP或者PAP认证,并且需要用户名信息
6、支持身份证认证:通过Pre-sharekey来认证Client与Server
7、策略统一管理:
8、会话协商过程加密:通过IPSec来保护整个会话的安全性
9、支持多个VPN域:允许一个DVPN设备创建多个VPN域,方便隔离
10、支持动态路由协议:

 image002.png

拓扑说明:在实际环境中,通常情况下不会单独拿一条路由器出来作为VAM Server的,这时候可以用Center【hub】来代替,AAA服务器为可选,因为可以通过配置让它不认证或者是本地认证,这样Center即充当VAM Server,VAM Client,又还是AAA服务器。

Center端的配置

1、VAM Server配置
[center]vam server ip-address 202.100.1.1 【定义VAM Server 的IP地址,用来监听Client的VAM包】
[center]vam server vpn 1 【VPN实例,可关联不同的客户端】
[center-vam-server-vpn-1]hub private-ip 10.1.1.1 【这里指定的是hub的Tunnel接口地址】
[center-vam-server-vpn-1]pre-shared-key simple ccieh3c.com 【定于与Client VAM直接的认证密钥】
[center-vam-server-vpn-1]authentication-method chap 【通过chap方式】
[center-vam-server-vpn-1]server enable 【最后开启服务】


2、定义AAA用户【可选】
这里用的是本地认证,所以默认是本地的,不需要定义Radius服务器等配置,如果是外部服务器的话,则需要定义AAA,这里直接创建用户即可,该用户名用来作为对客户端的验证。如果没有启用的话 则不需要AAA
[center]local-user ccieh3c
[center-luser-ccieh3c]password simple ccieh3c.com
[center-luser-ccieh3c]service-type dvpn

3、VAM Client配置
[center]vam client name hub 【定义一个Client】
[center-vam-client-name-hub]vpn 1 【要关联Server的VPN 1实例】
[center-vam-client-name-hub]server primary ip-address 202.100.1.1 【定义服务器地址在哪】
[center-vam-client-name-hub]pre-shared-key simple ccieh3c.com 【密钥与服务器一致】
[center-vam-client-name-hub]user ccieh3c password simple ccieh3c.com 【由于服务器启用了chap认证,所以这里必须输入服务器定义的用户信息】
[center-vam-client-name-hub]client enable 【最后开启服务】

4、IPSEC VPN配置
[center]ike peer center
[center-ike-peer-center]pre-shared-key simple ccieh3c.com
【这里不需要配置remote-address,因为它本身不知道remote-address在哪】
[center]ipsec proposal center
[center-ipsec-proposal-center]
【采用默认策略】
[center]ipsec profile center
[center-ipsec-profile-center]ike-peer center
[center-ipsec-profile-center]proposal center
【使用Profile调用】

5、Tunnel接口【调用VAM Client与VPN Profile】

[center]interface Tunnel 0
[center-Tunnel0]source g0/0/0
[center-Tunnel0]ip address 10.1.1.1 24 【配置一个地址,这个地址也是在VAM Server 指定的】
[center-Tunnel0]tunnel-protocol dvpn udp 【Tunnel的类型为dvpn udp】
[center-Tunnel0]vam client hub 【调用之前的VAM Client】
[center-Tunnel0]ipsec profile center 【调用IPSEC Profile】

6、路由
[center]ip route-static 0.0.0.0 0.0.0.0 202.100.1.10

分支配置

1、VAM Client
[spoke1]vam client name spoke1
[spoke1-vam-client-name-spoke1]vpn 1
[spoke1-vam-client-name-spoke1]server primary ip-address 202.100.1.1
[spoke1-vam-client-name-spoke1]pre-shared-key simple ccieh3c.com
[spoke1-vam-client-name-spoke1]user ccieh3c password simple ccieh3c.com
[spoke1-vam-client-name-spoke1]client enable


2、IPSEC 配置
[spoke1]ike peer spoke1
[spoke1-ike-peer-spoke1]pre-shared-key simple ccieh3c.com

[spoke1]ipsec proposal spoke1
[spoke1-ipsec-proposal-spoke1]

[spoke1]ipsec profile spoke1
[spoke1-ipsec-profile-spoke1]ike-peer spoke1
[spoke1-ipsec-profile-spoke1]proposal spoke1

3、Tunnel接口配置

[spoke1]interface Tunnel 0
[spoke1-Tunnel0]source g0/0/1 【这里为了简化环境,所以没有定义PPPOE拨号了,如果是PPPOE的话,则是拨号接口】
[spoke1-Tunnel0]ip address 10.1.1.2 24
[spoke1-Tunnel0]tunnel-protocol dvpn udp
[spoke1-Tunnel0]vam client spoke1
[spoke1-Tunnel0]ipsec profile spoke1

4、路由
[spoke1]ip route-static 0.0.0.0 0.0.0.0 202.100.2.10 【如果是PPPOE环境的话,则是拨号接口】

VAM查看【检查】

 image003.png

可以看到有3个映射列表,一个是hub【Center自身】,另外2个是Spoke的,它 通过VAM Client声明它Tunnel接口与公网接口的对应关系。

 image004.png

可以看到Spoke跟hub是永久的存在关系,那么Spoke之间互相通信下,则Spoke会有对应的其他Spoke的映射关系,这个是按需的。

 image005.jpg

可以看到直接通过在VAM 消息到Server端查找到10.1.1.3对应的公网地址,则立马出现了对应关系,这里默认为170s。

IPSEC VPN

 image006.png

IPSEC VPN会自动建立隧道,这里的难点并不是VPN,而是VAM那块,注意的是在所有的VPN配置中,并没有指定任何的remote-address和Tunnel Destination地址,那么Spoke是怎么知道hub端的地址是谁呢,那么所有的实现都是因为通过VAM功能实现的,Client通过指定的Server地址与Server建立连接关系【通过认证】,Server会通告hub端的映射关系给Spoke,而且是永久性的,这样的话hub就知道了hub的公网地址是什么了,则VPN发起建立的时候,直接发往该IP地址。

路由问题

这里路由问题完全可以通过静态路由和动态路由协议来解决,静态路由自然很好配置,这里主要说下OSPF的问题。

在OSPF中,有网络类型的存在,而Tunnel接口默认是点对点的,在这里显然是不行的,因为hub跟Spoke是点对N的关系,那么则有broadcast与P2MP选择,broadcast是需要选举DR,BDR的,所以在这种情况下 Spoke不能充当DR,否则的话很有可能许多DR,hub端会把Spoke都当成DR【可能Spoke端的Loo地址大】,这样的话路由传递就会有问题。所以这里只能hub充当dr

 image007.png

这样的话,就不会有什么问题了,P2MP的话 没啥问题需要注意的。

 image008.jpg

可以看到所有的路由都收到了。

 image009.png

Spoke与Spoke之间互访

 image010.png

可以看到现在只有hub的永久映射关系的,而Spoke与Spoke之间的互访是否通过hub呢。

 image011.png

可以看到通信是正常的,而我们关心的是它到低走的是spoke之间直接建立IPSEC邻居,还是通过IPSEC代转发。

 image012.png

可以看到直接一跳就完成了,如果经过了hub的话,那么是2跳。

 image013.png

这里VAM的映射关系也有了新的,是对方spoke的,也就是说,但Spoke2访问2.2.2.2的时候,它会查找路由的下一跳,

 image014.png

这里为10.1.1.2,那么它会通过vam client像Server查询10.1.1.2的对应表关系,来知道对应的公网地址,然后则通过IPSEC与对方建立VPN。

 image015.jpg

可以看到,Spoke2分别与hub ,然后spoke1也建立了IPSEC VPN,这样的话VPN是不会通过总部转发的。

一些需要注意的地方

1、关于AAA服务器的存在,完全取决于VAM Server是否启用认证,可以通过 authentication-method 来定义为none,则不认证,不认证的话,则不需要通过用户名来认证Client了,也就无所谓AAA服务器了,默认为chap方式。
2、该技术是支持双hub的,如果是双hub的话,则需要在VAM Server定义 多个hub端地址。
3、使用OSPF路由协议的时候注意接口类型的问题,RIP的话注意水平分割,如果地址规划比较好的话,可以使用静态这样更加节省资源
4、如果使用动态路由协议的话,可以把Hello时间稍微改长点,这样减低设备的消耗。


打赏

本文链接:https://www.kinber.cn/post/2023.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客