首页> 中国专利> 硬件访问控制列表的更新方法、更新装置和交换机

硬件访问控制列表的更新方法、更新装置和交换机

摘要

本发明公开了一种硬件访问控制列表的更新方法、更新装置和交换机。所述方法包括:当硬件访问控制列表中的ACL规则被写满时,向软件DHCPv6绑定表中的表项对应的主机节点发送至少一个邻居请求消息,同时为所述主机节点启动定时器;监听所述主机节点反馈的与所述至少一个邻居请求消息对应的至少一个邻居公告消息;如果在所述定时器定时截止前未接收到主机节点反馈的至少一个邻居公告消息,确定所述主机节点已经离线;当监测到主机节点离线时,将离线主机节点在硬件ACL表中对应的ACL规则删除。本发明提高了交换机ACL表的利用率,满足更多在线主机的接入要求。

著录项

  • 公开/公告号CN103561026A

    专利类型发明专利

  • 公开/公告日2014-02-05

    原文格式PDF

  • 申请/专利号CN201310538281.1

  • 发明设计人 梁小冰;向阳朝;陈翔;

    申请日2013-11-04

  • 分类号H04L29/06;H04L29/12;

  • 代理机构北京品源专利代理有限公司;

  • 代理人胡彬

  • 地址 100085 北京市海淀区上地九街9号数码科技广场一段三层A区

  • 入库时间 2024-02-19 22:36:00

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-03-15

    授权

    授权

  • 2014-03-12

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20131104

    实质审查的生效

  • 2014-02-05

    公开

    公开

说明书

技术领域

本发明涉及通信技术和计算机领域,尤其涉及一种硬件访问控制列表的更 新方法、更新装置和交换机。

背景技术

DHCPv6(Dynamic Host Configuration Protocol Version6,动态主机配 置协议,版本6)是一个局域网协议,使用UDP协议(User Datagram Protocol, 用户数据包协议)工作,主要有两个用途:(1)为内部网络或网络服务供应商 自动分配IPv6(Internet Protocol Version6,网际协议,版本6)地址给用 户;(2)方便内部网络管理员对所有计算机作中央管理。DHCPv6SNOOPING(DHCPv6 监听协议)是一种监听DHCPv6请求过程的私有协议,它在交换装置中使用,将 每一个成功获取IPv6地址的用户生成一个DHCPv6绑定信息。ACL(Access  Control List,访问控制列表)是一或多条规则的集合,用于识别报文流。这 里所指的规则是指描述报文匹配条件的判断语句,匹配条件可以是报文的源地 址、目的地址和端口号等。网络设备依照这些规则识别出特定的报文,并根据 预先设定的策略对其进行处理。

为了防止用户私自接入网络,便于网络的维护和管理,可结合DHCPv6 SNOOPING来实施接入控制策略,通过DHCPv6方式获取IPv6地址的主机可以访 问网络,而私设IPv6地址的主机将不允许访问网络。这种接入策略可以结合交 换机硬件ACL来实现,即:针对每一个合法的DHCPv6用户下发一条相对应的ACL 规则。但是,由于交换设备中的ACL表的容量有限,当DHCPv6绑定表项数目大 于设备的ACL规则数目时,一些DHCPv6绑定表项对应的ACL规则无法下发,则 这些DHCPv6用户无法访问网络,但是,交换设备无法保证所有ACL规则对应的 主机节点均在线,这就造成因为不在线主机占用ACL规则而使得在线主机无法 访问网络,交换机硬件ACL表利用率低。

发明内容

有鉴于此,本发明提供一种硬件访问控制列表的更新方法、更新装置和交 换机,以提高了交换机硬件ACL表的利用率,满足更多在线主机节点的接入要 求。

在第一方面,本发明实施例提供了一种硬件访问控制列表的更新方法,包 括:

当硬件ACL中的ACL规则被写满时,向软件DHCPv6绑定表中的表项对应的 主机节点发送至少一个邻居请求消息,同时为所述主机节点启动定时器,其中, 所述邻居请求消息的源地址为未指定地址,目的地址为所述主机节点的IPv6地 址对应的被请求节点组播地址,消息内容中包括所述主机节点的IPv6地址;

监听所述主机节点反馈的与所述至少一个邻居请求消息对应的至少一个邻 居公告消息;

