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

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

Info

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
Application number
CN201810048587.1A
Other languages
English (en)
Other versions
CN108173980B (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

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的集中控制,通过对OVS的轮询来辨别MAC地址的真实性,实现在软件定义网络SDN中,用于防止重复地址检测DAD过程中的拒绝服务DoS攻击,降低主机CPU资源消耗。

Description

一种SDN环境中的重复地址检测方法
【技术领域】
本发明涉及计算机网络技术,具体涉及一种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字段,黑名单格式如下表所示:
MAC地址 Switch ID Port No. Idle time Flag
Idle_time字段用于记录条目的空闲时间,每秒钟Idle_time数值加1,如果3分钟内该条目没有被匹配过,则将条目从黑名单中移除,条目每次被匹配到,则将Idle_time字段清零。
4.如权利要求1所述的一种SDN环境中的重复地址检测方法,其特征在于:所述的步骤六中,在每条数据创建时,都会增加一个Idle_time字段,黑名单格式如下表所示:
MAC地址 Switch ID Port No. Idle time Flag
Idle_time字段用于记录条目的空闲时间,每秒钟Idle_time数值加1,如果3分钟内该条目没有被匹配过,则将条目从黑名单中移除,条目每次被匹配到,则将Idle_time字段清零。
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 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)

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

Patent Citations (7)

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

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