一种面向sdn的业务需求转化和部署方法_3

文档序号:9648899阅读:来源:国知局
SFC-I=Auth(Sl)?TM(Sl)?TM(S2) SFC-2=Auth(Sl)?LB(S2) SFC-3=Auth(Sl)?TA(Sl) 到此为止,完成了服务功能链到服务功能实例链的映射,如图3所示。接下去的工作是 部署服务功能实例链。
[0042] 第五步服务功能实例链中的每一个服务功能实例解析为一个针对多状态的网络 策略的选择机制,每个网络策略对应一种网络状态下的一套网络配置。W下是四个服务功 能的多状态的网络策略选择机制: 1."用户认证"服务功能要求只有通过认证的"合法"账户才可W访问网段4中的服务 器。针对多状态的网络策略的选择机制如下(W下代码采用python编写)。
[0043] _auth_flows=self.get_policy( ^authenticated')# 获取账号的认证状态。
[0044] =if_(match_auth_flows,self.allow_polixyQ,self.化op) # 如果认证通过 则执行转发,若认证不通过则执行丢包。
[0045] Pl; 2. "流量管理"服务功能要求,对网段1,2, 3中的终端/主机进行流量监视,当访问数 据服务器速率过高时要限制其流量,针对多状态的网络策略的选择机制如下: match_fast_flows=self. get_policy('fast')# 判断流量是否属于过大match_slow_flows=self. get_polixy('slow')# 判断流量是否属于正常 pi=if_(match_fast_flows, self. fas1:path〇)# 流量过大,禁止访问数据服务器 p2=if_(match_slow_flows, self. slowpathO)# 流量正常,允许访问数据服务器 return pl+p2; 3. "负载均衡"服务功能要求比较四台服务器A,B,C,D的网络延时,找到一条延时最小 的链路。针对多状态的网络策略的选择机制是: se;rverA_flows=self.get_dela}ftime('sa')# 获取服务器A的延时se;rverB_flows=self.get_dela}ftime('sb')# 获取服务器B的延时 se;rve;rC_flows=self.get_dela}ftime('sc')# 获取服务器C的延时 se;rverD_flows=self.get_dela}ftime('sd')# 获取服务器D的延时 a=[serverA_flows,serverB_flows,serverC_flows,serverD_flows] a.sort0 se;rve;r_choice=a[: 1] #选取延时最小的服务器 pl=if_(serverA_flows=server_choice,self.serverA-policy0) ;# 若最小延时月良 务器为A,则将数据包转发到服务器A上,W下=行类似。
[0046]p2=if_(serverB_flows=server_choice,self.serverB_policy()); p3=if_(serverC_flows=server_choice,self.serverC_policy()); p4=if_(serverD_flows=server_choice,self.serverD_policy()); returnPl+p2+p3+p4; 策略通过se;rverA_flows=self.get_dela}ftime('sa')函数获取对应的服务器上的 延时,再通过a.SCXTtQ和se;rve;r_choice=a[:l]函数获取延时最小的服务器。
[0047] 4."流量审计"服务功能审计访问数据服务器(10. 20. 9. 1)的数据流。来确保数 据服务器的安全。流量管理中的审计功能不需要多状态选择机制,故直接确定策略。
[0048]=match(Switch=Sl) &match化StAd化=10. 20. 9.l&SrcAd化=10. 20. 0. 0/16) [fwd(5)] #目标地址为数据服务器的数据包转发到5号端口审计。
[0049] 第六步根控制器根据当前网络的状态,选择合适的网络策略下发给对应的本地控 制器。
[0050]1.根控制器为每个服务功能实例建立一个"状态参数一阔值"表,如图4,其中用 户认证,负载均衡,流量管理=个服务功能对应的状态参数分别是"认证值","最小时延云 服务器"和"数据服务器流量"。图4是S个服务功能的"状态参数一阔值"表。最小时 延云服务器"为例,阔值为A服务器时延最小(SER_A),B服务器时延最小(SER_B),C服 务器时延最小(SER_C),D服务器时延最小(SER_D)。
[0051]"参数一服务功能实例"表。为SI,S2建立的"参数一服务功能实例"表如图5,图 6所示。
[0052]"状态参数监视表"。如图7所示。
[0053] 4.查询"状态参数监视表",根控制器通过本地控制器,将每个服务功能敏感的网 络状态参数和阔值发送给其实例相关的网络节点。比如根控制器通过查询"状态参数监视 表"获取"用户认证"服务功能敏感的网络参数是"认证值",W及合法与非法两个阔值。根 控制器将运些信息下发到网络节点Sl对应的1号本地控制器。同理在其他两个服务功能 上也执行类似的操作。
[0054] 5.当网络状态发生变化,且某参数匹配阔值时,网络节点通过本地控制器发送一 个事件消息给根控制器。例如,当数据服务器访问流量小于2Mbps时,匹配上"<2M"阔值。 网络节点发送事件消息给根控制器。
[005引 6.当根控制器接收到事件消息后,查询"参数一服务功能实例嗦获得对应的服务 功能实例编号,然后从该服务功能实例对应的策略集合中选择特定的网络策略下发给对应 的本地控制器。比如收到数据服务器访问流量小于2Mbps触发的事件消息后,查表获得服 务功能编号为SF3,然后根据状态选择执行"self.SlowpathO"。
[0056] 下面是每个服务功能在当前状态下需要发到本地控制器的网络策略: (1)"用户认证"服务功能会阻止未通过认证的终端/主机发出的数据包,比如网段1 中IP为10. 20. 4. 5的PC机无法通过认证,该主机发出的数据包将被丢弃,其余终端/主机 发送的数据包都能通过。在当前状态下,"用户认证"业务功能将对运两种数据包分别执行 "self.化op"和"self.allow_policy0 "语句,从而下发W下策略: match(S;rcA(Mr=10. 20. 0.0/16\(SrcAcMr:10. 20. 4.5)) [fwd(l)] ;# 将源地址为 10. 20. 0. 0/16的S个网段(除了 10. 20. 4. 5主机)的数据包从Sl的端口 1发送出去。
[0057] (2)"流量管理"服务功能也会在不同状态下为网络设备下发不同的网络设备 策略。当前状态下发现访问数据服务器(10.20.9. 1)的流量过大,因此只允许网段1 (10. 20. 4. 0/24)或网段3 (10. 20. 6. 0/24)的主机/终端访问数据服务器,因此当前状态 下,"流量管理"服务功能对源地址是网段2的数据包执行"化Stpath0",对源地址是网段 1或3的数据包执行"slowpath0",从而下发W下策略: match(switch=Sl)fematch(SrcAddr=IO.20.4. 0/24|SrcAddr=IO.20.6.0/24) [fwd(l)]#源地址是网段1和网段3的主机可W通过SI的端口 1发送至数据服务器 match(switch=S2)&match(S;rcA(Mr=10.20.4.0/24|S;rcA(Mr=10.20.6.0/24)[fVd(5)] #源地址是网段1和网段3的主机可W通过S2的端口 5发送至数据服务器。
[005引(3)"负载均衡"服务功能会查找当前状态下延时最小的服务器,并将访问服务器 的云实验室终端连接到运个延时最小的服务器上。假如目前状态下服务器D拥有最小延时 100ms,策略将把云实验室终端的流量都连接到服务器D上。在当前状态下,"负载均衡"服 务功能将对普通数据包执行"self.serverD_policy0 "语句,从而下发W下策略: match值StAd化=10. 20. 7. 0/24)[fwd(4) ]# 将目标地址为 10. 20. 7. 0/24 的数据包从S2 的端口 4发送出去,到服务器D。
[0059] (4)"流量审计"服务功能在Sl上执行数据包审计工作,因此下发P3策略: match(Switch=Sl) &match(DstAcMr=IO. 20. 9. 1 &SrcAcMr=IO. 20. 0. 0/16) [fwd(f5)] 下面我们汇总一下=个服务功能下发给两个网络节点的网络策略: Auth(Sl):match(SrcAddr=10. 20. 0. 0/16\(SrcAddr: 10. 20. 4. 5)) [fwd(l)] TM(Sl):match(SrcAd化=10. 20. 4. 0/24ISrcAd化=10. 20. 6. 0/24)[fwd(1)] TA(Sl):match值StAddr=IO. 20. 9. 1 &SrcAddr=IO. 20. 0. 0/16)[fwd妨] TM(S2):match(SrcAd化=10. 20. 4. 0/24ISrcAd化=10. 20. 6. 0/24)[fwd巧)] LB(S2):match值StAcMr=IO. 20. 7. 0/24)[fwd(4)] 说明:当执行Auth(Sl)〉〉TM(Sl)时,"〉〉"前一个服务功能的动作[fwd(l)]将改为[fwdOl(Sl))]操作。
[0060] 第屯步,本地控制器对同一网络节点上来自不同服务功能实例链的实例进行组 合,组合类型有:无冲突,强冲突,弱冲突;组合方式有:串行,分类并行,复制并行,合并,排 他; 1.本地控制器根据参与组合的服务功能的条件和动作来判断策略组合的类型。无冲 突组合类型:参与组合的服务功能条件无交集,或者条件有交集且动作一样。强冲突组合类 型:参与组合的服务功能条件有交集,且至少一方的动作为丢包。弱冲突组合类型:参与组 合的服务功能条件有交集,且动作均为不同目的的转发。
[0061] (1)网络节点Sl上的来自S条服务链的"用户认证"服务功能条件有交集,动作一 致,属于无冲突类型。"用户认证"服务功能和"流量管理"服务功能条件有交集,交集部分 动作为丢包或转发,属于强冲突类型。"用户认证"服务功能和"流量审计"服务功能条件有 交集,交集部分转发动作不一致,属于弱冲突类型。"流量管理"服务功能和
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1