如果在所述定时器定时截止前未接收到主机节点反馈的至少一个邻居公告 消息,确定所述主机节点已经离线;

当监测到主机节点离线时,将离线主机节点在硬件ACL表中对应的ACL规 则删除。

在第二方面,本发明实施例提供了一种硬件访问控制列表的更新装置,包 括:

请求消息发送单元,用于当硬件ACL中的ACL规则被写满时,向软件DHCPv6 绑定表中的表项对应的主机节点发送至少一个邻居请求消息,同时为所述主机 节点启动定时器,其中,所述邻居请求消息的源地址为未指定地址,目的地址 为所述主机节点的IPv6地址对应的被请求节点组播地址,消息内容中包括所述 主机节点的IPv6地址;

公告消息监听单元,用于监听所述主机节点反馈的与所述至少一个邻居请 求消息对应的至少一个邻居公告消息;

离线主机确定单元,用于如果在所述定时器定时截止前未接收到主机节点 反馈的至少一个邻居公告消息,确定所述主机节点已经离线;

ACL规则删除单元,用于当监测到主机节点离线时,将离线主机节点在硬件 ACL表中对应的ACL规则删除。

在第三方面,本发明提供了一种交换机,包括本发明任意实施例所提供的 硬件访问控制列表的更新装置。

本发明实施例提供的硬件访问控制列表的更新方法、更新装置和交换机, 在硬件ACL规则被写满后,通过向软件DHCPv6绑定表中的表项对应的主机节点 发送至少一个邻居请求消息,监听所述主机节点反馈的与所述至少一个邻居请 求消息对应的至少一个邻居公告消息的方式,检测硬件ACL表中记录的主机节 点是否在线,将不在线的主机节点从硬件ACL表中删除,为在线用户留出了更 多的硬件空间。提高了交换机硬件ACL表的利用率,满足了更多在线主机节点 的接入要求。

附图说明

图1是本发明第一实施例的一种硬件ACL的更新方法的流程图;

图2是本发明第二实施例的一种硬件ACL的更新方法的流程图;

图3是本发明第三实施例的一种硬件ACL的更新装置的结构图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明 具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅 仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描 述,附图中仅示出了与本发明相关的部分而非全部内容。

本发明实施例利用了重复地址检测技术,即:节点A发送邻居请求消息, 其中,该邻居请求消息的源地址是未指定地址(用::表示),目的地址是待检测 的IPv6(Internet Protocol Version6,互联网协议,版本号6)地址对应的 被请求节点组播地址,消息内容中包含了该待检测的IPv6地址。如果某个节点 B已经使用这个IPv6地址,则会返回邻居公告消息。其中包含了自己的IPv6地 址。节点A收到节点B发来的邻居公告消息,就知道该IPv6地址已被使用。反 之,则说明该地址未被使用,节点A就可使用此IPv6地址。本发明利用了重复 地址检测机制,只有当节点B当前在线的情况下,才会向节点A发送对应的邻 居公告消息,因此,交换机可以通过对IPv6地址进行重复地址检测的方式,获 取与该IPv6地址对应的主机是否在线。

第一实施例

图1是本发明第一实施例提供的一种ACL的更新方法的流程图,本实施例 的方法可以由硬件ACL的更新装置来执行,该装置可通过硬件和/或软件的方式 实现,一般可集成于三层交换机内。本实施例的方法具体包括如下步骤:

步骤110、当硬件ACL中的ACL规则被写满时,向软件DHCPv6绑定表中的 表项对应的主机节点发送至少一个邻居请求消息,同时为所述主机节点启动定 时器,其中,所述邻居请求消息的源地址为未指定地址,目的地址为所述主机 节点的IPv6地址对应的被请求节点组播地址,消息内容中包括所述主机节点的 IPv6地址。

在本实施例中,交换机查询自身存储的硬件ACL表,当该硬件ACL表中的 ACL规则被写满时,向软件DHCPv6绑定表中的表项对应的主机节点发送至少一 个邻居请求消息,进行重复地址检测。

在本实施例中,上述软件DHCPv6绑定表中包括与硬件ACL表中的ACL规则 相对应的主机节点信息。典型的,上述主机节点信息中包括:主机IPv6地址、 主机MAC(Media Access Control,介质访问控制层)地址、接入VLAN(Virtual  Local Area Network,虚拟局域网)号和接入端口号。

