CN108173980A - 一种sdn环境中的重复地址检测方法 - Google Patents
一种sdn环境中的重复地址检测方法 Download PDFInfo
- Publication number
- CN108173980A CN108173980A CN201810048587.1A CN201810048587A CN108173980A CN 108173980 A CN108173980 A CN 108173980A CN 201810048587 A CN201810048587 A CN 201810048587A CN 108173980 A CN108173980 A CN 108173980A
- Authority
- CN
- China
- Prior art keywords
- time
- address
- idle
- blacklist
- port
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5046—Resolving address allocation conflicts; Testing of addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种SDN环境中的重复地址检测方法,host生成新的加密地址CGAx后,进行NS广播,为T1,收到应答NA,为T2;检查MAC地址,进行CGA验证,从而来检测地址的重复性。本发明采用的反馈机制,反馈机制利用OC的集中控制,通过对OVS的轮询来辨别MAC地址的真实性,实现在软件定义网络SDN中,用于防止重复地址检测DAD过程中的拒绝服务DoS攻击,降低主机CPU资源消耗。
Description
【技术领域】
本发明涉及计算机网络技术,具体涉及一种SDN环境中的重复地址检测方法。
【背景技术】
对于复杂的网络通讯,一般使用分层的方法来简化计算机网络的设计与实现,无论是TCP/IP的四层结构,还是OSI的七层结构,都是模块化思想的体现。为了简化计算机网络各层的设计,每一层都使用了各不相同的、相互独立的通信属性(或称为通信地址、网络标识)。典型的比如三层使用IP地址作为数据包的通信属性,而二层则使用MAC(MediaAccess Control)地址作为通信属性,对数据帧进行转发。
所以有两个问题需要被解决:一个是每个网络实体如何得到通信地址,如何保证地址是唯一的;另一个是当数据在n+1层被封装完成后转发到下层(n层)进行封装的时候,如何确定n+1层与n层之间的通信属性的对应关系。比如当三层对数据使用IP地址进行封装之后,转发到数据链路层,链路层如何确定使用什么MAC地址进行封装。
目前有两个主要协议用于解决上面提到的两个问题:ARP(Address ResolutionProtocol,地址解析协议)和NDP(Neighbor Discovery Protocol,邻居发现协议)。ARP协议是互联网协议第四版IPv4体系中用于解决IP与MAC地址对应关系的协议。在互联网协议第六版IPv6中体系中,使用NDP来完成同样的功能。当然,NDP协议在功能上对ARP进行了扩展,它包括地址重复检测DAD(Duplicate Address Detection)、邻居不可达检测NUD(NeighborUnreachable Detection)、无状态定址自动配置SLAAC(Stateless AddressAutOConfiguration)等新的功能。但很多在ARP中存在的问题并未得到妥善的解决,在NDP中仍然存在,比如针对重复地址检测的DoS攻击。
DAD攻击无论在ARP还是NDP中都始终存在。当一个节点接入到局域网时,它必须要有一个局域网地址才能开始网络通信。而一个节点在使用一个新的地址之前,一定要进行重复地址检测,以确保该地址是唯一的。所以恶意节点可以利用这一点进行攻击,声明该地址已经被占用,或者是也发重复地址检测,而检测的目的地址也是IPx。这两种方式都可以导致节点认为该地址已经被占用,只能选择其他地址重新进行DAD。如果恶意节点的攻击一直持续,将导致节点受害者无地址可用,如图1所示。
为了防止地址欺骗,国际互联网工程任务组IETF提出了SEND协议。SEND协议作为NDP的增强机制,它使用加密地址生成(Cryptographically Generated Address,CGA)、数字签名、时间戳等方法来保护NDP报文,并防止IP地址盗用。CGA是SEND协议特有的地址格式,产生方法为由子网前缀(Subnet Prefix),公钥(Public Key),碰撞次数(CollisionCount),Modifier(调节参数)经过多次hash运算找到合适的Modifier值,然后再进行二次hash运算,然后取160位hash值的前59位,再结合Sec(Security Level)值与其他参数共同形成最终地址,CGA计算过程见图2所示。
虽然SEND协议使用了加密技术,但也面临着很多问题,因为CGA加密过程需要大量计算,并且使加密后的NDP报文体积增大导致通信带宽也随之增加。另外,CGA的地址生成时间与Sec位的取值有关,Sec值越大时间越长,Sec每增加1,计算时间增加约216倍,并且地址生成后还要进行重复地址检测。
CGA验证过程见图3所示,描述如下:
(1)collision count是否等于0、1、2,不等于则CGA验证失败;等于则进入步骤(2);
(2)subnet prefix与消息中的网络接口标识中的subnet prefix是否一致,不一致则CGA验证失败;一致则进入步骤(3);
(3)计算hash1,比较hash1与iid(忽略左侧1、2、3bit,6、7bit),如果不一致,CGA失败;否则转到步骤(4);
(4)计算hash2,结合sec参数,如果hash2中的16*sec位等于零,验证通过,否则CGA验证失败。
CGA对于错误的参数经过验证后需要丢弃。由此可见,恶意的节点可以发送大量的虚假的NA,用含有错误参数的NA来消耗目标节点的计算资源,从而形成DoS,因此如何防止DoS攻击,降低主机CPU资源消耗是CGA面临的一大挑战。
因此,为了避免验证无意义的CGA参数而消耗CPU资源,本发明人设计了一种SDN(Software Defined Network,软件定义网络)环境中的重复地址检测方法,简称FB-DAD,本案由此产生。
【发明内容】
为解决上述问题,本发明的目的在于提供一种SDN环境中的重复地址检测方法,该算法用在软件定义网络(SDN)中,用于防止重复地址检测(DAD)过程中的拒绝服务(DoS)攻击,降低主机CPU资源消耗。
为实现上述目的,本发明采取的技术方案为:
一种SDN环境中的重复地址检测方法,涉及三个主体:主机host、控制器OC、Openflow交换机OVS,进行以下步骤:
步骤一、host生成新的加密地址CGAx后,首先进行NS广播进行重复地址检测,并记录重复地址检测DAD开始的时间T1;
步骤二、在规定的时间内,如果收到对NS的应答NA,则记录当前时间T2;检查Option字段中的MAC地址,如果和NA帧头部的MAC地址不符合,则丢弃,重复步骤二;如果一致,则进行步骤三;
步骤三、向OC检索应答NA来源的OVS身份ID和端口号Port No.,如果OVS身份ID和端口号Port No.在host的黑名单中,则丢弃该NA,否则进行步骤四;
步骤四、向OC检索MAC是否为T2-T1内新增;如果是则进行步骤五,否则进行步骤六;
步骤五、将OVS身份ID和端口号Port No.加入黑名单,标记为疑似,然后进行CGA验证,如果CGA验证通过,将OVS身份ID和Port No.从黑名单中移除,同时DAD失败,即CGAx冲突。
步骤六、进行CGA验证,如果验证不通过,则在黑名单中检索是否有该NA的源MAC地址字段所对应的条目,如果没有则将MAC、switch_ID、Port_ID加入黑名单,如果有,则将其标志位更新为T,将该NA丢弃,回到步骤二;如果CGA验证通过,DAD失败,CGAx冲突,并且如果黑名单中有NA中的MAC地址对应的条目,则移除。
本发明的中具体的步骤进一步设置为:
所述的步骤二中,所述的规定的时间为1-3秒。
所述的步骤五中,在每条数据创建时,都会增加一个Idle_time字段,黑名单格式如下表所示:
MAC地址 | Switch ID | Port No. | Idle time | Flag |
… | … | … | … | … |
Idle_time字段用于记录条目的空闲时间,每秒钟Idle_time数值加1,如果3分钟内该条目没有被匹配过,则将条目从黑名单中移除,条目每次被匹配到,则将Idle_time字段清零。
所述的步骤六中,在每条数据创建时,都会增加一个Idle_time字段,黑名单格式如下表所示:
MAC地址 | Switch ID | Port No. | Idle time | Flag |
… | … | … | … | … |
Idle_time字段用于记录条目的空闲时间,每秒钟Idle_time数值加1,如果3分钟内该条目没有被匹配过,则将条目从黑名单中移除,条目每次被匹配到,则将Idle_time字段清零。
与现有技术相比,本发明具有如下有益效果:我们采用的反馈机制。反馈机制利用OC的集中控制,通过对OVS的轮询来辨别MAC地址的真实性。
【附图说明】
图1是本发明的现有技术中DAD攻击过程;
图2是本发明的现有技术中CGA计算过程;
图3是本发明的现有技术中CGA验证过程;
图4是本发明较佳实施例的工作流程图;
图5是本发明较佳实施例的OVS、OC、host三者交互过程。
【具体实施方式】
请参阅说明书附图4和附图5所示,本发明SDN环境中的重复地址检测方法,
一种SDN环境中的重复地址检测方法,涉及三个主体:主机host、控制器OC、Openflow交换机OVS,本实施例中以hostA、hostB、hostC为例进行以下步骤:
步骤一,首先,hostA上生成新的加密地址CGAx,发送重复地址检测NS,并记录这个发送时间为T1。在规定时间内,通常为1-3秒时间内,hostA上收到对NS的应答NA,该时间记录为T2。
假如hostA收到hostB应答NA后,通过OVS向OC发起MAC地址查询数据流。向OC检索应答NA来源hostB的OVS身份ID和端口号Port No.。
假设hostB的身份是在host的黑名单中,则丢弃hostB的NA,不是在黑名单中,则继续检查hostB的MAC地址是否为T2-T1内新增。
hostB的MAC地址是在T2-T1内新增加的,将hostB的OVS身份ID和端口号Port No.加入黑名单,标记为疑似,然后进行CGA验证。如果CGA验证通过,将hostB的OVS身份ID和Port No.从黑名单中移除,同时DAD失败,即CGAx冲突。
hostB的MAC地址不是在T2-T1内新增加的,进行CGA验证,如果验证不通过,则将hostB的MAC地址等信息加入黑名单,并将该NA丢弃,返回到上面步骤继续等待NA。如果CGA验证通过,则DAD失败,CGAx冲突,并且如果黑名单中有NA中的MAC地址对应的条目,则移除。
在CGA验证步骤中,为了防止黑名单长度过大、减少对存储空间的消耗,在每条数据创建时,都会增加一个Idle_time字段,如下表所示,
MAC地址 | Switch ID | Port No. | Idle time | Flag |
… | … | … | … | … |
如果hostB的地址MAC_B及host所连接的交换机ID和连接的具体端口等信息被加入了黑名单,并且标记为疑似F,那么初始时,黑名单具体如表1。
Idle_time的数值每秒钟增加1,如果经过15秒后,MAC_B所对应的信息都没有被匹配到,则表1会演化成表2的样式。
表1
MAC地址 | Switch ID | Port No. | Idle time | Flag |
MAC_B | 1 | 10 | 0 | F |
MAC_C | 2 | 20 | 85 | T |
… | … | … | … | … |
表2
MAC地址 | Switch ID | Port No. | Idle time | Flag |
MAC_B | 1 | 10 | 15 | F |
MAC_C | 2 | 20 | 100 | T |
… | … | … | … | … |
Idle_time用于记录条目的空闲时间,如果3分钟内该条目没有被匹配过,则将条目从黑名单中移除,条目每次被匹配到,则将Idle_time字段清零。
具体在计算机上的算法程序:OC查询各个OpenFlow交换机,通过查找各个OVS的流表,返回是否有MAC为最近T2-T1秒内新增,由于二层交换机具有MAC学习功能,所以当主机启用一个新的MAC地址时,MAC会在多台OVS上形成转发路径,OVS需要找到MAC增加时间最早的那台OVS和对应端口,那么OVS x的端口y就是主机所接入的端口。
输入:MAC地址MACx
输出:True,交换机ID与端口No.;或False
以上的具体实施方式仅为本创作的较佳实施例,并不用以限制本创作,凡在本创作的精神及原则之内所做的任何修改、等同替换、改进等,均应包含在本创作的保护范围之内。
Claims (4)
1.一种SDN环境中的重复地址检测方法,其特征在于:包括三个主体:主机host、控制器OC、Openflow交换机OVS,进行以下步骤:
步骤一、host生成新的加密地址CGAx后,首先进行NS广播进行重复地址检测,并记录地址重复检测DAD开始的时间T1;
步骤二、在规定的时间内,如果收到对NS的应答NA,则记录当前时间T2;检查Option字段中的MAC地址,如果和NA帧头部的MAC地址不符合,则丢弃,重复步骤二;如果一致,则进行步骤三;
步骤三、向OC检索应答NA来源的OVS身份ID和端口号Port No.,如果OVS身份ID和端口号Port No.在host的黑名单中,则丢弃该NA,否则进行步骤四;
步骤四、向OC检索MAC是否为T2-T1内新增;如果是则进行步骤五,否则进行步骤六;
步骤五、将OVS身份ID和端口号Port No.加入黑名单,标记为疑似,然后进行CGA验证,如果CGA验证通过,将OVS身份ID和Port No.从黑名单中移除,同时DAD失败,即CGAx冲突。
步骤六、进行CGA验证,如果验证不通过,则在黑名单中检索该是否有NA的源MAC地址字段所对应的条目,如果没有则将MAC、switch_ID、Port_ID加入黑名单,如果有,则将其标志位更新为T,将该NA丢弃,回到步骤二;如果CGA验证通过,则DAD失败,CGAx冲突,并且如果黑名单中有NA中的MAC地址对应的条目,则移除。
2.如权利要求1所述的一种SDN环境中的重复地址检测方法,其特征在于:所述的步骤二中,所述规定的时间为1-3秒。
3.如权利要求1所述的一种SDN环境中的重复地址检测方法,其特征在于:所述的步骤五中,在每条数据创建时,都会增加一个Idle_time字段,黑名单格式如下表所示:
Idle_time字段用于记录条目的空闲时间,每秒钟Idle_time数值加1,如果3分钟内该条目没有被匹配过,则将条目从黑名单中移除,条目每次被匹配到,则将Idle_time字段清零。
4.如权利要求1所述的一种SDN环境中的重复地址检测方法,其特征在于:所述的步骤六中,在每条数据创建时,都会增加一个Idle_time字段,黑名单格式如下表所示:
Idle_time字段用于记录条目的空闲时间,每秒钟Idle_time数值加1,如果3分钟内该条目没有被匹配过,则将条目从黑名单中移除,条目每次被匹配到,则将Idle_time字段清零。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810048587.1A CN108173980B (zh) | 2018-01-18 | 2018-01-18 | 一种sdn环境中的重复地址检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810048587.1A CN108173980B (zh) | 2018-01-18 | 2018-01-18 | 一种sdn环境中的重复地址检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108173980A true CN108173980A (zh) | 2018-06-15 |
CN108173980B CN108173980B (zh) | 2021-02-19 |
Family
ID=62514833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810048587.1A Active CN108173980B (zh) | 2018-01-18 | 2018-01-18 | 一种sdn环境中的重复地址检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108173980B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080159222A1 (en) * | 2004-04-23 | 2008-07-03 | Ammad Akram | Duplicate Address Detection Optimisation |
CN101741820A (zh) * | 2008-11-13 | 2010-06-16 | 华为技术有限公司 | Cga公钥识别和cga公钥确定的方法、***及装置 |
CN102246461A (zh) * | 2009-11-17 | 2011-11-16 | 华为技术有限公司 | 一种地址重复检测代理方法、装置及*** |
CN102347903A (zh) * | 2011-10-13 | 2012-02-08 | 北京星网锐捷网络技术有限公司 | 一种数据报文转发方法、装置及*** |
CN104753793A (zh) * | 2013-12-26 | 2015-07-01 | 联芯科技有限公司 | 在无状态IPv6配置下有状态管理接入终端的方法 |
CN105991655A (zh) * | 2015-03-16 | 2016-10-05 | 思科技术公司 | 缓解基于邻居发现的拒绝服务攻击 |
CN107547510A (zh) * | 2017-07-04 | 2018-01-05 | 新华三技术有限公司 | 一种邻居发现协议安全表项处理方法和装置 |
-
2018
- 2018-01-18 CN CN201810048587.1A patent/CN108173980B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080159222A1 (en) * | 2004-04-23 | 2008-07-03 | Ammad Akram | Duplicate Address Detection Optimisation |
CN101741820A (zh) * | 2008-11-13 | 2010-06-16 | 华为技术有限公司 | Cga公钥识别和cga公钥确定的方法、***及装置 |
CN102246461A (zh) * | 2009-11-17 | 2011-11-16 | 华为技术有限公司 | 一种地址重复检测代理方法、装置及*** |
CN102347903A (zh) * | 2011-10-13 | 2012-02-08 | 北京星网锐捷网络技术有限公司 | 一种数据报文转发方法、装置及*** |
CN104753793A (zh) * | 2013-12-26 | 2015-07-01 | 联芯科技有限公司 | 在无状态IPv6配置下有状态管理接入终端的方法 |
CN105991655A (zh) * | 2015-03-16 | 2016-10-05 | 思科技术公司 | 缓解基于邻居发现的拒绝服务攻击 |
CN107547510A (zh) * | 2017-07-04 | 2018-01-05 | 新华三技术有限公司 | 一种邻居发现协议安全表项处理方法和装置 |
Non-Patent Citations (1)
Title |
---|
宋广佳: "面向数据链路层的自主地址解析协议安全机制研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN108173980B (zh) | 2021-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0943202B1 (en) | Method and apparatus for assignment of ip addresses | |
US8499146B2 (en) | Method and device for preventing network attacks | |
US10469532B2 (en) | Preventing DNS cache poisoning | |
EP2469787B1 (en) | Method and device for preventing network attacks | |
CN105991655B (zh) | 用于缓解基于邻居发现的拒绝服务攻击的方法和装置 | |
US20030200441A1 (en) | Detecting randomness in computer network traffic | |
US20140289800A1 (en) | System and method for filtering network traffic | |
US7464183B1 (en) | Apparatus, system, and method to prevent address resolution cache spoofing | |
US20220174072A1 (en) | Data Processing Method and Device | |
Rohatgi et al. | A detailed survey for detection and mitigation techniques against ARP spoofing | |
Ataullah et al. | ES-ARP: an efficient and secure address resolution protocol | |
CN101808097B (zh) | 一种防arp攻击方法和设备 | |
Yaibuates et al. | A combination of ICMP and ARP for DHCP malicious attack identification | |
US7551559B1 (en) | System and method for performing security actions for inter-layer binding protocol traffic | |
US7613179B2 (en) | Technique for tracing source addresses of packets | |
US8307415B2 (en) | Safe hashing for network traffic | |
Machana et al. | Optimization of ipv6 neighbor discovery protocol | |
Song et al. | Using FDAD to prevent DAD attack in secure neighbor discovery protocol | |
CN108173980A (zh) | 一种sdn环境中的重复地址检测方法 | |
US7917649B2 (en) | Technique for monitoring source addresses through statistical clustering of packets | |
CN108848087B (zh) | 适用于send协议的dad过程恶意na报文抑制方法 | |
US10015179B2 (en) | Interrogating malware | |
Zhang et al. | Petri Net Model of MITM Attack Based on NDP Protocol | |
Zhang et al. | A solution for ARP attacks in software defined network | |
CN102571816B (zh) | 一种防止邻居学习攻击的方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |