CN108173980B - 一种sdn环境中的重复地址检测方法 - Google Patents
一种sdn环境中的重复地址检测方法 Download PDFInfo
- Publication number
- CN108173980B CN108173980B CN201810048587.1A CN201810048587A CN108173980B CN 108173980 B CN108173980 B CN 108173980B CN 201810048587 A CN201810048587 A CN 201810048587A CN 108173980 B CN108173980 B CN 108173980B
- Authority
- CN
- China
- Prior art keywords
- address
- switch
- time
- blacklist
- host
- 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
- 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的集中控制,通过对Switch的轮询来辨别MAC地址的真实性,实现在软件定义网络SDN中,用于防止重复地址检测DAD过程中的拒绝服务DoS攻击,降低主机CPU资源消耗。
Description
【技术领域】
本发明涉及计算机网络技术,具体涉及一种SDN环境中的重复地址检测方法。
【背景技术】
对于复杂的网络通讯,一般使用分层的方法来简化计算机网络的设计与实现,无论是TCP/IP的四层结构,还是OSI(Open System Interconnection,开放***互联)的七层结构,都是模块化思想的体现。为了简化计算机网络各层的设计,每一层都使用了各不相同的、相互独立的通信属性(或称为通信地址、网络标识)。典型的比如三层使用IP地址作为数据包的通信属性,而二层则使用MAC(Media Access 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(Denial of service,攻击拒绝服务攻击)。
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(Neighbor Advertisement,邻居通告报文),用含有错误参数的NA来消耗目标节点的计算资源,从而形成DoS,因此如何防止DoS攻击,降低主机CPU资源消耗是CGA面临的一大挑战。
因此,为了避免验证无意义的CGA参数而消耗CPU资源,本发明人设计了一种SDN(Software Defined Network,软件定义网络)环境中的重复地址检测方法,简称FB-DAD,本案由此产生。
【发明内容】
为解决上述问题,本发明的目的在于提供一种SDN环境中的重复地址检测方法,该算法用在软件定义网络(SDN)中,用于防止重复地址检测(DAD)过程中的拒绝服务(DoS)攻击,降低主机CPU资源消耗。
为实现上述目的,本发明采取的技术方案为:
一种SDN环境中的重复地址检测方法,涉及三个主体:主机host、控制器OC、Openflow交换机Switch,进行以下步骤:
步骤一、主机host生成新的加密地址CGAx后,首先进行NS(NeighborSolicitation,邻居请求报文)广播进行重复地址检测,并记录重复地址检测DAD开始的时间T1;
步骤二、在规定的时间内,如果收到对邻居请求报文NS的应答邻居通告报文NA,则记录当前时间T2;检查Options字段中的媒体接入控制MAC地址,如果和邻居通告报文NA帧头部的媒体接入控制MAC地址不符合,则丢弃,重复步骤二;如果一致,则进行步骤三;
步骤三、向控制器OC检索应答邻居通告报文NA来源的交换机身份Switch_ID和端口号Port No.,如果交换机身份Switch_ID和端口号Port No.在主机host的黑名单中,则丢弃该邻居通告报文NA,否则进行步骤四;
步骤四、向控制器OC检索媒体接入控制MAC是否为T2-T1内新增;如果是则进行步骤五,否则进行步骤六;
步骤五、将交换机身份Switch_ID和端口号Port No.加入黑名单,标记为疑似,然后进行加密地址生成CGA验证,如果CGA验证通过,将Switch_ID和Port No.从黑名单中移除,同时重复地址检测DAD失败,即CGAx冲突。
步骤六、进行加密地址生成CGA验证,如果验证不通过,则在黑名单中检索是否有该NA的源MAC地址字段所对应的条目,如果没有则将MAC、Switch_ID、Port No.加入黑名单,如果有,则将其标志位更新为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的集中控制,通过对Switch的轮询来辨别MAC地址的真实性。
【附图说明】
图1是本发明的现有技术中DAD攻击过程;
图2是本发明的现有技术中CGA计算过程;
图3是本发明的现有技术中CGA验证过程;
图4是本发明较佳实施例的工作流程图;
图5是本发明较佳实施例的Switch、OC、host三者交互过程。
【具体实施方式】
请参阅说明书附图4和附图5所示,本发明SDN环境中的重复地址检测方法,
一种SDN环境中的重复地址检测方法,涉及三个主体:主机host、控制器OC、Openflow交换机Switch,本实施例中以hostA、hostB、hostC为例进行以下步骤:
步骤一,首先,hostA上生成新的加密地址CGAx,发送重复地址检测NS,并记录这个发送时间为T1。在规定时间内,通常为1-3秒时间内,hostA上收到对NS的应答NA,该时间记录为T2。
假如hostA收到hostB应答NA后,通过Switch向OC发起MAC地址查询数据流。向OC检索应答NA来源hostB的Switch身份ID和端口号Port No.。
假设hostB的身份是在host的黑名单中,则丢弃hostB的NA,不是在黑名单中,则继续检查hostB的MAC地址是否为T2-T1内新增。
hostB的MAC地址是在T2-T1内新增加的,将hostB的Switch身份ID和端口号PortNo.加入黑名单,标记为疑似,然后进行CGA验证。如果CGA验证通过,将hostB的Switch身份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交换机,通过查找各个Switch的流表,返回是否有MAC为最近T2-T1秒内新增,由于二层交换机具有MAC学习功能,所以当主机启用一个新的MAC地址时,MAC会在多台Switch上形成转发路径,Switch需要找到MAC增加时间最早的那台Switch和对应端口,那么Switch x的端口y就是主机所接入的端口。
输入:MAC地址MACx
输出:True,交换机ID与端口No.;或False
以上的具体实施方式仅为本创作的较佳实施例,并不用以限制本创作,凡在本创作的精神及原则之内所做的任何修改、等同替换、改进等,均应包含在本创作的保护范围之内。
Claims (2)
1.一种SDN环境中的重复地址检测方法,其特征在于:包括三个主体:主机host、控制器OC、Openflow交换机Switch,进行以下步骤:
步骤一、主机host生成新的加密地址CGAx后,首先进行邻居请求报文NS广播进行重复地址检测,并记录重复地址检测DAD开始的时间T1;
步骤二、在规定的时间内,如果收到对邻居请求报文NS的应答邻居通告报文NA,则记录当前时间T2;检查Options字段中的媒体接入控制MAC地址,如果和邻居通告报文NA帧头部的媒体接入控制MAC地址不符合,则丢弃,重复步骤二;如果一致,则进行步骤三;
步骤三、向控制器OC检索应答邻居通告报文NA来源的交换机身份Switch_ID和端口号Port No.,如果交换机身份Switch_ID和端口号Port No.在主机host的黑名单中,则丢弃该邻居通告报文NA,否则进行步骤四;
步骤四、向控制器OC检索媒体接入控制MAC是否为T2-T 1内新增;如果是则进行步骤五,否则进行步骤六;
步骤五、将交换机身份Switch_ID和端口号Port No.加入黑名单,标记为疑似,然后进行加密地址生成CGA验证,如果加密地址生成CGA验证通过,将交换机身份Switch_ID和端口号Port No.从黑名单中移除,同时重复地址检测DAD失败,即CGAx冲突;
步骤六、进行加密地址生成CGA验证,如果验证不通过,则在黑名单中检索是否有该NA的源MAC地址字段所对应的条目,如果没有则将媒体接入控制MAC、交换机身份Switch_ID、端口号Port No.加入黑名单,如果有,则将其标志位更新为T,将该邻居通告报文NA丢弃,回到步骤二;如果加密地址生成CGA验证通过,重复地址检测DAD失败,CGAx冲突,并且如果黑名单中有邻居通告报文NA中的媒体接入控制MAC地址对应的条目,则移除;
所述步骤五和步骤六中,在加密地址生成CGA验证过程中,在每条数据创建时,都会增加一个空闲时间Idle_time字段,黑名单记录发送邻居通告报文NA报文进行攻击的主机信息,它包括5个字段:媒体接入控制MAC地址字段表示主机的媒体接入控制MAC地址,交换机身份Switch_ID字段表示主机接入的交换机的ID号,端口号Port_No.字段表示主机连接的交换机端口号,空闲时间Idle_time表示该条目的空闲时间,标志Flag字段为标志位,F表示有攻击嫌疑,T表示确实发起了攻击;
空闲时间Idle_time字段用于记录条目的空闲时间,每秒钟空闲时间Idle_time数值加1,如果3分钟内该条目没有被匹配过,则将条目从黑名单中移除,条目每次被匹配到,则将空闲时间Idle_time字段清零。
2.如权利要求1所述的一种SDN环境中的重复地址检测方法,其特征在于:所述的步骤二中,所述规定的时间为1-3秒。
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 CN108173980A (zh) | 2018-06-15 |
CN108173980B true 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 (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741820A (zh) * | 2008-11-13 | 2010-06-16 | 华为技术有限公司 | Cga公钥识别和cga公钥确定的方法、***及装置 |
CN105991655A (zh) * | 2015-03-16 | 2016-10-05 | 思科技术公司 | 缓解基于邻居发现的拒绝服务攻击 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2413462A (en) * | 2004-04-23 | 2005-10-26 | Matsushita Electric Ind Co Ltd | Duplicate Address Detection Optimisation |
EP2493117B1 (en) * | 2009-11-17 | 2015-01-07 | Huawei Technologies Co., Ltd. | Method and apparatus for duplicate address detection proxy |
CN102347903B (zh) * | 2011-10-13 | 2014-07-02 | 北京星网锐捷网络技术有限公司 | 一种数据报文转发方法、装置及*** |
CN104753793B (zh) * | 2013-12-26 | 2018-03-30 | 联芯科技有限公司 | 在无状态IPv6配置下有状态管理接入终端的方法 |
CN107547510B (zh) * | 2017-07-04 | 2020-03-06 | 新华三技术有限公司 | 一种邻居发现协议安全表项处理方法和装置 |
-
2018
- 2018-01-18 CN CN201810048587.1A patent/CN108173980B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741820A (zh) * | 2008-11-13 | 2010-06-16 | 华为技术有限公司 | Cga公钥识别和cga公钥确定的方法、***及装置 |
CN105991655A (zh) * | 2015-03-16 | 2016-10-05 | 思科技术公司 | 缓解基于邻居发现的拒绝服务攻击 |
Non-Patent Citations (1)
Title |
---|
面向数据链路层的自主地址解析协议安全机制研究;宋广佳;《中国博士学位论文全文数据库 信息科技辑》;20161215;第1.5.1节,5.3节,第5.4.2节 * |
Also Published As
Publication number | Publication date |
---|---|
CN108173980A (zh) | 2018-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210344714A1 (en) | Cyber threat deception method and system, and forwarding device | |
US7409544B2 (en) | Methods and systems for authenticating messages | |
US8984112B2 (en) | Internet address information processing method, apparatus, and internet system | |
CN105991655B (zh) | 用于缓解基于邻居发现的拒绝服务攻击的方法和装置 | |
EP2469787B1 (en) | Method and device for preventing network attacks | |
CN107547510B (zh) | 一种邻居发现协议安全表项处理方法和装置 | |
WO2009012663A1 (fr) | Procédé, système de communication et dispositif pour le traitement de paquets arp | |
US20110026529A1 (en) | Method And Apparatus For Option-based Marking Of A DHCP Packet | |
Ma et al. | Bayes-based ARP attack detection algorithm for cloud centers | |
Lu et al. | An SDN‐based authentication mechanism for securing neighbor discovery protocol in IPv6 | |
CN101827138A (zh) | 一种优化的ipv6过滤规则处理方法和设备 | |
Song et al. | Novel duplicate address detection with hash function | |
CN112929200A (zh) | 一种面向sdn多控制器的异常检测方法 | |
US10938721B2 (en) | Hash collision mitigation system | |
Rehman et al. | Rule-based mechanism to detect Denial of Service (DoS) attacks on Duplicate Address Detection process in IPv6 link local communication | |
US8893271B1 (en) | End node discovery and tracking in layer-2 of an internet protocol version 6 network | |
Song et al. | Using FDAD to prevent DAD attack in secure neighbor discovery protocol | |
CN108173980B (zh) | 一种sdn环境中的重复地址检测方法 | |
CN116388998A (zh) | 一种基于白名单的审计处理方法和装置 | |
Guangjia et al. | Using multi‐address generation and duplicate address detection to prevent DoS in IPv6 | |
Song et al. | A novel frame switching model based on virtual MAC in SDN | |
Machana et al. | Optimization of ipv6 neighbor discovery protocol | |
CN1822565A (zh) | 具有mac表溢出保护的网络 | |
CN110401646B (zh) | IPv6安全邻居发现过渡环境中CGA参数探测方法及装置 | |
El Ksimi et al. | A new IPv6 security approach for a local network |
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 |