【原创】SDN在广域网的应用-05-基于意图的策略驱动

策略,在思科Viptela SD-WAN里简单来说就是用来影响Overlay网络中广域网边界路由器之间的数据流量传输的一种手段。正如前文所述它类似于Overlay网络架构区分了控制平面与数据平面一样,如图9- 16所示策略也分为影响控制平面的控制策略和影响数据平面的数据策略,而结合其作用范围又可区分为集中化(Centralized)策略和本地化(Localized)策略。

s00091.png

图9- 16 策略框架

以集中化策略为例,它的配置结构非常类似于使用MQC方式去配置QoS。如图9- 17所示,列表(LISTS)相当于QoS中的Class-Map,列表是多元化的其中不同的列表定义了不同的条件来匹配我们想去影响的流量或想去影响的网络范围。策略定义(POLICY DEFINITION)相当于QoS中的Policy-Map,它是针对策略的具体描述。例如,使用什么样类型的策略,是控制类型的策略还是数据类型的策略,匹配到列表当中的什么条件之后需要执行什么样的动作,不同类型的策略定义所能呈现的动作也不尽相同。策略应用(POLICY APPLICATION)相当于QoS中的Service-Policy,规范了动作会应用到列表所定义的哪些范围或是设备的哪些方向。

图9- 17 策略配置结构

有了策略的基本概念和框架后,接下来我们对策略的用途进行深入介绍,集中化策略又称vSmart策略,因为他们被集中化的配置于vSmart Controller而得名。作用范围可以覆盖整个Overlay网络,无论控制平面还是数据平面都可以通过用户的意图来灵活实现整网流量的多方位管控。集中化的策略它颠覆了传统策略管控的复杂性,通过集中化的策略配置,影响到整个Overlay网络的数据流向,并且通过图形化使其非常便捷的部署。

通过集中化控制策略,可以影响存储在vSmart Controller路由表中的信息和vSmart Controller通告给vEdge Router的信息,换句话说就是在OMP更新上做文章,从而对网络范围内如何按照用户意图路由流量起到杠杆作用。因为vEdge Router最终会通过vSmart Controller来获知网络拓扑与如何将Overlay网络的数据流量发送到指定目的地。在此需要注意的是策略的配置被保留在了vSmart Controller上,它并不会被推送到vEdge Router,因为影响vEdge Router决策的是vSmart Controller经由OMP更新告知它的路由拓扑信息,由vSmart Controller集中管控而vEdge Router只是被动受到影响。

图9- 18 集中化控制策略

有了控制平面作为基础,vEdge Router与 vSmart Controller之间会周期性的交换OMP更新,OMP更新中会携带Overlay网络相关的路由信息,这些更新中包含的两个重要内容是vRoute属性(可以简单的理解为BGP路由前缀及相关属性值)和TLOC(可以简单理解为BGP的下一跳)属性。vSmart Controller使用OMP更新中的这些属性来确定Overlay网络的拓扑和状态,并将获知的有关Overlay网络的路由信息​​安装到自己的路由表中。然后,vSmart Controller通过发送OMP更新将Overlay网络拓扑分发给vEdge Router。在整个流程中集中控制策略具体怎么来影响控制平面从而改变数据流的转发路径呢?如图9- 18所示首先,位于中间的vSmart Controller会检查OMP更新中携带的属性,并基于用户的意图来修改与策略匹配的属性。例如,改变路由的下一条或增加优先级等等。其次,由集中化控制策略产生的任何更改都可以从入站或出站两个方向应用于vSmart Controller,方向性是站在vSmart Controller的角度来说。图中左侧显示了vSmart Controller上配置名为“prefer_local”的控制策略应用到 Site 1的情况,因为apply-policy下引用了site-list list1,也就意味着应用到了Site1站点内的所有vEdge Router,应用这个策略的命令是control-policy prefer_local in,in关键字表示入站策略,应用于从Site1的vEdge Router发送给vSmart Controller的OMP更新,在vSmart Controller的角度来看这就是入站方向,在更新到达vSmart Controller安装进路由表之前,执行“prefer_local”控制策略,如果OMP更新中的任何vRoute或TLOC属性与策略匹配,那么在vSmart Controller将OMP更新信息安装到它自己路由表之前,会执行由策略定义引发的更改。就策略应用的方向而言,入方向的特点在于会影响vSmart Controller可用于确定网络拓扑和网络可达性的信息,因此在将vRoute和TLOC属性放入vSmart Controller的路由表之前修改它们可以对整个Overlay网络中的流量产生广泛影响。因为vSmart Controller会把收集到的Site1下的且被策略匹配修改之后的信息安装进自己的路由表并发送给其他所有Site的vEdge Router。图中右侧显示使用相同的“prefer_local”策略,但是这里通过control-policy prefer_local out命令将其应用于Site2,out关键字表示出站策略,这意味着该策略应用于vSmart Controller发送到Site2的vEdge Router的OMP更新,策略会在vSmart Controller收到OMP更新,路由信息进入路由表之后发出出站OMP更新之前来进行更改,换句话说,在Site2的vEdge Router收到更新之前,vSmart Controller的路由表已放入了Site1未经修改过的OMP更新并在自己的出方向上应用策略,出方向的特点在于控制策略仅影响包含在site-list中的每个vEdge Router上的路由表,范围相对有限。通过这个例子我们了解到将相同的控制策略应用于入站和出站OMP更新他们的影响是不同的,恰恰也说明了思科 Viptela SD-WAN对于控制策略体系结构设计的配置灵活性。

控制平面的集中化策略介绍完后,我们接着再来看看集中化的数据策略,它作用于特定网络分段(Segments)中的数据流量,在思科Viptela SD-WAN解决方案中,网络分段的实现我们把它称为VPN,它类似于思科三层设备当中的VRF来进行资源的隔离。在VPN中通过源地址等信息指定特定源的数据包,例如,本地站点发出的语音,数据或其他流量,控制这些流量可以在VPN中抵达哪些目的地。控制可以基于源目IP地址、源目端口、DSCP、协议这个6元组或VPN成员关系来允许和限制流量的访问。除了检查数据包中的网络和传输层包头之外,还可以使用集中数据策略来检查数据包有效负载中的应用信息,这种DPI(Deep Packet Inspection)可控制来自特定应用Application或应用家族列表(Application Family List)的数据包如何通过网络转发,从而允许您分配特定隧道承载指定的应用流量。与集中化的控制策略相同的是集中化数据策略也在vSmart Controller上集中配置,策略自身的配置是不会被推送到网络中的vEdge Router的,但不同点在于经由OMP更新推送到vEdge Router的是集中化数据策略逻辑。换句话说集中化数据策略以只读方式推送到vEdge Router,它们不会添加到路由器的配置文件中,但您可以从vEdge Router上通过相关的show命令查看到它们。

图9- 19 集中化数据策略

如图9- 19所示定义了一个“change_next_hop”的集中化数据策略,在这个策略当中可以定义检查数据包头中的哪些字段,例如查看源目标地址及端口,协议和DSCP值,并对匹配了这些字段的数据包进行下一跳的修改,例如Site3下vEdge Router本来发往Site1的数据,正常情况下,下一跳应该是Site1的vEdge Router,但可以在策略定义里指明匹配了数据包的某些字段后下一跳修改为Site2下的vEdge Router。这个“change_next_hop”的集中数据策略应用在了Site3的vEdge Router,vSmart Controller发送给Site3的vEdge Router的OMP更新中就会包含这个策略的解释,在这个解释说明当中描述了如果Site3的vEdge Router上发送或接收数据流量时匹配到了这个策略,将更改下一跳为指定的TLOC,如果没匹配,则转发到原始的下一跳TLOC的转发逻辑。在apply-policy下并没有指定方向,缺省应用于vEdge Router通过Tunnel接口发送和接收的数据流量,当然您也可以单独应用于入方向流量或出方向流量,其中的关键字分别为from-tunnel和from-service,而这是从vEdge Router的角度来看的。

说完集中化策略,紧接着再来看一下本地策略,它是指在Overlay网络中vEdge Router本地配置的策略,其中分为影响控制平面的控制策略,也称为路由策略。主要会影响vEdge Router服务侧运行的标准动态路由协议执行控制平面功能,因为vEdge Router具有OSPF和BGP全栈的路由功能实现,因此这些功能包括建立协议邻接以及各种形式的路由操作和过滤。还有影响数据平面的数据策略,允许在vEdge Router上本地配置访问列表并将其应用于指定接口。简单的访问列表允许和限制基于6元组匹配,与集中化数据策略相同通过源目标IP地址、源目端口、DSCP、协议字段,它们控制数据流量如何流出路由器的接口和接口队列。它允许用户对流量进行分类,并将不同的类映射到不同的队列。它还允许用户镜像流量并监控传输和接收数据流量的速率。缺省情况下由于vEdge Router上没有配置访问列表,因此所有数据流量都使用其中一个接口队列以线速和相同的重要性进行传输。当使用了访问列表后您可以配置服务类,这使得可以按重要性对数据流量进行分类,将其分布在不同的接口队列中,并控制传输不同类别流量的速率。

从策略的另外一个功能性维度去看,策略的设计又有基础策略和高级策略之分,对于基础策略而言通常指根据数据包IP头中的字段来允许或阻止流量,最终管理流量在网络中的路径,控制进出vEdge Router接口的数据流量,来实现诸如CoS、Queuing、Mirroring、Policing等功能。

对于高级策略而言它提供了基于网络应用的专用策略,包括用于将流量传送到目的地之前,把数据流量重定向到网络中的共享设备,例如防火墙、IPS、IDS、负载均衡和其他设备的服务链(Service Chain)。服务链使得在每个分支站点不需要都有单独的服务设备。还可以通过策略定义根据实时网络和路径性能特征选择最佳流量路径的应用路由感知(AAR),它使得应用在广域网链路上的传输可以实时的与链路质量相联动。还有等等其它诸多的高级策略使得策略部署非常灵活。

s00141.png

图9- 20 策略的配置、应用与执行

Action 动作
Apply 应用
Configure 配置
Execute 执行
App-route Policy 应用路由策略
Control Policy 控制策略
Data Policy 数据策略
VPN Membership Policy VPN成员策略

在传统的网络模型中通过策略对数据流量进行控制的方法都是本地配置本地执行,也就是说通过配置了策略的设备自身应用这个策略并在其之上执行它来影响整个流量的转发,但这种方式在思科Viptela SD-WAN集中化的策略模型下并不适用。如图9- 20所示的策略类型的完整配置都存储于vSmart Controller,其中集中控制策略和VPN成员策略在匹配策略后对路由或VPN执行的操作也在vSmart Controller。而对于其余的三种,通过策略本身应用在vSmart Controller 上经由OMP更新消息传递给vEdge Router,所以因策略而采取的任何动作都在vEdge Router上执行,这里需要注意的是应用(Apply)和执行(Execute)是有区别的,应用并不代表执行,在vSmart Controller上配置,在vSmart Controller上应用,但可以在vEdge Router上执行。

图9- 21 策略分发

策略分发的具体过程可以进一步了解内部细节,如图9- 21所示,如果经由vManage NMS来配置策略,那么配置会通过Netconf协议推送到vSmart Controller或vEdge Router,最终在vSmart Controller或vEdge Router上使用Show Run命令可以查看到它已存储于设备中。集中化控制策略、集中化数据策略、应用路由感知策略、VPN成员策略等都将配置推送至vSmart Controller,并且集中数据策略和应用路由感知策略会利用OMP更新消息进一步向vEdge Router推送,用户可以通过show policy from-vsmart命令在相应的vEdge Router上查看到执行的策略逻辑。而本地化策略,如果由vManage NMS配置,它会通过Netconf协议推送至vEdge Router,此时配置,应用,执行都在vEdge Router上完成。

在实际的部署中,用户可能会注意到数据策略和控制策略有时这两种不同的方法可以获得相同的结果,虽然可能多种方法都能起到相同的作用,但实际部署中某些要求将限制你使用某种类型的策略。例如,如果要求匹配DPI特征,则只能使用数据策略而不是控制策略,如果需求是为了构建Hub and Spoke拓扑而不是Full-Mesh拓扑,为简单起见将推荐使用控制策略。

 

Leave a Reply