一,引言
在大型企业里通过在总部和分支机构部署SDWAN实现内网互联,也可以通过SDWAN实现分支机构的公网流量归集。SDWAN加强了总部对于分支机构的访问控制。SDWAN设备应该直连出口链路,不允许在中间串接设备,如果发现下面的设备MAC地址变化,需要通知用户。其网络部署示意图如下:
- 分支机构将SDWAN设备串接在用户网络中,管理用户所有的内网互联流量和公网上网流量。SDWAN设备下一跳直连光猫或者运营商网络。
- SDWAN设备和互联网网络之间不允许串接其他设备。
- SDWAN设备发现下一跳设备变更之后通知用户。
二,技术方案
本地方案设计到的模块和连接关系如下图所示:
云平台和控制器之间通过http调用通信。控制器与底层控制平面之间走netconf协议, 控制平面负责将配置数据写入数据库。配置响应进程通过订阅数据库的数据变化来实现回调来见配置数据下发给数据平面,实现对UCPE的控制。本方案主要涉及到配置下发和告警上报。当用户使用动态地址的时候需要从dhcp server获取默认路由,从而获取下一跳MAC地址。
三,技术实现
3.1云平台下发开关
第一步,在智能网关,网络配置界面,开启或者关闭WAN侧网关MAC地址检测开关。
3.2云平台查看状态信息
WAN侧网关MAC地址检测开启之后可以在基本信息里面查看状态。新增链路状态栏,显示具体的出口链路,下一跳网关地址,网关MAC地址和上一次MAC变更时间。WAN侧网关MAC地址检测作为一个不常用的功能,云平台可以考虑把展示逻辑和开关联动起来,开关关闭的时候不显示这些信息;开关开启的时候才显示。用户可以通过看WAN侧下一跳的MAC是不是预期的MAC,或者通过变更时间来查看用户下一跳设备的变化情况。
3.3底层检测逻辑
控制器下发WAN侧组网变更检测开关到控制平面,控制平面把配置传递给数据平面,开启检测上报逻辑。
数据平面路由模块检测默认路由配置,记录出接口和下一跳。Arp模块获取下一跳mac之后,将下一跳Ip,接口名和具体的网关mac传递给控制平面。
控制平面记录对应出接口和网关mac到存储文件中。如果开关没有开启,不通知给控制器;如果开关开启,通知给控制器老的mac和新的mac。如果开关开启的时候已经有mac记录,直接上报给控制器。开关关闭的时候,不清理存储文件。
3.4处理重启逻辑
设备重启后会重新获取下一跳网关的mac地址,如果发现下一跳mac变化需要上传并告警。不过会遇到上传失败的问题。当设备获取到dhcp的时候,设备刚联通网络,控制平面和控制器还没有建立好连接,这个时候上传信息会失败。如果反复上报并进行确认,修改逻辑较大。只为处理重启逻辑,让控制器在第一次建立连接的时候获取一下mac记录。后续的变更就可以正常上传给控制器,整个功能就正常了。
四,总结
此文档主要描述了wan侧组网变更的实现原理。Wan侧组网变更是用户使用场景的真实需求,可以帮助用户对组网的设备进行管理,增加用户网络的安全性。