本发明专利技术公开了一种基于软件定义网络的域间链路快速故障恢复方法,该方法在域间链路出现故障的时候,根据存储在OpenFlow交换机本地的邻接节点表选择绕过故障链路的路径而不是由控制器根据最新的拓扑来选择一条新路径。本发明专利技术与由控制器介入的链路故障恢复方法相比,有恢复速度快的优点,能减少丢包率,其实现方法简便,灵活性好,具有可扩展性。
【技术实现步骤摘要】
【专利摘要】本专利技术公开了,该方法在域间链路出现故障的时候,根据存储在OpenFlow交换机本地的邻接节点表选择绕过故障链路的路径而不是由控制器根据最新的拓扑来选择一条新路径。本专利技术与由控制器介入的链路故障恢复方法相比,有恢复速度快的优点,能减少丢包率,其实现方法简便,灵活性好,具有可扩展性。【专利说明】
本专利技术涉及计算机网络
,尤其涉及。
技术介绍
经过数十年的发展之后,互联网无论是在商业方面还是在通信领域都取得了十分巨大的成功,也为人类的生活与生产方式带来了自工业革命以来最有影响力的变革。然而规模巨大的网络同时也限制了它的发展,导致了网络体系结构的“僵化”。软件定义网络(SDN)通过把路由器中的控制面与数据面分离开来并把控制面放到中心控制器上实现网络的可编程性,控制器根据所承载网络业务的路由策略来决定如何转发数据包并把转发规则通过控制器与转发设备(OpenFlow交换机)间的通信标准(如OpenFlow协议)写入转发设备的流表中。分布式SDN控制器改进了单一 SDN控制器控制底层转发设备的可伸缩性,将整个网络分割成多个域,每个域的转发设备由各自的控制器来控制,域间物理链路状态存储到一致的网络视图(Network View,由各个控制器通过一致性分布式算法来维护,如分布式哈希表等)上。当域间的链路发生故障的时候,发往故障链路的数据包都将丢弃。链路的恢复需要控制器的参与,控制器收到拓扑变化的消息后,首先要把故障链路状态存储至网络视图中,然后重新为发往故障链路的数据包计算一条路径并写入相应的转发设备,以确保发往故障链路的数据包从新的路径转发而不被丢弃。这种域间故障链路恢复的方法需要控制器的参与,因此速度比较慢,会使更多的数据包被丢弃,而且控制器的参与会占用控制器与交换设备之间的带宽。
技术实现思路
本专利技术的目的在于针对现有技术的不足,提供,该方法效率高,灵活性好,实现简便。本专利技术的目的是通过以下技术方案来实现的:,包括以下步骤: 步骤1:初始网络中的所有的OpenFlow交换机(OFS)都和控制器相连,每个OFS有全网唯一的标识符,由同一个控制器管理的所有OFS组成一个域,域由控制器的IP地址标识。OFS在与控制器建立连接时,控制器会把域间OFS选择策略加载到0FS。步骤2:各OFS向邻接OFS广播邻接消息(NDM),该邻接消息封装了消息类型、域ID、物理节点ID、端口 ID和端口 IP。OFS收到从邻接节点发来的NDM后将邻居OFS信息加入到自己维护的邻接节点表中。邻接节点表由邻接节点域ID、邻接节点ID、邻接节点端口ID、邻接节点端口 IP、与邻接节点相连的本OFS的端口 ID和定时器项组成。步骤3:每个OFS把用OpenFlow消息封装的节点信息消息(NM)发送给控制器。该节点信息消息封装了消息类型、OFS信息和邻接OFS信息。控制器收到各OFS发来的封装了 NM的OpenFlow消息后,就获得了本域的物理拓扑信息以及与本域相连的其他域的边界OFS信息(如果一个域的OFS与其他域的OFS相连,则该OFS为边界0FS),控制器将本域的物理拓扑存储到本地,把域间的物理拓扑存储至网络视图,每个控制器根据网络视图获取全网域间拓扑。步骤4:维护域间链路,快速恢复故障链路。该步骤通过以下子步骤来实现: (4.DOFS周期性地向邻接OFS广播NDM,0FS收到NDM后,提取出物理节点ID字段,并与邻接节点表中的邻接节点ID项匹配,如果匹配成功,就重置命中表项的定时器;如果匹配不成功,表示有新的OFS与之相连,则更新邻接节点表,为刚连入的OFS增加一个表项,并由OFS发送一个封装了 NIM的OpenFlow消息给控制器,以告知新节点的加入以及网络拓扑的变化。(4.2)每个OFS定期检查邻接节点表中的定时器项,如果某个表项的定时器超过预先设定的最大值,表示此OFS在一定时间内没有收到表项中OFS发来的NDM,表项中的OFS为不可达。(4.3)如果OFS检测到某个邻接OFS不可达,说明两个OFS之间的链路发生了故障。OFS从邻接节点表中找出邻接节点域ID为与不可达OFS域ID相同的候选表项,如果有多个候选表项,根据域间OFS选择策略从多个候选表项中选择一个最佳表项,转到步骤(4.4);若没有找到,转到步骤(4.5)。(4.4) OFS根据最佳表项修改流表:先找出流表项中数据包发出端口为与不可达OFS相连的端口的流表项,再修改这些流表项把发出端口修改为最佳表项中的与邻接节点相连的本OpenFlow交换机的端口 ID,从而把发往不可达OFS的流量定向到与不可达OFS在同一个域中的边界OFS。(4.5) OFS采用洪泛法发送寻找路径消息(FPM)以找到此OFS到不可达OFS所在域的路径。该寻找路径消息封装了消息类型、不可达OFS的域D_ID和源OFS的域S_ID和路径。FPM每到达一个OFS的时候需要把OFS的ID和收到FPM的端口 ID写入路径,以方便FPM回复消息的发送,每从OFS的端口发送前,需要把发出端口 ID写入到路径中,以方便随后流表更新消息的发送。OFS首先向除了与不可达OFS相连的端口外的其他端口发送FPM,当邻接OFS收到FPM后,查找邻接节点表以确定邻接节点表中是否存在邻接节点域ID为D_ID的0FS,如果找到,根据FPM中的路径发送FPM回复消息;如果没有找到,OFS把FPM从除了收到FPM端口之外的端口发送出去直到找到通往域D_ID的一条路径。当源OFS收到FPM回复消息后,提取出FPM回复消息中的路径,若OFS收到多条FPM消息,则从所有路径中选择出跳数最少的路径为最佳路径,如果有多条跳数相同且最少的路径,则随机从多条跳数最少的路径中选择一条为最佳路径。(4.6) OpenFlow交换机找到发往不可达OpenFlow交换机的最佳路径后,往最佳路径发送流表更新消息(FUM),以往最佳路径上的OpenFlow交换机增加流表项使发往不可达OpenFlow交换机的数据包往最佳路径发送;该流表更新消息封装了消息类型、不可达OpenFlow交换机的域ID、路径和匹配域;路径为从寻找路径回复消息中提取出的最佳路径,匹配域为在OpenFlow交换机流表中找出的数据包发出端口为与不可达OpenFlow交换机相连的端口的流表项中的匹配域,匹配域有一个或多个;0penFlOW交换机根据FUM中的路径来发送流表更新消息,每到达一个OpenFlow交换机的时候,为OpenFlow交换机增加流表项,如果FUM中有多个匹配域,则增加多个流表项,流表项的匹配域为流表更新消息中的匹配域,从FUM的路径中提取下一跳的发出端口并写入流表项的行为部分,并把该流表项的优先级设为最高。这样就为发往不可达OpenFlow交换机所在的域的数据包建立了一条新的路径。(4.7)0FS向控制器发送封装了 NM的OpenFlow消息报告此OFS与不可达OFS之间的链路故障,控制器更新拓扑,从而实现域间链路的故障恢复。本专利技术的有益效果是:本专利技术提出了。由于新路由的计算不需要通过控制器,所以链路故障能快速恢复,从而减少数据包丢弃的数量。【专利附图】【附图说明】图1是网络拓扑结构示意图。图2是基于软件定义网络的域间链路快速本文档来自技高网...
【技术保护点】
一种基于软件定义网络的域间链路快速故障恢复方法,其特征在于,包括以下步骤:步骤1:初始网络中的所有的OpenFlow交换机都和控制器相连,每个OpenFlow交换机有全网唯一的标识符,由同一个控制器管理的所有OpenFlow交换机组成一个域,域由控制器的IP地址标识;OpenFlow交换机在与控制器建立连接时,控制器会把域间OpenFlow交换机选择策略加载到OpenFlow交换机;步骤2:各OpenFlow交换机向邻接OpenFlow交换机广播邻接消息,该邻接消息封装了消息类型、域ID、物理节点ID、端口ID和端口IP;OpenFlow交换机收到从邻接节点发来的邻接消息后将邻居OpenFlow交换机的信息加入到自己维护的邻接节点表中;邻接节点表由邻接节点域ID、邻接节点ID、邻接节点端口ID、邻接节点端口IP、与邻接节点相连的本OpenFlow交换机的端口ID和定时器项组成;步骤3:每个OpenFlow交换机把用OpenFlow消息封装的节点信息消息发送给控制器;该节点信息消息由消息类型、OpenFlow交换机信息和邻接OpenFlow交换机信息组成;控制器收到各OpenFlow交换机发来的封装了节点信息消息的OpenFlow消息后,就获得了本域的物理拓扑信息以及与本域相连的其他域的边界OpenFlow交换机信息(如果一个域的OpenFlow交换机与其他域的OpenFlow交换机相连,则该OpenFlow交换机为边界OpenFlow交换机),控制器将本域的物理拓扑存储到本地,把域间的物理拓扑存储至网络视图,每个控制器根据网络视图获取全网域间拓扑;步骤4:维护域间链路,快速恢复故障链路;该步骤通过以下子步骤来实现:(4.1)OpenFlow交换机周期性地向邻接OpenFlow交换机广播邻接消息,OpenFlow交换机收到邻接消息后,提取出物理节点ID字段,并与邻接节点表中的邻接节点ID项匹配,如果匹配成功,就重置命中表项的定时器;如果匹配不成功,表示有新的OpenFlow交换机与之相连,则更新邻接节点表,为刚连入的OpenFlow交换机增加一个表项,并由OpenFlow交换机发送一个封装了节点信息消息的OpenFlow消息给控制器,以告知新节点的加入以及网络拓扑的变化;(4.2)每个OpenFlow交换机定期检查邻接节点表中的定时器项,如果某个表项的定时器超过预先设定的最大值,表示此OpenFlow交换机在一定时间内没有收到表项中OpenFlow交换机发来的邻接消息,表项中的OpenFlow交换机为不可达;(4.3)如果OpenFlow交换机检测到某个邻接OpenFlow交换机不可达,说明两个OpenFlow交换机之间的链路发生了故障;OpenFlow交换机从邻接节点表中找出邻接节点域ID为与不可达OpenFlow交换机域ID相同的候选表项,如果有多个候选表项,根据域间OpenFlow交换机选择策略从多个候选表项中选择一个最佳表项,转到步骤(4.4);若没有找到,转到步骤(4.5);(4.4)OpenFlow交换机根据最佳表项修改流表:先找出流表项中数据包发出端口为与不可达OpenFlow交换机相连的端口的流表项,再修改这些流表项把发出端口修改为最佳表项中的与邻接节点相连的本OpenFlow交换机的端口ID,从而把发往不可达OpenFlow交换机的流量定向到与不可达OpenFlow交换机在同一个域中的边界OpenFlow交换机;(4.5)OpenFlow交换机采用洪泛法发送寻找路径消息以找到此OpenFlow交换机到不可达OpenFlow交换机所在域的路径;该寻找路径消息封装了消息类型、不可达OpenFlow交换机的域D_ID和源OpenFlow交换机的域S_ID和路径;寻找路径消息每到达一个OpenFlow交换机的时候需要把OpenFlow交换机的ID和收到寻找路径消息的端口ID写入路径,以方便寻找路径回复消息的发送,每从OpenFlow交换机的端口发送前,需要把发出端口ID写入到路径中,以方便随后流表更新消息的发送;OpenFlow交换机首先向除了与不可达OpenFlow交换机相连的端口外的其他端口发送寻找路径消息,当邻接OpenFlow交换机收到寻找路径消息后,查找邻接节点表以确定邻接节点表中是否存在邻接节点域ID为D_ID的OpenFlow交换机;如果找到,根据寻找路径消息中的路径发送寻找路径回复消息;如果没有找到,OpenFlow交换机把寻找路径消息从除了收到寻找路径消息端口之外的端口发送出去直到找到通往域D_ID的一条...
【技术特征摘要】
【专利技术属性】
技术研发人员:吴春明,李徐艳,周伯阳,姜明,
申请(专利权)人:浙江大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。