CN108848087B - 适用于send协议的dad过程恶意na报文抑制方法 - Google Patents
适用于send协议的dad过程恶意na报文抑制方法 Download PDFInfo
- Publication number
- CN108848087B CN108848087B CN201810587503.1A CN201810587503A CN108848087B CN 108848087 B CN108848087 B CN 108848087B CN 201810587503 A CN201810587503 A CN 201810587503A CN 108848087 B CN108848087 B CN 108848087B
- Authority
- CN
- China
- Prior art keywords
- message
- entry
- field
- port
- mac
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及到一种适用于SEND协议的DAD过程恶意NA报文抑制方法,包括控制器、交换机、主机;新增MSDAD‑Request报文、MSDAD‑Reply应答报文和MSDAD‑Feedback报文;控制器增加包含监听表、查询表、反馈表的反馈模块;控制器向交换机下发流表,对DAD过程的NS和NA报文监听,接收MSDAD‑Request报文和MSDAD‑Reply应答报文;主机进行地址真伪计算,并发送反馈报文给交换机,交换机发送消息至控制器。本发明利用主机的计算能力将恶意节点的攻击行为反馈给控制器,控制器可以根据反馈结果对恶意攻击进行源头抑制,避免验证无意义的CGA参数验证而消耗主机CPU资源。
Description
技术领域
本发明涉及计算机技术领域,特别与一种适用于SEND协议的 DAD过程恶意NA报文抑制方法有关。
背景技术
为了防止地址欺骗,IETF(国际互联网工程任务组)提出了SEND 协议。SEND协议作为NDP(Neighbor Discovery Protocol,邻居发现协议)的增强机制,它使用加密地址生成(Cryptographically Generated Address,CGA),数字签名,时间戳等方法来保护NDP报文,并防止IP地址盗用。CGA是SEND特有的地址格式,产生方法为由子网前缀(Subnet Prefix)、公钥(Public Key)、碰撞次数(Collision Count)、Modifier(调节参数)经过多次hash运算找到合适的Modifier 值,然后再进行二次hash运算,然后取160位hash值的前64位,再结合Sec(Security Level)值与其他参数共同形成最终地址。
理论上,CGA可以有效地防止地址欺骗。因为hash函数具有单向性的特点,也就是说对于给定的y,找到一个x使得x满足hash(x)=y 在计算上是不可行的,同时还有RSA选项对消息进行保护。因此,在SEND协议中,恶意节点是无法通过伪造参数来盗用其他节点的地址。但由于CGA对于错误的参数经过验证后需要丢弃,由此恶意的节点可以发送大量含有错误CGA参数的NA来消耗目标节点的计算资源,从而形成DoS,因此如何防止恶意NA攻击,降低主机CPU 资源消耗是CGA面临的一大挑战。
因此,本发明人针对这一问题设计了一种适用于SEND协议的 DAD过程恶意NA报文抑制方法,本案由此产生。
发明内容
本发明的目的是提供一种适用于SEND协议的DAD过程恶意 NA报文抑制方法,对于恶意节点使用虚假的CGA参数构造的,而网络设备又无法分辨的NA应答,通过主机计算来进行验证,辨别真伪,从而实现恶意NA报文抑制,避免验证无意义的CGA参数验证而消耗主机CPU资源,称这种方法为MSDAD(DAD with Malicious neighbor advertisementSuppression)。
为实现上述目的,本发明采用的技术方案如下:
一种适用于SEND协议的DAD过程恶意NA报文抑制方法,包括控制器、交换机、主机;设计三种报文,MSDAD-Request报文、 MSDAD-Reply应答报文和MSDAD-Feedback报文;控制器内增加反馈模块,反馈模块中包含3个表,监听表、查询表、反馈表;控制器向交换机下发流表,对DAD过程中的NS和NA报文监听,同时接收MSDAD-Request报文和MSDAD-Reply应答报文;主机进行地址真伪计算,并发送反馈报文给交换机,交换机发送消息至控制器。
所述的三种报文,其ICMPv6协议Type字段值为200,并采用如表1所示的Option结构格式,Option中各字段含义见表2,
表1
表2
所述的监听表格式如表3、查询表格式如表4、反馈表格式如表 5:
表3
表4
表5
同时,每个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。
所述的控制器,当收到主机发送的MSDAD-Request报文后,控制器查询交换机,通过遍历交换机的各个流表,查找特定MAC的最早产生时间,所述查询算法如下:
所述的控制器,收到MSDAD-Feedback报文后,所述删除监听表和查询表中的相关条目采用如下方式:首先在查询表中检索与该NA有关的Entry,并将NA信息从该Entry中删除,如果删除该NA 后,与该NS对应的NA为0个,则删除该Entry;然后在监听表中检索与该NA有关的Entry,并将NA信息从该Entry中删除,如果删除该NA后,与该NS对应的NA为0个,则删除该Entry。
所述的主机的重复地址检测过程如下:
步骤一,host生成新的加密地址CGAnew后,首先进行NS广播进行重复地址检测,并记录重复地址检测DAD开始的时间T1;
步骤二,在规定的时间内(3秒),如果收到对NS的应答NA,则记录当前时间T2;检查Option字段中的MAC地址和NA帧头部的MAC地址是否符合以及MAC地址是否在黑名单那中,如果满足其中任何一个条件,则将该NA丢弃重复步骤二;都不满足,则进行步骤三;
步骤三,发送MSDAD-Request向控制器检索应答NA来源的 OVS身份ID、端口号PortNo.和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地址对应的条目,则移除;
检测过程中用到的黑名单格式见表6,其中Idle_time字段用于记录条目的空闲时间,每秒钟Idle_time数值加1,如果3分钟内该条目没有被匹配过,则将条目从黑名单中移除,条目每次被匹配到,则将Idle_time字段清零。
表6
本发明设计了SDN环境中的反馈机制,巧妙利用主机的计算能力将恶意节点的攻击行为反馈给控制器,控制器可以根据反馈结果对恶意攻击进行源头抑制,避免验证无意义的CGA参数验证而消耗主机CPU资源。
附图说明
图1为本发明实施例一拓扑图;
图2为本发明主机的重复地址检测流程图。
具体实施方式
参见说明书附图,对本发明较佳实施例做进一步阐述。
本发明中,新增加3种新的报文:MSDAD-Request报文、 MSDAD-Reply应答报文和MSDAD-Feedback报文。它们的格式与 NDP报文基本相同,不同之处在于:
(1)三个报文的ICMPv6协议Type字段值为200;
(2)使用了三个新的Option结构,具体格式见表1,Option中各字段描述见表2。
对控制器的设计,在控制器端增加了反馈模块用于控制MSDAD 工作流程。反馈模块含有3个表,分别是监听表(表3)、查询表(表 4)和反馈表(表5)。监听表用于记录DAD过程中的NS及与该NS 对应的NA应答;查询表则记录发过NS的主机发起的查询,受到监听表约束;反馈表则记录进行过DAD主机的反馈,受到查询表约束。
由于一个节点发送NS进行DAD检测时,可能会收到多个NA 应答,因此一个发送过NS的节点也可以对多个NA发起查询,并且对多个恶意NA进行反馈。所以在监听表、查询表和反馈表中,都会有多个不同的NA对应于同一个NS。每个NS以及与之对应的多个 NA被当做一个整体来看待,本实施例中称之为Entry。
在MSDAD中,控制器通过向OVS交换机下发流表,对DAD 过程中的NS与NA报文进行监听,同时接收MSDAD过程的Request 和Feedback报文,各种报文的处理方法如下:
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,则更新反馈表,同时删除监听表和查询表中的相关条目(首先在查询表中检索与该NA有关的Entry,并将NA信息从该Entry中删除,如果删除该NA后,与该NS对应的NA为0个,则删除该Entry;然后在监听表中检索与该NA有关的Entry,并将NA信息从该Entry 中删除,如果删除该NA后,与该NS对应的NA为0个,则删除该 Entry);如果不满足条件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。
在MSDAD中,当控制器收到主机发送的MSDAD-Request报文后,控制器查询OpenFlow交换机,通过遍历交换机的各个流表,查找特定MAC的最早产生时间,其采用的查询算法如下:
从以太网的角度来看,恶意节点的DoS攻击可以分为两类:
第一类,使用真实的MAC地址,第二类,使用虚假的MAC地址。
对于第一类攻击,可以采用黑名单方法,即将进行DoS攻击的节点的MAC地址加入黑名单,就可以防止DoS攻击。对于第二类方法,单一黑名单机制是无效的,因为恶意节点可以随机的改变发送的 NA中与自己MAC地址有关的字段值。
以太网中在对MAC帧的转发过程中,同一MAC会在多个交换机上形成转发路径,如果一个节点采用了一个全新MAC地址进行通信,则在各个交换机上也会形成新的转发路径。对应到SDN网络中,如果节点采用了新的MAC地址,无论是reactive还是proactive模式的交换机都会生成与该MAC地址有关的流表。因此,我们可以通过分析与特定MAC地址有关的流表信息产生时间来判断MAC地址的真实性。
因此,本发明中的主机的重复地址检测过程见图2 ,描述如下:
(1)host生成新的加密地址CGAnew后,首先进行NS广播进行重复地址检测,并记录重复地址检测DAD开始的时间T1;
(2)在规定的时间内(3秒),如果收到对NS的应答NA,则记录当前时间T2;检查Option字段中的MAC地址和NA帧头部的 MAC地址是否符合以及MAC地址是否在黑名单那中,如果满足其中任何一个条件,则将该NA丢弃重复步骤二;都不满足,则进行步骤三;
(3)发送MSDAD-Request向控制器检索应答NA来源的OVS 身份ID、端口号Port No.和MAC地址产生时间;
(4)接收MSDAD-Reply报文,如果OVS身份ID和端口号Port No.在host的黑名单中,则丢弃该NA,否则进行步骤五;
(5)判断MAC是否为T2-T1内新增;如果是则进行步骤六,否则进行步骤七;
(6)将交换机Dpid和端口号Port No.加入黑名单,标记为疑似,然后进行CGA验证,如果CGA验证通过,将交换Dpid和Port No. 从黑名单中移除,同时DAD失败,即CGAx冲突。
(7)进行CGA验证,如果验证失败,则执行步骤8,否则执行步骤9;
(8)在黑名单中检索是否有该NA的源MAC地址字段所对应的条目,如果没有则将MAC、Switch_ID、Port_ID加入黑名单,标记设置为T,如果有,则将其标志更新为T,发送MSDAD-Feedback,向OC反馈MAC、交换机Dpid和Port_No.,回到步骤二;
(9)如果CGA验证通过,DAD失败,CGAx冲突,并且如果黑名单中有NA中的MAC地址对应的条目,则移除。
检测过程中用到的黑名单格式见表6,其中Idle_time字段用于记录条目的空闲时间,每秒钟Idle_time数值加1,如果3分钟内该条目没有被匹配过,则将条目从黑名单中移除,条目每次被匹配到,则将 Idle_time字段清零。
实施例一
假设SDN网络由1个控制器,2台Openflow交换机和3台主机 host构成,并且已经运行了一段时间了(3分钟以上),其拓扑图参照图1 ,各个主机配置情况见表7。
表7
首先,控制器下发流表对网络中DAD报文进行监听,流表见表8。
表8
假设主机A利用CGA地址配置方式生成了一个新的链路本地地址CGAnew(为了便于演示,假设CGANEW的后32位是cc00-aabb),则发送NS进行重复地址检测,NS格式见表9所示。OVS1收到NS 后,根据流表要求,发送Packet_In报文到控制器,控制器则根据 Packet_In报文和Packet_In携带的NS报文在监听表中生成一个新的条目,见表10。
表9
表10
主机B在收到NS后,发现与自己的IPv6地址并不冲突,则丢弃该NS报文。主机C在收到NS后,伪造NA对h1进行攻击,NA 报文见表11。OVS2收到该NA后会发送Packet_In到控制器,控制检查该NA后,发现满足条件1-3(条件1:监听表中存在Entry’满足 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’.NS对应的所有NA都不重复),则更新监听表,更新后见表12。
表11
表12
主机A在收到NA后,并不马上验证参数,而是检查MAC是否一致;检查通过后,则发送MSDAD-Request报文,报文见表13。OVS1 收到该报文后,发送Packet_In报文至控制器。
表13
控制器检查监听表,发现有与该MSDAD-Request对应的条目,且满足条件1-4,所以更新查询表,见表14,则向交换机OVS2查询该MACC产生时间,查询成功后,将查询表中的对应条目标志位设置为T(见表15),然后发送MSDAD-Reply报文到OVS1,要求OVS 从Port 1端口发出,MSDAD-Reply报文详见表16。
表14
表15
表16
主机A收到MSDAD-Reply后,发现MACC已经存在很长时间,非T2-T1内新增,则进行CGA验证,验证不通过。则发送 MSDAD-Feedback报文,见表17,OVS1收到该报文后,发送Packet_In 报文至控制器。
表17
控制器收到MSDAD-Feedback后,发现满足上述的条件1-6。则更新反馈表,并下发流表对OVS2端口3产生的NA报文进行抑制,见表18。同时删除与监听表和查询表中相关条目。
表18
以上是本发明优选实施方式,在本发明构思前提下所做出若干其他简单替换和改动,都应当视为属于本发明的保护范畴。
Claims (3)
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。
2.如权利要求1所述的一种适用于SEND协议的DAD过程恶意NA报文抑制方法,其特征在于:所述的控制器,当收到主机发送的MSDAD-Request报文后,控制器查询交换机,通过遍历交换机的各个流表,查找特定MAC的最早产生时间,采用查询算法如下:
假设要查找的MAC地址为MACX,设置一个变量Time,初始值为MAX个时间单位;对于网络中的每台交换机,检查它的每个流表Flow-table,即对流表中包含的每个条目entry,都判断是否包含有MACX,如果含有MACX,则将该条目产生的时间entry.CreateTime与Time进行比较,如果entry.CreateTime<Time,则进行如下赋值操作:Time=entry.CreateTime;同时将该条目所属交换机的ID存入变量Switch_ID,将该条目中的接入端口字段entry.Ingress_Port存入变量Port_No.;
上述算法运行完成后返回Time、Switch_ID和Port_No.。
3.如权利要求1所述的一种适用于SEND协议的DAD过程恶意NA报文抑制方法,其特征在于:所述的控制器,收到MSDAD-Feedback报文后,所述删除监听表和查询表中的相关条目采用如下方式:首先在查询表中检索与该NA有关的Entry,并将NA信息从该Entry中删除,如果删除该NA后,与该NS对应的NA为0个,则删除该Entry;然后在监听表中检索与该NA有关的Entry,并将NA信息从该Entry中删除,如果删除该NA后,与该NS对应的NA为0个,则删除该Entry。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810587503.1A CN108848087B (zh) | 2018-06-06 | 2018-06-06 | 适用于send协议的dad过程恶意na报文抑制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810587503.1A CN108848087B (zh) | 2018-06-06 | 2018-06-06 | 适用于send协议的dad过程恶意na报文抑制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108848087A CN108848087A (zh) | 2018-11-20 |
CN108848087B true CN108848087B (zh) | 2020-11-27 |
Family
ID=64210639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810587503.1A Active CN108848087B (zh) | 2018-06-06 | 2018-06-06 | 适用于send协议的dad过程恶意na报文抑制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108848087B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112448929A (zh) * | 2019-09-02 | 2021-03-05 | 中国电力科学研究院有限公司 | 一种通讯网络动态方防护方法及平台 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101552783A (zh) * | 2009-05-20 | 2009-10-07 | 杭州华三通信技术有限公司 | 一种防止伪造报文攻击的方法和装置 |
CN102137073A (zh) * | 2010-01-22 | 2011-07-27 | 杭州华三通信技术有限公司 | 一种防止仿冒ip地址进行攻击的方法和接入设备 |
CN102246461A (zh) * | 2009-11-17 | 2011-11-16 | 华为技术有限公司 | 一种地址重复检测代理方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9270638B2 (en) * | 2012-01-20 | 2016-02-23 | Cisco Technology, Inc. | Managing address validation states in switches snooping IPv6 |
-
2018
- 2018-06-06 CN CN201810587503.1A patent/CN108848087B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101552783A (zh) * | 2009-05-20 | 2009-10-07 | 杭州华三通信技术有限公司 | 一种防止伪造报文攻击的方法和装置 |
CN102246461A (zh) * | 2009-11-17 | 2011-11-16 | 华为技术有限公司 | 一种地址重复检测代理方法、装置及系统 |
CN102137073A (zh) * | 2010-01-22 | 2011-07-27 | 杭州华三通信技术有限公司 | 一种防止仿冒ip地址进行攻击的方法和接入设备 |
Non-Patent Citations (2)
Title |
---|
Junaid Latief Shah∗and Javed Parvez.Optimizing Security and Address Configuration in IPv6 SLAAC.《Eleventh International Multi-Conference on Information Processing-2015》.2015, * |
SAVSH: IP source address validation for SDN hybrid networks;Guolong Chen;Guangwu Hu;《IEEE Xplore》;20160818;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108848087A (zh) | 2018-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mankin et al. | On design and evaluation of" intention-driven" ICMP traceback | |
US8499146B2 (en) | Method and device for preventing network attacks | |
Lee et al. | ICMP traceback with cumulative path, an efficient solution for IP traceback | |
Al-Ani et al. | Match-prevention technique against denial-of-service attack on address resolution and duplicate address detection processes in IPv6 link-local network | |
CN109587167B (zh) | 一种报文处理的方法和装置 | |
Lu et al. | A novel path‐based approach for single‐packet IP traceback | |
CN106878326A (zh) | 基于反向检测的IPv6邻居缓存保护方法及其装置 | |
CN102347903B (zh) | 一种数据报文转发方法、装置及系统 | |
Rehman et al. | Rule-based mechanism to detect Denial of Service (DoS) attacks on Duplicate Address Detection process in IPv6 link local communication | |
US7613179B2 (en) | Technique for tracing source addresses of packets | |
Perrig et al. | StackPi: a new defense mechanism against IP spoofing and DDoS attacks | |
CN108848087B (zh) | 适用于send协议的dad过程恶意na报文抑制方法 | |
Rehman et al. | Novel mechanism to prevent denial of service (DoS) attacks in IPv6 duplicate address detection process | |
CN110401646B (zh) | IPv6安全邻居发现过渡环境中CGA参数探测方法及装置 | |
Machana et al. | Optimization of ipv6 neighbor discovery protocol | |
Song et al. | Using FDAD to prevent DAD attack in secure neighbor discovery protocol | |
Lu et al. | A novel approach for single-packet IP traceback based on routing path | |
US7917649B2 (en) | Technique for monitoring source addresses through statistical clustering of packets | |
Chen et al. | TRACK: A novel approach for defending against distributed denial-of-service attacks | |
Zhang et al. | Petri Net Model of MITM Attack Based on NDP Protocol | |
Hamadeh et al. | Performance of ip address fragmentation strategies for ddos traceback | |
Paruchuri et al. | FAST: fast autonomous system traceback | |
Zhang et al. | A secure dynamic content delivery scheme in named data networking | |
Zou et al. | Advanced routing worm and its security challenges | |
AbrahamYaar | StackPi: A New Defense Mechanism against IP Spoofing and DDoS Attacks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |