CN108848087B - 适用于send协议的dad过程恶意na报文抑制方法 - Google Patents

适用于send协议的dad过程恶意na报文抑制方法 Download PDF

Info

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
Application number
CN201810587503.1A
Other languages
English (en)
Other versions
CN108848087A (zh
Inventor
宋广佳
陈滨
安仲立
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiyang College of Zhejiang A&F University
Original Assignee
Jiyang College of Zhejiang A&F University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jiyang College of Zhejiang A&F University filed Critical Jiyang College of Zhejiang A&F University
Priority to CN201810587503.1A priority Critical patent/CN108848087B/zh
Publication of CN108848087A publication Critical patent/CN108848087A/zh
Application granted granted Critical
Publication of CN108848087B publication Critical patent/CN108848087B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial 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报文抑制方法
技术领域
本发明涉及计算机技术领域,特别与一种适用于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
Figure GDA0002624495080000031
表2
Figure GDA0002624495080000032
所述的监听表格式如表3、查询表格式如表4、反馈表格式如表 5:
表3
Figure GDA0002624495080000033
表4
Figure GDA0002624495080000034
表5
Figure GDA0002624495080000041
同时,每个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的最早产生时间,所述查询算法如下:
Figure GDA0002624495080000051
Figure GDA0002624495080000061
所述的控制器,收到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
Figure GDA0002624495080000081
本发明设计了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的最早产生时间,其采用的查询算法如下:
Figure GDA0002624495080000111
从以太网的角度来看,恶意节点的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
Figure GDA0002624495080000141
首先,控制器下发流表对网络中DAD报文进行监听,流表见表8。
表8
Figure GDA0002624495080000142
假设主机A利用CGA地址配置方式生成了一个新的链路本地地址CGAnew(为了便于演示,假设CGANEW的后32位是cc00-aabb),则发送NS进行重复地址检测,NS格式见表9所示。OVS1收到NS 后,根据流表要求,发送Packet_In报文到控制器,控制器则根据 Packet_In报文和Packet_In携带的NS报文在监听表中生成一个新的条目,见表10。
表9
Figure GDA0002624495080000143
Figure GDA0002624495080000151
表10
Figure GDA0002624495080000152
主机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
Figure GDA0002624495080000153
Figure GDA0002624495080000161
表12
Figure GDA0002624495080000162
主机A在收到NA后,并不马上验证参数,而是检查MAC是否一致;检查通过后,则发送MSDAD-Request报文,报文见表13。OVS1 收到该报文后,发送Packet_In报文至控制器。
表13
Figure GDA0002624495080000163
控制器检查监听表,发现有与该MSDAD-Request对应的条目,且满足条件1-4,所以更新查询表,见表14,则向交换机OVS2查询该MACC产生时间,查询成功后,将查询表中的对应条目标志位设置为T(见表15),然后发送MSDAD-Reply报文到OVS1,要求OVS 从Port 1端口发出,MSDAD-Reply报文详见表16。
表14
Figure GDA0002624495080000171
表15
Figure GDA0002624495080000172
表16
Figure GDA0002624495080000173
主机A收到MSDAD-Reply后,发现MACC已经存在很长时间,非T2-T1内新增,则进行CGA验证,验证不通过。则发送 MSDAD-Feedback报文,见表17,OVS1收到该报文后,发送Packet_In 报文至控制器。
表17
Figure GDA0002624495080000174
Figure GDA0002624495080000181
控制器收到MSDAD-Feedback后,发现满足上述的条件1-6。则更新反馈表,并下发流表对OVS2端口3产生的NA报文进行抑制,见表18。同时删除与监听表和查询表中相关条目。
表18
Figure GDA0002624495080000182
以上是本发明优选实施方式,在本发明构思前提下所做出若干其他简单替换和改动,都应当视为属于本发明的保护范畴。

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。
CN201810587503.1A 2018-06-06 2018-06-06 适用于send协议的dad过程恶意na报文抑制方法 Active CN108848087B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112448929A (zh) * 2019-09-02 2021-03-05 中国电力科学研究院有限公司 一种通讯网络动态方防护方法及平台

Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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