借助AD实现WOC集群(双活)部署
  

Windroid Lv3发表于 2018-7-16 23:36

本帖最后由 Windroid 于 2018-8-2 18:34 编辑

项目背景
客户项目前期采购了WOC单臂模式部署用来与分支构建Sangfor VPN隧道并为内网视频会议加速以及传输分支大量视频流备份,之后因项目分支数急剧增加以及扩容,再次购买了相同型号的WOC准备采用双机部署实现高可用。
现有拓扑
电信移动双ISP进线,出口使用AD网关部署,下接NGAF透明部署,WOC单独一个VLAN,单臂部署。
粮食局WOC方案.jpg.jpeg
问题
WOC双机目前只支持“主备”模式,对于大量分支接入的场景,最终还是只有一台能实现用户接入显然并不能有效解决问题,且备机的计算资源又浪费掉了
对于这个问题,提出了两种解决方案:
【方案一】将大量用户均分成两部分,然后两台WOC使用不同的WebAgent端口来实现将分支人为地分担到两台设备上接入
优点:初步解决了单台负载过高,并利用了所有计算资源(相对于主备模式双机),分担了WOC负载。
缺点:并没有实现真正地负载均衡以及高可用,如果接入用户恰好集中在一台,还是会造成资源浪费,当其中一台设备宕机时或不可用时,依然需要人工干预;已有地大量分支设备配置需要调整,工作量大,需要借助SC等其他设备。
【方案二】使用出口AD的应用负载功能,将两台WOC作为资源池中的两个节点,利用AD的智能调度功能,实现对WOC的负载均衡
优点:实现了多台WOC的“集群”功能,并有效分担接入负载,当其中一台WOC出现故障或离线时,隧道能够重新建立,保证业务的高可用;实现了WOC节点的简易横向扩展,当分支数继续增加时,理论上可以再增加同样的WOC进入“WOC池”,使WOC或其他VPN设备更容易应对大量分支或高并发场景。
缺点:由于WOC并非真正意义上的了解到自己在“集群”当中,因此关于类似抢占性等高可用特性均不能实现,在发生切换后,除非且换后设备也发生故障,否则隧道将一直在切换后设备上保持;由于WOC目前不支持OSPF等高级动态路由特性(仅有限支持RIPv2),因此VPN路由的问题将成为一大挑战。

方案二拓扑
粮食局WOC方案2.jpg.jpeg

方案二实现步骤
先按WOC单臂部署流程正常配置WOC
1、确认硬件型号,固件版本等基本信息,一致后从一台设备中导出配置并在另一台设备上导入,保证两个WOC“节点”配置一致。
2、分别修改LAN口地址(注意:LAN口地址必须为标准的有类地址,RIP无法在采用了VLSM或CIDR的子网内运行,如:172.16.5.0/24这样的子网,但172.16.5.0/16则可以),以及设备名称,以方便辨认。
3、配置VPN服务端;填写需要宣告给分支的本地子网列表。
TIM截图20180710161955_LI.jpg

TIM截图20180710162025.png
4、添加接入用户,接入ACL策略等(略)

现在开始配置AD
先按AD标准网关部署流程,正常配置AD,确保多链路接入均正常,内网正常访问Internet
5、在【应用负载】内分别新建类型为TCP和UDP的服务Sangfor VPN,端口号即WebAgent端口,原因是VPN接入时既可以使用TCP也可以使用UDP,在不清楚分支接入方式时,可以在WOC VPN状态里查看
QQ截图20180716215955.png

QQ截图20180802182104.png

6、配置地址组,这部根据需要配,没啥好说的
QQ截图20180716220241.png
7、配置会话保持,这里选择SoureIP(或单独一个针对接下来虚拟服务的其他会话保持策略),考虑到隧道不应当轻易改变,因此时间调到最大了,也可根据需要调整其他合适的值
QQ截图20180716220600.png
8、新建一个针对WebAgent的节点监视器,让其监视WebAgent端口就行了,其他保持默认
QQ截图20180716220652.png
9、新建结点池,并将两个WOC作为节点加入结点池,关联上监视器。其中:节点选择策略选择哈希,哈希字段为源IP地址(SRC_IP),会话保持选择源IP地址(sourceip)
QQ截图20180802182222.png

229595b4ca74627424.png

10、新建前置调度策略,将对应的服务与结点池关联
QQ截图20180716221037.png

11、最后新建要发布的虚拟服务,考虑到VPN隧道建立只是单纯的下四层应用,因此我选择了“四层服务”,其他两种可行性没有尝试。注意,不要使用自动SNAT,否则由于AD的代理特性,WOC上的VPN状态所获得的对端公网IP将全部为AD内网口地址。此外,这里实际测试发现即使不勾选前置调度策略也不影响。
QQ截图20180802182146.png

以上配置全部完成后,隧道将会建立。此时可以通过在AD上查看对应的节点会话数或WOC上的VPN接入状态检查调度情况和接入情况。但是,问题并没有就此结束,由于WOC设备和其他要访问的业务服务器跨越了三层环境,因此隧道的建立并不能保证业务可以正常访问。分析如下:
由于隧道建立的WOC不确定,因此每个WOC从各个分支学习到的VPN路由均不相同,对于核心交换来说,其并不知道具体的VPN路由信息,因此无法使用静态路由将到VPN分支的路由指向某个具体的WOC,在中心端访问分支时,会出现问题。即使VPN分支的网段已规划并容易汇总,但是哪怕使用汇总后的路由,核心交换也不能确定指向,若使用优先级相同的“浮动路由”——即将到汇总后的VPN路由分别指向两台WOC的LAN口地址,则会导致所有接入分支间歇性丢包。
因此这种集群部署的场景,静态路由将无能为力,而WOC支持RIPv2动态路由协议,下面就用该协议解决路由问题。

