CN108173980B - 一种sdn环境中的重复地址检测方法 - Google Patents

一种sdn环境中的重复地址检测方法 Download PDF

Info

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
Application number
CN201810048587.1A
Other languages
English (en)
Other versions
CN108173980A (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 CN201810048587.1A priority Critical patent/CN108173980B/zh
Publication of CN108173980A publication Critical patent/CN108173980A/zh
Application granted granted Critical
Publication of CN108173980B publication Critical patent/CN108173980B/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
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5046Resolving address allocation conflicts; Testing of addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-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环境中的重复地址检测方法
【技术领域】
本发明涉及计算机网络技术,具体涉及一种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
Figure GDA0002806875880000091
Figure GDA0002806875880000101
以上的具体实施方式仅为本创作的较佳实施例,并不用以限制本创作,凡在本创作的精神及原则之内所做的任何修改、等同替换、改进等,均应包含在本创作的保护范围之内。

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秒。
CN201810048587.1A 2018-01-18 2018-01-18 一种sdn环境中的重复地址检测方法 Active CN108173980B (zh)

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)

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

* Cited by examiner, † Cited by third party
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 新华三技术有限公司 一种邻居发现协议安全表项处理方法和装置

Patent Citations (2)

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

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