当然,本领域技术人员可以理解的是,主机节点信息中除了上述四元组数 据之外,还可以包括其他类型的数据,例如:数据包发送时间、有效生存期等, 对此并不限定。

在本实施例中,交换机可以向软件DHCPv6绑定表中的表项对应的主机发送 一个邻居请求消息,或者,连续向对应的主机发送预定多个邻居请求信息。

在本实施例中,定时器用于判断交换机是否能够在预定的时间内收到与发 送的邻居请求消息相对应的邻居公告消息。

步骤120、监听所述主机节点反馈的与所述至少一个邻居请求消息对应的至 少一个邻居公告消息。

在本实施例中,当交换机完成邻居请求消息的发送过程后,开始监听主机 节点反馈的与邻居请求信息对应的邻居公告消息。

步骤130、如果在所述定时器定时截止前未接收到主机节点反馈的至少一个 邻居公告消息,确定所述主机节点已经离线。

在本实施例中,当交换机为一个主机节点设定的定时周期内,收到该主机 节点反馈的至少一个邻居公告消息,确定该主机节点当前在线;当交换机为一 个主机节点设定的定时周期内,未收到该主机节点反馈的邻居公告信息,确定 该主机节点已经离线。

步骤140、当监测到主机节点离线时,将离线主机节点在硬件ACL表中对应 的ACL规则删除。

在本实施例中,交换机的硬件ACL表中存储有针对不同主机的ACL规则, 当交换机监测到一个主机节点离线时,将该离线主机节点在硬件ACL表中对应 的ACL规则删除。

本发明实施例提供的硬件访问控制列表的更新方法、更新装置和交换机, 在硬件ACL规则被写满后,通过向软件DHCPv6绑定表中的表项对应的主机节点 发送至少一个邻居请求消息,监听所述主机节点反馈的与所述至少一个邻居请 求消息对应的至少一个邻居公告消息的方式,检测硬件ACL表中记录的主机节 点是否在线,将不在线的主机节点从硬件ACL表中删除,为在线用户留出了更 多的硬件空间。提高了交换机硬件ACL表的利用率,满足了更多在线主机节点 的接入要求。

在上述实施例的基础上,所述的软件DHCPv6绑定表中还包括表项写入状态, 其中,所述表项写入状态包括:硬件写入状态和软件写入状态;所述当硬件访 问控制列表ACL中的ACL规则被写满时,向软件DHCPv6绑定表中的表项对应的 主机节点发送至少一个邻居请求消息具体包括:当硬件访问控制列表ACL中的 ACL规则被写满时,向软件DHCPv6绑定表中表项写入状态为硬件写入状态的表 项对应的主机节点发送至少一个邻居请求消息;所述当监测到主机节点离线时, 将离线主机节点在硬件ACL表中对应的ACL规则删除之后,还包括:将软件 DHCPv6绑定表中与离线主机节点对应的表项的写入状态修改为软件写入状态。

在本优选实施方式中,软件DHCPv6绑定表中的主机节点信息具体包括两种 写入状态:硬件写入状态和软件写入状态。其中,硬件写入状态代表该主机节 点信息在写入软件DHCPv6绑定表中的同时也被写入了交换机的硬件ACL表中; 软件写入状态代表该主机节点信息仅被写入软件DHCPv6绑定表中而没有被写入 交换机的硬件ACL表中。

这样设置的好处是:通过在软件DHCPv6绑定表中标注主机节点信息的写入 状态,可以在软件DHCPv6绑定表记录所有通过交换机转发数据包的主机节点信 息的基础上,只查询被写入硬件ACL表项的主机节点信息,节省了查询时间, 另外,避免了直接在ACL表中查找对应的主机进行检测时,影响其他数据包通 过硬件ACL表进行数据的转发。

在上述各实施例的基础上,所述方法还包括:监听主机节点的DHCPv6探听 过程,为监听到的主机节点在软件DHCPv6绑定表中创建表项;根据所述软件 DHCPv6绑定表项下发所述硬件ACL规则。

在本优选实施方式中,通过下发硬件ACL规则的方式,确保了软件DHCPv6 绑定表中包括硬件ACL表中全部硬件ACL规则对应的主机节点信息。

在本优选实施方式中,在软件DHCPv6绑定表项下发所述硬件ACL规则时, 交换机查询自身存储的硬件ACL表,当硬件ACL表中的ACL规则未被写满时, 下发相应的硬件ACL规则;当硬件ACL表中的ACL规则被写满时,触发执行步 骤110。

在上述各实施例的基础上,所述监听主机节点的DHCPv6探听过程,为监听 到的主机节点在软件DHCPv6绑定表中创建表项具体包括:获取网络中DHCPv6 请求报文;提取所述DHCPv6请求报文中的交换标识(Transaction-ID),作为 操作标识;当获取交换标识与所述操作标识相同的DHCPv6应答报文时,提取所 述DHCPv6应答报文中的主机信息,其中,所述主机信息包括主机MAC地址和IPv6 地址;查询MAC地址表,获取与所述主机MAC地址相对应的VLAN号和端口号; 将所述主机MAC地址、IPv6地址、VLAN号和端口号,作为一条绑定表项写入所 述软件DHCPv6绑定表中。

在本优选实施方式中,交换机的交换芯片在获取网络中的原始的DHCPv6交 互报文(请求报文和应答报文)后,将该原始DHCPv6交互报文复制一份(例如, 通过DHCPv6重定向的方式)传输至交换机的CPU后,将原始的DHCPv6交互报 文通过交换芯片转发出去。

第二实施例

图2为本发明第二实施例的一种硬件ACL的更新方法的流程图,本实施例 以上述实施例为基础进行优化,在本实施例中,在交换机根据软件DHCPv6绑定 表下发所述硬件ACL规则时,触发查询硬件ACL的操作。本实施例的方法具体 包括如下步骤:

步骤210、根据获取的DHCPv6交互报文生成主机节点信息,作为待绑定数 据。

步骤220、查询软件DHCPv6绑定表,判断待绑定数据的存储和写入状态: 当该待绑定数据存储于该DHCPv6绑定表中并且其写入状态为硬件写入时,执行 步骤230;当该待绑定数据未被存储在DHCPv6绑定表时,执行步骤240;当该 待绑定数据存储于该DHCPv6绑定表中并且其写入状态为软件写入时,执行步骤 250。

步骤230、丢弃待绑定数据。

在本实施例中,若待绑定数据已经被写入交换机硬件ACL表,将丢弃该待 绑定数据,对其不进行任何处理。

步骤240、将待绑定数据写入DHCPv6绑定表,将其状态标记为软件写入。

步骤250、查询硬件ACL表,判断该表是否被写满:若是,执行步骤260; 否则,执行步骤270。

步骤260、查找DHCPv6绑定表中状态为硬件写入的主机节点信息,获取IPv6 地址进行重复地址检测。

在本实施例中,步骤260可以为:遍历邻居表中的写入状态为硬件写入状 态的主机节点信息,获取各目标地址进行重复地址检测,将交换机硬件ACL表 中ACL规则对应的全部主机都进行是否在线的检测;也可以当判断出一个主机 不在线后,即停止剩下的主机的在线检测。

步骤270、将待绑定数据写入硬件ACL表,并将其在DHCPv6绑定表的状态 修改为硬件写入。

步骤280、判断是否存在未收到对应邻居公告消息IPv6地址:若是,执行 步骤290;否则,结束该流程。

在本实施例中,如果判断硬件ACL表中存储的ACL规则对应的主机全部在 线,则不将待绑定数据写入硬件ACL表中。

当然,本领域技术人员可以理解,当判断硬件ACL表中存储的ACL规则对 应的主机全部在线还可以采用其他的操作方式,例如:随机从硬件ACL表中删 除一条ACL规则或者将最早被写入硬件ACL表的ACL规则删除等,对此并不限 定。

步骤290、将IPv6地址对应ACL规则从ACL表中删除,并将该地址对应的 主机节点信息在ACL表中的状态修改为软件写入。

步骤2A0、将待绑定数据写入ACL表中,将其在DHCPv6绑定表中的写入状 态修改为硬件写入状态。

本发明实施例提供的硬件访问控制列表的更新方法、更新装置和交换机, 在硬件ACL规则被写满后,通过向软件DHCPv6绑定表中的表项对应的主机节点 发送至少一个邻居请求消息,监听所述主机节点反馈的与所述至少一个邻居请 求消息对应的至少一个邻居公告消息的方式,检测硬件ACL表中记录的主机节 点是否在线,将不在线的主机节点从硬件ACL表中删除,为在线用户留出了更 多的硬件空间。提高了交换机硬件ACL表的利用率,满足了更多在线主机节点 的接入要求。