实现思路:
由于VPN路由所在设备的不确定性,使用静态路由已不能满足需求,而WOC唯一支持的动态路由协议仅有RIPv2,因此考虑在两台WOC开启RIP功能,并周期性将各自的VPN路由重分发到核心网络内,同时,RIPv2支持触发更新机制,当建立分支隧道的WOC发生变动或分支离线时,新的路由信息将被自动通告,此后,核心交换将会通过周期性发送的RIP通告,自动学习到去往VPN网段的下一跳接口(WOC 1或WOC 2)如图:
粮食局WOC方案3.jpg.jpeg
12、分别登录WOC,在【系统】-【路由设置】-【动态路由】内,勾选“启用路由信息协议(RIP)”。注意这里的IP地址应填写LAN口对端设备的地址,也就是RIP邻居的地址(如果填写0.0.0.0,RIP Repose报文将以广播报文发送,但RIPv2规定使用组播地址224.0.0.9,因此广播是不合理的)
勾选“触发定时更新”,这里默认的时间是20s,但RIPv2通常的更新周期是30s,因此这里最好使用30s。
QQ截图20180716223653.png
到这里,需要400或者原厂工程师们协助一下,进入后台修改WOC RIP配置文件,将其中关于开销的值设置为其他值,因为WOC默认构造的RIP报文,Metric=0,对于RIP来说,使用跳数来作为Metric值,Metric应在1~15范围内,0显然是不合理的,并不会被对端设备采纳。配置完成后,单击【保存并生效】,重启设备路由。

13、接下来需要在核心交换上连WOC的vlan接口上也启动RIP,以华为三层交换机为例,配置命令如下

[Huawei-Vlanif] interface Vlanif xxx #进入对应的VLAN接口配置视图
[Huawei-Vlanif100] rip 1 #启动RIP进程
[Huawei-rip-1] version 2 #配置RIP版本为RIPv2
[Huawei-rip-1] undo summary #关闭路由自动汇总,这步骤很关键,防止WOC通告过来的分支路由被核心交换机自动汇总
[Huawei-rip-1]network xxx.xxx.xxx.xxx #在对应的接口上启动RIP,这里填写对应的VLAN接口地址(与WOC同网段的vlan子网

14、全部配置完成后,使用display ip routing-table protocol rip命令即可查看到交换机从WOC上学习到的RIP路由,如下图:
观察NextHop,发现这些路由都集中在两台WOC上,说明成功学习到了路由信息。以后分支与总部的访问,数据包到核心后,将会根据该路由表,决定具体应交由哪个WOC处理
3~2Y~CJ3Y58HL`E[RJX6_MU.jpg
至此,采用AD实现WOC集群部署就全部完成,现在可以登录AD查看节点状态,并检查中心与分支的通信情况了
AD:
QQ截图20180716230352.png

QQ截图20180716230415.png

WOC:
QQ截图20180716232004.png

QQ截图20180716231923.png

其他说明与建议
1、RIP是很古老的动态路由协议,在目前的组网方案中已几乎不再使用。且周期性地交换整张路由表,对设备性能和网络带宽的占用本身也不能被忽视。
2、基于1,希望未来的WOC或其他VPN产品也加入对现代动态路由协议(OSPF、BGP、IS-IS等)的支持,以便产品更好地适应中大型组网或高并发多分支组网的需要。
3、WOC的RIP配置文件关于开销的默认配置有误,导致在WebUI下即使全部正常配置,RIP也不能正常启动,需要借助原厂技术支持才能解决。
4、采用这种方案,WOC的加速功能可能会失效(并未做相关测试),因为对端需要配置中心的WOC内网地址,但由于集群的存在,该地址不确定,需要使用WOC加速功能的场景谨慎使用。
QQ截图20180716220857.png
30395b4ca77108b09.png
QQ截图20180716221245.png

喜欢这篇分享吗?喜欢就给楼主打点赏吧!点个赞也是极大的鼓励!

发帖可获得5S豆;若您的分享被加精或推荐优秀等,将获得更多S豆奖励,了解更多S豆奖励信息

完善手机号和公司名称,让服务更省心更便捷!立即完善

sangfor_闪电回_小六 发表于 2018-7-17 19:02
  
这么好的干货帖,差点错过了!感谢楼主分享,辛苦了
sailyang Lv6发表于 2018-7-21 08:16
  

很详细,谢谢分享
sangfor_闪电回_小六 发表于 2018-7-26 10:00
  
非常好的帖子,楼主好厉害。忍不住又打赏了一下
qinpeng Lv18发表于 2018-7-26 17:32
  
在膜拜大神的路上越走越远
vito Lv6发表于 2018-7-27 08:24
  
厉害啊,RIP确实用的少。
甲防乙昉195352 Lv1发表于 2018-7-30 14:54
  
WOC不支持OSPF、BGB、IS-IS等相关的动态路由协议?
杨柳0621 Lv2发表于 2018-8-2 08:45
  
干活贴~ 非常好 值得学习!
LaoYang Lv8发表于 2018-8-2 20:59
  
很犀利哦
cow977 Lv3发表于 2018-8-3 08:03
  
方案中路由设置是关键。

建议所有设备采用一套IOS,通过授权来裁减,这样可以保证同一个功能在不同设备上是一样的。

现在有些功能,虽在不同设备上都有,如VPN,但还是有差别的,并不完全一致。客户对此并不了解,造成不必要的麻烦。