一种SDN交换机流表控制方法及装置转让专利
申请号 : CN202210188953.X
文献号 : CN114257461B
文献日 : 2022-05-13
发明人 : 雷雪萍 , 曾麟钧 , 黄亮 , 黄薪楠 , 赵雨欣
申请人 : 四川省商投信息技术有限责任公司
摘要 :
权利要求 :
1.一种SDN交换机流表控制方法,其特征在于所述方法应用于SDN网络,所述SDN网络包括:至少一个控制器,至少两个交换机,其中包括第一交换机使用第一类存储器存储第一流表,所述第一流表最大表项数量为N,所述第一类存储器为三态内容寻址存储器;第二交换机使用第二类存储器存储第二流表,所述第二流表表项数量无限制,所述第二类存储器为普通存储器;所述第一流表和第二流表都包括存活时间和数据流量字段;所述方法包括如下步骤:
步骤S100,所述控制器获取第一交换机的第一流表,并获取所述第一流表的当前流表项数量,如果当前流表项数量大于N*a%,则进行下一步,否则间隔时间T后继续运行步骤S100,其中a%为预设百分比;
步骤S102,所述控制器对所述第一流表按存活时间由大至小排序,取排名前a1项的集合记为A1;对所述第一流表按数据流量由小至大排序,取排名前b1项的集合记为B1;对A1和B1取交集,记交集为S1;
步骤S103,所述控制器获取第二交换机的第二流表,并对所述第二流表按存活时间由小至大排序,取排名前a2项的集合记为A2;对所述第二流表按数据流量由大至小排序,取排名前b2项的集合记为B2;对A2和B2取交集,记交集为S2;
步骤S104,将所述集合S1调整至第二流表,将所述S2中至多为S1项数一半数量的项调整至第一流表;返回步骤S100。
2.如权利要求1所述的SDN交换机流表控制方法,其特征在于:对间隔时间T进行动态调整,取最近Nt次的流表项数量,如果最近Nt次的流表项数量依次升高,则设T=T‑t,其中t为调整时间。
3.如权利要求1所述的SDN交换机流表控制方法,其特征在于:当S1为空时,调整a1=a1+k1,调整b1=b1+p1,其中k1、p1为预设步长,然后重复步骤S102,直至S1中数据量大于一预设值。
4.如权利要求1所述的SDN交换机流表控制方法,其特征在于:当S2为空时,调整a2=a2+k2,调整b2=b2+p2,其中k2、p2为预设步长,然后重复步骤S102,直至S2中数据量大于一预设值。
5.如权利要求1所述的SDN交换机流表控制方法,其特征在于:如果S2中的项目数少于或等于S1的一半,则将S2中的全部项调整至第一流表。
6.一种SDN交换机流表控制装置,其特征在于所述装置应用于SDN网络,所述SDN网络包括:至少一个控制器,至少两个交换机,其中包括第一交换机使用第一类存储器存储第一流表,所述第一流表最大表项数量为N,所述第一类存储器为三态内容寻址存储器;第二交换机使用第二类存储器存储第二流表,所述第二流表表项数量无限制,所述第二类存储器为普通存储器;所述第一流表和第二流表都包括存活时间和数据流量字段;所述装置包括:重复检测模块,用于控制所述控制器获取第一交换机的第一流表,并获取所述第一流表的当前流表项数量,如果当前流表项数量大于N*a%,则依次运行后续模块,否则间隔时间T后继续运行本模块,其中a%为预设百分比;
第一集合获取模块,用于控制所述控制器对所述第一流表按存活时间由大至小排序,取排名前a1项的集合记为A1;对所述第一流表按数据流量由小至大排序,取排名前b1项的集合记为B1;对A1和B1取交集,记交集为S1;
第二集合获取模块,用于控制所述控制器获取第二交换机的第二流表,并对所述第二流表按存活时间由小至大排序,取排名前a2项的集合记为A2;对所述第二流表按数据流量由大至小排序,取排名前b2项的集合记为B2;对A2和B2取交集,记交集为S2;
调整模块,用于将所述集合S1调整至第二流表,将所述S2中至多为S1项数一半数量的项调整至第一流表;返回重复检测模块继续运行。
7.如权利要求6所述的SDN交换机流表控制装置,其特征在于:还包括时间调整模块,用于对间隔时间T进行动态调整,取最近Nt次的流表项数量,如果最近Nt次的流表项数量依次升高,则设T=T‑t,其中t为调整时间。
8.如权利要求6所述的SDN交换机流表控制装置,其特征在于:还包括第了步长调整模块,用于当S1为空时,调整a1=a1+k1,调整b1=b1+p1,其中k1、p1为预设步长,然后重复步运行本模块,直至S1中数据量大于一预设值。
9.如权利要求6所述的SDN交换机流表控制装置,其特征在于:还包括第二步长调整模块,用于当S2为空时,调整a2=a2+k2,调整b2=b2+p2,其中k2、p2为预设步长,然后重复步运行本模块,直至S2中数据量大于一预设值。
10.如权利要求6所述的SDN交换机流表控制装置,其特征在于:还包括第二流表调整模块,用于如果S2中的项目数少于或等于S1的一半,则将S2中的全部项调整至第一流表。
说明书 :
一种SDN交换机流表控制方法及装置
技术领域
背景技术
备,它以开放软件的模式替代传统基于嵌入式且不够灵活的控制平面。
通过OpenFlow协议来管理交换机,交换机拥有若干个流表(FlowTable),它只按照流表进行
转发,流表的生成、维护和下发由外置的控制器来实现。
内容寻址存储器通常只能存储数千条的流表项。
发送数据,使得攻击者的垃圾流表项长期存活,从而占用流表项;如SDN交换机中的流表老
化时间设置为60S,即当某一表项60S不活动的话则将其删除,从而释放表空间,但黑客控制
a.b.c.d的主机,每59s就发送一次数据,那么这个表项则一直不会被清除,攻击者可以通过
网络中的肉鸡(被黑客控制的主机)发起攻击,使用足够多的机主采用类似的方法进行攻击
时,流表就会被攻击者长期占据,从而造成流表饱和,网络无法正常运行。此类攻击非常难
防范,目前通常采用定时强制清理表项的策略,但很显然清理后攻击者很容易卷土重来,并
且此处理方法容易造成误杀,如网络中可能会有很多设备或服务采用心跳包保持连接,如
某物联网设备每30S向服务器发送一次心跳数据,也会造成类似的现象,如果使用强制清理
表现的策略则容易对此类服务造成破坏。
发明内容
机使用第一类存储器存储第一流表,所述第一流表最大表项数量为N;第二交换机使用第二
类存储器存储第二流表,所述第二流表表项数量无限制;所述第一流表和第二流表都包括
存活时间和数据流量字段;所述方法包括如下步骤:步骤S100,所述控制器获取第一交换机
的第一流表,并获取所述第一流表的当前流表项数量,如果当前流表项数量大于N*a%,则进
行下一步,否则间隔时间T后继续运行步骤S100,其中a%为预设百分比;步骤S102,所述控制
器对所述第一流表按存活时间由大至小排序,取排名前a1项的集合记为A1;对所述第一流
表按数据流量由小至大排序,取排名前b1项的集合记为B1;对A1和B1取交集,记交集为S1;
步骤S103,所述控制器获取第二交换机的第二流表,并对所述第二流表按存活时间由小至
大排序,取排名前a2项的集合记为A2;对所述第二流表按数据流量由大至小排序,取排名前
b2项的集合记为B2;对A2和B2取交集,记交集为S2;步骤S104,将所述集合S1调整至第二流
表,将所述S2中至多为S1项数一半数量的项调整至第一流表;返回步骤S100。
机使用第一类存储器存储第一流表,所述第一流表最大表项数量为N;第二交换机使用第二
类存储器存储第二流表,所述第二流表表项数量无限制;所述第一流表和第二流表都包括
存活时间和数据流量字段;所述装置包括:重复检测模块,用于控制所述控制器获取第一交
换机的第一流表,并获取所述第一流表的当前流表项数量,如果当前流表项数量大于N*a%,
则依次运行后续模块,否则间隔时间T后继续运行本模块,其中a%为预设百分比;第一集合
获取模块,用于控制所述控制器对所述第一流表按存活时间由大至小排序,取排名前a1项
的集合记为A1;对所述第一流表按数据流量由小至大排序,取排名前b1项的集合记为B1;对
A1和B1取交集,记交集为S1;第一集合获取模块,用于控制所述控制器获取第二交换机的第
二流表,并对所述第二流表按存活时间由小至大排序,取排名前a2项的集合记为A2;对所述
第二流表按数据流量由大至小排序,取排名前b2项的集合记为B2;对A2和B2取交集,记交集
为S2;调整模块,用于将所述集合S1调整至第二流表,将所述S2中至多为S1项数一半数量的
项调整至第一流表;返回重复检测模块继续运行。
且流量低的可疑表项调整至低速交换机,在防止高速交换机流表饱和的同时也为可疑表项
提供服务,防止误杀的情况出现。
附图说明
具体实施方式
于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的
前提下所获得的所有其他实施例,都属于本申请保护的范围
于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并
且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭
露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应
当理解为本申请公开的内容不充分。
同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显
式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相
结合。
该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“ 包括”、“ 包
含”、“ 具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模
块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包
括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤
或单元。本申请所涉及的“ 连接”、“ 相连”、“ 耦接”等类似的词语并非限定于物理的或者
机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“ 多
个”是指两个或两个以上。“ 和/或”描述关联对象的关联关系,表示可以存在三种关系,例
如,“ A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“ /”一般
表示前后关联对象是一种“ 或”的关系。本申请所涉及的术语“ 第一”、“ 第二”、“ 第三”等
仅仅是区别类似的对象,不代表针对对象的特定排序。
第一类存储器存储第一流表,所述第一流表最大表项数量为N;第二交换机使用第二类存储
器存储第二流表,所述第二流表表项无限制;所述第一流表和第二流表都包括存活时间和
数据流量字段。
存储器成本高,通常其可用空间较小,因此其流表项有限制;示例性地,第一交换机使用10M
的三态内容寻址存储器,其可容纳的最多流表项为4000条。
存储器可以存储上千万条的流表项,对于目前的所有应用场景都可以视为能存储网络中全
部的流表项,因此第二流表的表项数不做限制。
骤S100,其中a%为预设百分比;
用自定义格式的消息,只要能获取到交换机的流表项即可,本发明不做具体限定。
流表的利用率越高,但流表饱和的风险也越高;根据发明人的实验数据,优选地,a%取值为
90%能够较好地平衡流表的利用率和饱和风险。
敏,但也更消耗系统资源,T值越大,越节省资源,但也更可能出现饱和风险。
60s,t取5秒,当最近5次流表项数量依次为2900、3000、3100、3200、3300则表示流表项数量
在升高,则需要密切监控,在此后的周期中将T调整为55秒,以提高监测的灵敏度。
A1和B1取交集,记为S1;
aa2 50 500
aa3 80 70
aa4 100 600
aa5 200 9000
aa6 700 30
aa7 400 6000
aa8 20 800
aa9 150 20
aa10 90 40
aa7 400
aa1 300
aa5 200
aa9 150
aa4 100
aa10 90
aa3 80
aa2 50
aa8 20
aa9 20
aa6 30
aa10 40
aa3 70
aa2 500
aa4 600
aa8 800
aa7 6000
aa5 9000
取排名前b2项的集合记为B2;对A2和B2取交集,记为S2;
bb1 300 10
bb2 50 900
bb3 80 800
bb4 100 300
bb5 200 50
bb2 50
bb3 80
bb4 100
bb5 200
bb1 300
bb3 800
bb4 300
bb5 50
bb1 10
bb5,aa1,aa6}; S1项数为2,则一半的数量为1(如不能整除则去掉小数位),此时还应该将
S2中调整1个至第一流表,即需要将bb2调整至第一流表,调整完后第一流表为{aa2,aa3,
aa4,aa5,aa7,aa8,aa9,aa10,bb2},第二流表为{bb1,bb3,bb4,bb5,aa1,aa6}。
跳保持数据、网络设备定期上传的数据等,将此类数据调整至速度较慢的第二流表对网络
整体质量影响不大;S2中的项目为短时间突然爆发的数据,此类数据可能是之前误杀的,为
了不影响网络质量及时将该类数据调整至第一流表,以保证传输效率。
等于S1的一半,则可以将S2中的全部项调整至第一流表。
用第一类存储器存储第一流表,所述第一流表最大表项数量为N;第二交换机使用第二类存
储器存储第二流表,所述第二流表表项数量无限制;所述第一流表和第二流表都包括存活
时间和数据流量字段。
存储器成本高,通常其可用空间较小,因此其流表项有限制;示例性地,第一交换机使用10M
的三态内容寻址存储器,其可容纳的最多流表项为4000条。
存可以存储上千万条的流表项,对于目前的所有应用场景都可以视为能存储网络中全部的
流表项,因此第二流表的表项数不做限制。
时间T后继续运行本模块,其中a%为预设百分比。
用自定义格式的消息,只要能获取到交换机的流表项即可,本发明不做具体限定。
流表的利用率越高,但流表饱和的风险也越高;根据发明人的实验数据,优选地,a%取值为
90%能够较好地平衡流表的利用率和饱和风险。
敏,但也更消耗系统资源,T值越大,越节省资源,但也更可能出现饱和风险。
60s,t取5秒,当最近5次流表项数量依次为2900、3000、3100、3200、3300则表示流表项数量
在升高,则需要密切监控,在此后的周期中将T调整为55秒,以提高监测的灵敏度。
的集合记为B1;对A1和B1取交集,记交集为S1。
aa2 50 500
aa3 80 70
aa4 100 600
aa5 200 9000
aa6 700 30
aa7 400 6000
aa8 20 800
aa9 150 20
aa10 90 40
aa7 400
aa1 300
aa5 200
aa9 150
aa4 100
aa10 90
aa3 80
aa2 50
aa8 20
aa1 10
aa9 20
aa6 30
aa10 40
aa3 70
aa2 500
aa4 600
aa8 800
aa7 6000
aa5 9000
流量由大至小排序,取排名前b2项的集合记为B2;对A2和B2取交集,记交集为S2。
bb2 50 900
bb3 80 800
bb4 100 300
bb5 200 50
bb3 80
bb4 100
bb5 200
bb1 300
bb2 900
bb3 800
bb4 300
bb5 50
bb1 10
bb5,aa1,aa6}; S1项数为2,则一半的数量为1(如不能整除则去掉小数位),此时还应该将
S2中调整1个至第一流表,即需要将bb2调整至第一流表,调整完后第一流表为{aa2,aa3,
aa4,aa5,aa7,aa8,aa9,aa10,bb2},第二流表为{bb1,bb3,bb4,bb5,aa1,aa6}。
跳保持数据、网络设备定期上传的数据等,将此类数据调整至速度较慢的第二流表对网络
整体质量影响不大;S2中的项目为短时间突然爆发的数据,此类数据可能是之前误杀的,为
了不影响网络质量及时将该类数据调整至第一流表,以保证传输效率。
等于S1的一半,则可以将S2中的全部项调整至第一流表。
可以是可拆卸连接,或一体地连接;“ 相连”可以是直接相连,也可以通过中间媒介间接相
连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体
含义。
个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例
或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例
中以合适的方式结合。
等同替换、改进等,均应包含在本申请的保护范围之内。