在上述各实施例的基础上,所述获取IPv6地址进行重复地址检测包括:

根据该获取的目标地址构造邻居请求消息并发送,其中,该邻居请求消息 的源地址为未指定地址,目的地址为该获取的目标地址对应的被请求节点组播 地址,消息内容中包括该获取的目标地址。

举例而言,组播地址是把每个IPv6地址的后24位加入到FF02::1:FF/104 形成的,每个IPv6地址都会加入到各自相应的被请求节点的多播组,比如邻居 请求报文的目标地址(Target Address)为2001:410:0:1::1:a,对应的被请求 节点组播地址为FF02::1:FF01:000A。

第三实施例

在图3中示出了硬件ACL表项更新装置的结构图。如图3所示,所述装置 包括:

请求消息发送单元310,用于当硬件访问控制列表ACL中的ACL规则被写满 时,向软件动态主机配置协议DHCPv6绑定表中的表项对应的主机节点发送至少 一个邻居请求消息,同时为所述主机节点启动定时器,其中,所述邻居请求消 息的源地址为未指定地址,目的地址为所述主机节点的IPv6地址对应的被请求 节点组播地址,消息内容中包括所述主机节点的IPv6地址。

公告消息监听单元320,用于监听所述主机节点反馈的与所述至少一个邻居 请求消息对应的至少一个邻居公告消息。

离线主机确定单元330,用于如果在所述定时器定时截止前未接收到主机节 点反馈的至少一个邻居公告消息,确定所述主机节点已经离线。

ACL规则删除单元340,用于当监测到主机节点离线时,将离线主机节点在 硬件ACL表中对应的ACL规则删除。

本发明实施例提供的硬件访问控制列表的更新方法、更新装置和交换机, 在硬件ACL规则被写满后,通过向软件DHCPv6绑定表中的表项对应的主机节点 发送至少一个邻居请求消息,监听所述主机节点反馈的与所述至少一个邻居请 求消息对应的至少一个邻居公告消息的方式,检测硬件ACL表中记录的主机节 点是否在线,将不在线的主机节点从硬件ACL表中删除,为在线用户留出了更 多的硬件空间。提高了交换机硬件ACL表的利用率,满足了更多在线主机节点 的接入要求。

在上述各实施例的基础上,所述的软件DHCPv6绑定表中还包括表项写入状 态,其中,所述表项写入状态包括:硬件写入状态和软件写入状态;

所述请求消息发送单元具体用于:当硬件访问控制列表ACL中的ACL规则 被写满时,向软件DHCPv6绑定表中表项写入状态为硬件写入状态的表项对应的 主机节点发送至少一个邻居请求消息;

所述装置还包括,软件状态修改单元:用于将软件DHCPv6绑定表中与离线 主机节点对应的表项的写入状态修改为软件写入状态。

在上述各实施例的基础上,所述装置还包括:

软件表项创建子单元,用于监听主机节点的DHCPv6探听过程,为监听到的 主机节点在软件DHCPv6绑定表中创建表项;

软件表项下发子单元,用于根据所述软件DHCPv6绑定表项下发所述硬件ACL 规则。

在上述各实施例的基础上,所述软件表项创建子单元具体用于:

获取网络中DHCPv6请求报文;

提取所述DHCPv6请求报文中的交换标识,作为操作标识;

当获取交换标识与所述操作标识相同的DHCPv6应答报文时,提取所述 DHCPv6应答报文中的主机信息,其中,所述主机信息包括主机MAC地址和IPv6 地址;

查询MAC地址表,获取与所述主机MAC地址相对应的VLAN号和端口号;

将所述主机MAC地址、IPv6地址、VLAN号和端口号,作为一条绑定表项写 入所述软件DHCPv6绑定表中。

本发明实施例所提供的硬件ACL更新装置可以用于执行本发明任意实施例 提供的硬件ACL更新方法,具备相应的功能模块,达到同样的技术效果。

显然,本领域技术人员应该明白,本发明实施例可以用计算机装置可执行 的程序来实现,从而可以将它们存储在存储装置中由处理器来执行,所述的程 序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存 储器,磁盘或光盘等;或者将它们分别制作成各个集成电路模块,或者将它们 中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于 任何特定的硬件和软件的结合。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技 术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所 作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号