[发明专利]适用于SEND协议的DAD过程恶意NA报文抑制方法有效
申请号: | 201810587503.1 | 申请日: | 2018-06-06 |
公开(公告)号: | CN108848087B | 公开(公告)日: | 2020-11-27 |
发明(设计)人: | 宋广佳;陈滨;安仲立 | 申请(专利权)人: | 浙江农林大学暨阳学院 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 绍兴市知衡专利代理事务所(普通合伙) 33277 | 代理人: | 张媛 |
地址: | 311800 浙江省*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 适用于 send 协议 dad 过程 恶意 na 报文 抑制 方法 | ||
1.一种适用于SEND协议的DAD过程恶意NA报文抑制方法,其特征在于:包括控制器、交换机、主机;设计三种报文,MSDAD-Request报文、MSDAD-Reply应答报文和MSDAD-Feedback报文;控制器内增加反馈模块,反馈模块中包含3个表,监听表、查询表、反馈表;控制器向交换机下发流表,对DAD过程中的NS和NA报文监听,同时控制器接收MSDAD-Request报文并发送MSDAD-Reply报文给主机;主机进行地址真伪计算,并发送反馈报文MSDAD-Feedback给交换机,交换机发送消息至控制器;
所述的三种报文,其ICMPv6协议Type字段值为200,并采用Option结构格式,分别称之为FDAD Request Option,FDAD Reply Option和FDAD Feedback Option,具体描述如下:
FDAD Request Option包含的字段按顺序依次为:Qtype字段,长度为8比特,表示FDAD消息类型,默认值为0;QLen字段,长度为8比特,表示选项总长度,以字节为单位;Reserved字段,长度为16比特,保留字段,默认值为0;MAC字段,长度48比特,表示要查询的MAC地址;Pad字段,长度为16比特,用于填充,即使得选项长度是4字节的整数倍;
FDAD Reply Option包含的字段按顺序依次为:Qtype字段,长度为8比特,表示FDAD消息类型,默认值为1;QLen字段,长度为8比特,表示选项总长度,以字节为单位;Reserved 字段,长度为16比特,保留字段,默认值为0;MAC字段,长度48比特,表示之前FDAD Request报文查询的MAC地址;Pad字段,长度为16 比特,用于填充,即使得选项长度是4字节的整数倍;Datapath_Id字段,长度为64比特,表示拥有该MAC地址的交换机的Id;Port_No.字段,长度为32比特,表示MAC地址对应的端口号;Create_time字段,长度为64比特,表示交换机首次记录到该MAC地址的时间;
FDAD Feedback Option包含的字段按顺序依次为:Qtype字段,长度为8比特,表示FDAD消息类型,默认值为2;QLen字段,长度为8比特,表示选项总长度,以字节为单位;Reserved字段,长度为16比特,保留字段,默认值为0;MAC字段,长度48比特,表示要反馈的MAC地址;Pad字段,长度为16比特,用于填充,即使得选项长度是4字节的整数倍;Datapath_Id字段,长度为64比特,表示拥有该MAC地址的交换机的Id;Port_No.字段,长度为32比特,表示MAC地址对应的端口号;
所述的监听表,其表头字段按顺序依次为:NS.Dpid、NS.Port、NS.MAC、NS.Tgt、NS.Ts、NS.Nonce、NA.Dpid、NA.Port、NA.MAC;NS.Dpid字段记录NS报文所属交换机的Id;NS.Port字段记录NS报文是从哪个端口进入到交换机的;NS.MAC则记录NS报文中源主机MAC地址;NS.Tgt字段记录该NS报文请求的目标IPv6地址;NS.Ts字段记录NS报文中的时间戳;NS.Nonce字段记录NS报文中的随机数;NA.Dpid字段记录应答NS报文的NA报文所属的交换机的Id;NA.Port字段记录应答NS报文的NA报文是从哪个端口进入到交换机的;NA.MAC字段记录应答NS报文的NA报文的源主机的MAC地址;
所述的查询表,其查询表表头字段按顺序依次为:NS.Dpid、NS.Port、NS.MAC、NA.Dpid、NA.Port、NA.MAC、NA.Flag; NS.Dpid字段记录NS报文所属交换机的Id;NS.Port字段记录NS报文是从哪个端口进入到交换机的;NS.MAC则记录NS报文中源主机MAC地址;NA.Dpid字段记录应答NS报文的NA报文所属的交换机的Id;NA.Port字段记录应答NS报文的NA报文是从哪个端口进入到交换机的;NA.MAC字段记录应答NS报文的NA报文的源主机的MAC地址;NA.Flag为标志位字段,值为T或者F;
所述的反馈表,其表头字段按顺序依次为:NS.Dpid、NS.Port、NS.MAC、NA.Dpid、NA.Port、NA.MAC; NS.Dpid字段记录NS报文所属交换机的Id;NS.Port字段记录NS报文是从哪个端口进入到交换机的;NS.MAC则记录NS报文中源主机MAC地址;NA.Dpid字段记录应答NS报文的NA报文所属的交换机的Id;NA.Port字段记录应答NS报文的NA报文是从哪个端口进入到交换机的;NA.MAC字段记录应答NS报文的NA报文的源主机的MAC地址;
同时,每个NS以及与之对应的多个NA被视为整体,定义为Entry;
所述的控制器,对各种报文的处理方法如下:
NS报文:如果监听表中不存在Entry’满足Entry’.NS’.Tgt==NS.Tgt,则在监听表中增加一个新的条目,其中NS.Dpid、NS.Port提取自Packet_In报文中的Dpid、In_Port字段,NS.MAC、NS.Tgt、NS.Ts、NS.Nonce提取自Packet_In报文的携带的NS报文的SrcMAC、Tgt、Timestamp、Nonce字段,否则丢弃该NS;
NA报文:如果监听表中存在一个Entry’满足下面3个条件,则在监听表该Entry中添加一个与NS对应的NA,其中NA.Dpid、NA.Port提取自Packet_In报文中的Dpid、In_Port字段,NA.MAC提取自Packet_In报文的携带的NA报文的SrcMAC字段;否则丢弃该NA;
条件1:Entry’.NS.Tgt==NA.Tgt;
条件2:Entry’.NS的Nonce与Timestamp与NA的Nonce与Timestamp选项相关联,即:NA.Nonce==Entry’.NS.Nonce,并且NA.Timestamp-Entry’.NS.Timestamp=3;
条件3:该NA和Entry’中的所有NA都不重复;
MSDAD-Request报文:如果监听表存在条目Entry’满足下述条件1-4,将该条目信息增加至查询表,表示允许查询,同时进行MAC查询算法;如果查询成功,则设置条目的标志位NA.Flag为T,否则设置标志位NA.Flag为F;条件不满足则丢弃该报文;
条件1:Entry’.NS.Dpid==Packet_In.Dpid;
条件2:Entry’.NS.Port==Packet_In.InPort;
条件3:Entry’.NS.MAC==MSDAD-Request.SrcMAC;
条件4:Entry’中存在一个NA满足:Entry’.NA.MAC==MSDAD-Request.Option.MAC;
MSDAD-Feedback报文:如果查询表中存在条目Entry’满足条件1-3,则更新反馈表,同时删除监听表和查询表中的相关条目;如果不满足条件1-3,则丢弃该报文;
条件1:Entry’.NS.Dpid==Packetin.Dpid;
条件2:Entry’.NS.Port==Packetin.InPort;
条件3:Entry’中存在一个NA满足:
Entry’.NA.Dpid==MSDAD.Feedback.Option.Datapath_Id;
Entry’.NA.Dpid==MSDAD.Feedback.Option.Port_No.;
Entry’.NA.MAC==MSDAD.Feedback.Option.MAC;
Entry’.NA.Flag==T;
所述的主机的重复地址检测过程如下:
步骤一,host生成新的加密地址CGAnew后,首先进行NS广播进行重复地址检测,并记录重复地址检测DAD开始的时间T1;
步骤二,在规定的3秒时间内,如果收到对NS的应答NA,则记录当前时间T2;检查Option字段中的MAC地址和NA帧头部的MAC地址是否符合以及MAC地址是否在黑名单那中,如果满足其中任何一个条件,则将该NA丢弃重复步骤二;都不满足,则进行步骤三;
步骤三,发送MSDAD-Request向控制器检索应答NA来源的OVS身份ID、端口号Port No.和MAC地址产生时间;
步骤四,接收MSDAD-Reply报文,如果OVS身份ID和端口号Port No.在host的黑名单中,则丢弃该NA,否则进行步骤五;
步骤五,判断MAC是否为T2-T1内新增;如果是则进行步骤六,否则进行步骤七;
步骤六,将交换机Dpid和端口号Port No.加入黑名单,标记为疑似,然后进行CGA验证,如果CGA验证通过,将交换Dpid和Port No.从黑名单中移除,同时DAD失败,即CGAx冲突;
步骤七,进行CGA验证,如果验证失败,则执行步骤八,否则执行步骤九;
步骤八,在黑名单中检索是否有该NA的源MAC地址字段所对应的条目,如果没有则将MAC、Switch_ID、Port_ID加入黑名单,标记设置为T,如果有,则将其标志更新为T,发送MSDAD-Feedback,向OC反馈MAC、交换机Dpid和Port_No.,回到步骤二;
步骤九,如果CGA验证通过,DAD失败,CGAx冲突,并且如果黑名单中有NA中的MAC地址对应的条目,则移除;
检测过程中用到的黑名单,其中Idle_time字段用于记录条目的空闲时间,每秒钟Idle_time数值加1,如果3分钟内该条目没有被匹配过,则将条目从黑名单中移除,条目每次被匹配到,则将Idle_time字段清零;
黑名单表头字段按顺序依次为:Switch_ID、Port No.、MAC地址、Idle time、Flag;Switch ID字段记录交换机的ID;Port No.则记录交换机的端口号;MAC地址字段记录一个MAC地址;Idle time字段记录条目的空闲时间每秒钟Idle_time数值加1,如果3分钟内该条目没有被匹配过,则将条目从黑名单中移除,条目每次被匹配到,则将Idle_time字段清零;Flag字段为标志位,值为T或者F。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江农林大学暨阳学院,未经浙江农林大学暨阳学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810587503.1/1.html,转载请声明来源钻瓜专利网。