CN103560968A - 交换机硬件主机路由表更新方法、装置和交换机 - Google Patents
交换机硬件主机路由表更新方法、装置和交换机 Download PDFInfo
- Publication number
- CN103560968A CN103560968A CN201310527039.4A CN201310527039A CN103560968A CN 103560968 A CN103560968 A CN 103560968A CN 201310527039 A CN201310527039 A CN 201310527039A CN 103560968 A CN103560968 A CN 103560968A
- Authority
- CN
- China
- Prior art keywords
- hardware
- routing table
- tuple
- main frame
- address
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种交换机硬件主机路由表更新方法、装置和交换机。所述方法包括:获取网络邻居公告,生成相应的四元组;查询邻居表,当该四元组未存储在邻居表时,将该四元组写入邻居表中,并将其状态标为软件写入;查询主机路由表,当主机路由表被写满时,检测与主机路由表中存储的路由表项对应的主机是否在线:若存在不在线的主机,将该不在线主机对应的路由表项从主机路由表中删除,并将该主机对应的四元组数据在软件邻居表中的状态修改为软件写入,将操作四元组写入硬件主机路由表中,将其在软件邻居表中的状态修改为硬件写入。本发明提高了交换机主机路由表项的利用率,实现了尽可能多的在线主机流量的硬件转发,提高了转发效率。
Description
技术领域
本发明涉及通信技术和计算机领域,尤其涉及一种交换机硬件主机路由表更新方法、更新装置和交换机。
背景技术
随着数据通信中交换技术的不断提高,芯片厂商开发了具有三层交换能力的交换芯片,具有三层交换功能的设备已经广泛应用,三层交换设备能够跨VLAN(Virtual Local Area Network,虚拟局域网)线速转发IPv4(Internet ProtocolVersion 4,互联网协议,版本号4)和IPv6(Internet Protocol Version 6,互联网协议,版本号6)报文,这是二层交换设备不具有的优势。
三层交换设备在交换芯片中包含IPv6主机路由表项,IPv6主机路由表项一般指的是128位的目的IPv6地址的路由表项(如2001::1下一跳),其中,下一跳信息中包括通往目的IPv6地址的网关地址、网关地址所在的VLAN号,端口号以及网关的MAC(Media Access Control,介质访问控制层)地址等信息。在现有技术中,IPv6主机路由表项一般通过IPv6邻居表项生成并下发到交换芯片中构成的硬件主机路由表,通过硬件路由进行转发时,不需要经过CPU(中央处理器)处理,提高了转发效率。
但是,三层交换设备IPv6主机路由表项容量有限,因此,当IPv6邻居表项数目大于设备的IPv6主机路由表项时,一些IPv6邻居表项无法下发,则跨VLAN到达这些IPv6邻居表项对应的IP主机流量将无法通过硬件直接转发,降低了数据包的转发效率。
发明内容
有鉴于此,本发明提供一种交换机硬件主机路由表更新方法、更新装置和交换机,以提高交换机的数据包转发效率。
在第一方面,本发明实施例提供了一种交换机硬件主机路由表更新方法,包括:
S1、获取网络中的邻居公告消息;
S2、根据所述邻居公告消息中的源MAC地址、目标地址、VLAN号和端口号,生成相应的IPv6四元组数据,作为操作四元组;
S3、查询IPv6软件邻居表,当所述操作四元组未存储在所述IPv6软件邻居表时,将所述操作四元组写入所述IPv6软件邻居表中,并将所述操作四元组的写入状态标记为软件写入状态,执行步骤S4;当所述操作四元组存储在所述IPv6软件邻居表并且所述操作四元组的写入状态为软件写入状态时,执行步骤S4;
S4、查询交换机硬件主机路由表,当硬件主机路由表被写满时,检测与硬件主机路由表中存储的路由表项对应的主机是否在线:当存在不在线的主机时,将所述不在线的主机对应的路由表项从所述硬件主机路由表中删除,并将所述不在线的主机对应的四元组数据在所述IPv6软件邻居表中的写入状态修改为软件写入状态,将所述操作四元组按照路由表项的形式写入硬件主机路由表中,将所述操作四元组在所述IPv6软件邻居表中的写入状态修改为硬件写入状态。
在第一种可能的实现方式中,所述硬件主机路由表中存储的路由表项包括:主机IPv6单播地址以及下一跳消息,其中,所述下一跳消息中包括:目的MAC地址、出端口号和出VLAN号;
所述将操作四元组按照路由表项的形式写入硬件主机路由表中,包括:
将所述操作四元组中的目标地址作为主机IPv6单播地址写入所述硬件主机路由表中;
将所述操作四元组中的源MAC地址、VLAN号和端口号,作为目的MAC地址、出端口号和出VLAN号写入所述硬件主机路由表中。
进一步的,所述当硬件主机路由表被写满时,检测与硬件主机路由表中存储的路由表项对应的主机是否在线,包括:
查找所述IPv6软件邻居表中写入状态为硬件写入的四元组数据,获取目标地址进行重复地址检测;
当存在未收到对应的邻居公告消息的目标地址时,判断硬件主机路由表中与所述未收到对应的邻居公告消息的目标地址相符合的路由表项对应的主机不在线。
进一步的,所述查找所述IPv6软件邻居表中写入状态为硬件写入的四元组数据,获取目标地址进行重复地址检测,包括:
遍历所述IPv6软件邻居表中写入状态为硬件写入的四元组数据,获取各所述写入状态为硬件写入的四元组数据的目标地址进行重复地址检测。
进一步的,所述获取目标地址进行重复地址检测,包括:
根据所述获取的目标地址构造邻居请求消息并发送,其中,所述邻居请求消息的源地址为未指定地址,目的地址为所述获取的目标地址对应的被请求节点组播地址,消息内容中包括所述获取的目标地址;
接收与发送的邻居请求消息相对应的邻居公告消息。
第二方面,本发明实施例提供了一种交换机硬件主机路由表更新装置,包括:
消息获取单元,用于获取网络中的邻居公告消息;
四元组数据生成单元,用于根据所述邻居公告消息中的源MAC地址、目标地址、VLAN号和端口号,生成相应的IPv6四元组数据,作为操作四元组;
软件邻居表查询和写入单元,用于查询IPv6软件邻居表,当所述操作四元组未存储在所述IPv6软件邻居表时,将所述操作四元组写入所述IPv6软件邻居表中,并将所述操作四元组的写入状态标记为软件写入状态,触发硬件路由表查询单元;当所述操作四元组存储在所述IPv6软件邻居表并且所述操作四元组的写入状态为软件写入状态时,触发硬件路由表查询单元;
硬件路由表查询单元,用于查询交换机硬件主机路由表,当硬件主机路由表被写满时,检测与硬件主机路由表中存储的路由表项对应的主机是否在线:当存在不在线的主机时,将所述不在线的主机对应的路由表项从所述硬件主机路由表中删除,并将所述不在线的主机对应的四元组数据在所述IPv6软件邻居表中的写入状态修改为软件写入状态,触发硬件路由表写入单元;
硬件路由表写入单元,用于将所述操作四元组按照路由表项的形式写入硬件主机路由表中,将所述操作四元组在所述IPv6软件邻居表中的写入状态修改为硬件写入状态。
在第一种可能的实现方式中,所述硬件主机路由表中存储的路由表项包括:主机IPv6单播地址以及下一跳消息,其中,所述下一跳消息中包括:目的MAC地址、出端口号和出VLAN号;
所述硬件路由表写入单元用于:
将所述操作四元组中的目标地址作为主机IPv6单播地址写入所述硬件主机路由表中;
将所述操作四元组中的源MAC地址、VLAN号和端口号,作为目的MAC地址、出端口号和出VLAN号写入所述硬件主机路由表中。
进一步的,所述硬件路由表查询单元包括:
检测子单元,用于查找所述IPv6软件邻居表中写入状态为硬件写入的四元组数据,获取目标地址进行重复地址检测;
判断子单元,用于当存在未收到对应的邻居公告消息的目标地址时,判断硬件主机路由表中与所述未收到对应的邻居公告消息的目标地址相符合的路由表项对应的主机不在线。
进一步的,所述检测子单元具体用于:
遍历所述IPv6软件邻居表中写入状态为硬件写入的四元组数据,获取各所述写入状态为硬件写入的四元组数据的目标地址进行重复地址检测。
进一步的,所述检测子单元具体用于:
根据所述获取的目标地址构造邻居请求消息并发送,其中,所述邻居请求消息的源地址为未指定地址,目的地址为所述获取的目标地址对应的被请求节点组播地址,消息内容中包括所述获取的目标地址;
接收与发送的邻居请求消息相对应的邻居公告消息。
在第三方面,本发明实施例提供了一种交换机,包括所述的交换机硬件主机路由表更新装置。
本发明实施例提供的交换机硬件主机路由表更新方法、更新装置和交换机,通过获取网络中的邻居公告消息生成邻居表,并将新的邻居表项写入交换机的主机路由表项,实现了跨VLAN的主机之间的硬件数据转发,在交换机的主机路由表项写满后,通过检测主机路由表项中记录的主机是否在线,将不在线的主机从IPv6主机路由表项中删除,为在线用户留出了更多的硬件表项空间。提高了交换机IPv6主机路由表项的利用率,实现了尽可能多的在线IPv6主机流量的硬件转发,提高了转发效率。
附图说明
图1是本发明第一实施例提供的一种交换机硬件主机路由表更新方法的流程图;
图2是本发明第二实施例提供的一种交换机硬件主机路由表更新方法的流程图;
图3是本发明第三实施例提供的一种交换机硬件主机路由表更新装置的结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
对于一个三层交换机来说,当一个IP报文进入三层硬件芯片后,硬件芯片在检测目的IP地址后,首先查询交换机硬件主机路由表,如果匹配,则通过硬件主机路由进行转发,不需要CPU的处理。硬件主机路由表中有通往目的IP地址的网关地址、网关地址所在的VLAN号、端口号、网关的MAC地址等信息,IP数据包成功转发出去;如果没有匹配到硬件主机路由表,交换机会查询软件主机路由表或者软件路由表,通过软件主机路由表或者软件路由表进行转发,此时,需要CPU的处理,转发速度低于直接通过硬件主机路由表转发的速度。
第一实施例
图1是本发明第一实施例提供的一种交换机硬件主机路由表更新方法的流程图,本实施例的方法可以由交换机硬件主机路由表的更新装置来执行,该装置可通过硬件和/或软件的方式实现,一般可集成于三层交换机内。本实施例的方法具体包括如下步骤:
步骤110、获取网络中的邻居公告消息。
在本实施例中,交换机配置IPv6邻居监听功能后,可以用来获取网络中的邻居请求消息(Neighbor Solicitation,NS)和邻居公告消息(NeighborAdvertisement,NA)。其中,邻居请求消息是指节点发送邻居请求消息来请求邻居的链路层地址(MAC地址),以验证它先前所获得并保存在缓存中的邻居链路层地址的可达性,或者验证它自己的地址在本地链路上是否是惟一的;邻居公告消息是邻居请求消息的响应,邻居公告消息中包括公告消息发送节点的IP地址及链路层地址。
在本实施例中,交换机的交换芯片在获取网络中的原始邻居公告消息后,将该原始邻居公告消息复制一份后传输至交换机的CPU后,将原始的邻居公告消息通过交换芯片转发出去。
步骤120、根据所述邻居公告消息中的源MAC地址、目标地址、VLAN号和端口号,生成相应的IPv6四元组数据,作为操作四元组。
在本实施例中,交换机CPU根据所述邻居公告消息中的源MAC地址、目标地址、VLAN号和端口号,生成相应的IPv6四元组数据,作为操作四元组。
其中,上述邻居公告消息中的源MAC地址、目标地址、VLAN号和端口号具体为发送该邻居公告消息的主机对应的IPv6地址、MAC地址,所在VLAN的VLAN号,所连交换机端口的端口号。
其中,当交换机接收到目的IPv6地址为所述目标地址的数据包时,可以根据与该目标地址相对应的四元组数据中的MAC地址,VLAN号和端口号将该数据包转发至相应的主机。
步骤130、查询IPv6软件邻居表,当所述操作四元组未存储在所述IPv6软件邻居表时,将所述操作四元组写入所述IPv6软件邻居表中,并将所述操作四元组的写入状态标记为软件写入状态,执行步骤140;当所述操作四元组存储在所述IPv6软件邻居表并且所述操作四元组的写入状态为软件写入状态时,执行步骤140。
在本实施例中,通过上述四元组数据可以唯一确定与该交换机相连(有线或者无线)的主机的位置,因此,可以将上述四元组数据作为交换机的一条邻居表项存储于交换机的软件邻居表中。
在本实施例中,IPv6软件邻居表中的四元组数据具体包括两种状态:硬件写入状态和软件写入状态。其中,硬件写入状态代表该四元组数据在写入IPv6软件邻居表中的同时也被写入了交换机的硬件主机路由表中;软件写入状态代表该四元组数据仅被写入IPv6软件邻居表中而没有被写入交换机的硬件主机路由表中。
在本实施例中,当生成的操作四元组存储于IPv6软件邻居表并且其写入状态为硬件写入状态时,可以直接将该操作四元组丢弃或者将该四元组数据重新写入IPv6软件邻居表中并更新写入时间等,对此并不限定。
步骤140、查询交换机硬件主机路由表,当硬件主机路由表被写满时,检测与硬件主机路由表中存储的路由表项对应的主机是否在线:当存在不在线的主机时,将所述不在线的主机对应的路由表项从所述硬件主机路由表中删除,并将所述不在线的主机对应的四元组数据在所述IPv6软件邻居表中的写入状态修改为软件写入状态,将所述操作四元组按照路由表项的形式写入硬件主机路由表中,将所述操作四元组在所述IPv6软件邻居表中的写入状态修改为硬件写入状态。
在本实施例中,交换机CPU查询交换机硬件主机路由表,当硬件主机路由表未被写满时,可以直接将操作四元组写入该硬件主机路由表中;当硬件主机路由表被写满时,交换机CPU查找当前不在线的主机,将当前不在线的主机对应的路由表项从交换机硬件主机路由表中删除后,将操作四元组写入该硬件主机路由表中。
在本实施例的一个优选的实施方式中,硬件主机路由表中存储的路由表项具体包括:主机IPv6单播地址以及下一跳消息,其中,所述下一跳消息中包括:目的MAC地址、出端口号和出VLAN号。
将操作四元组按照路由表项的形式写入所述硬件主机路由表中具体包括:
将所述操作四元组中的目标地址作为主机IPv6单播地址写入所述硬件主机路由表中;
将所述操作四元组中的源MAC地址、VLAN号和端口号,作为目的MAC地址、出端口号和出VLAN号写入所述硬件主机路由表中。
在本实施例中,可以通过Ping的方式向硬件主机路由表中的路由表项对应的主机发送ICMP(Internet Control Messages Protocol,因特网信报控制协议),根据接收的ICMP回声包判断该主机是否在线;或者通过是否能够定期接收主机发送心跳包判断主机是否在线;或者通过重复地址检测的方式判断主机是否在线。
当然,本领域技术人员可以理解,还可以采取其他方式判断与交换机相连的主机是否在线,对此并不限定。
本实施例的技术方案通过获取网络中的邻居公告消息生成邻居表,并将新的邻居表项写入交换机的主机路由表项,实现了跨VLAN的主机之间的硬件数据转发,在交换机的主机路由表项写满后,通过检测主机路由表项中记录的主机是否在线,将不在线的主机从IPv6主机路由表项中删除,为在线用户留出了更多的硬件表项空间。提高了交换机IPv6主机路由表项的利用率,实现了尽可能多的在线IPv6主机流量的硬件转发,提高了转发效率。
第二实施例
图2为本发明第二实施例的一种交换机硬件路由表更新方法的流程图,本实施例以上述实施例为基础进行优化,在本实施例中,优选的将步骤检测与硬件主机路由表中存储的路由表项对应的主机是否在线优化为:查找所述IPv6软件邻居表中写入状态为硬件写入的四元组数据,获取目标地址进行重复地址检测:当存在未收到对应的邻居公告消息的目标地址时,判断硬件主机路由表中与该目标地址相符合的路由表项对应的主机不在线。
重复地址检测具体是指:节点A发送邻居请求消息,其中,该邻居请求消息的源地址是未指定地址(用::表示),目的地址是待检测的IPv6地址对应的被请求节点组播地址,消息内容中包含了该待检测的IPv6地址。如果某个节点B已经使用这个IPv6地址,则会返回邻居公告消息。其中包含了自己的IPv6地址。节点A收到节点B发来的NA消息,就知道该IPv6地址已被使用。反之,则说明该地址未被使用,节点A就可使用此IPv6地址。
由此可知,只有当节点B当前在线的情况下,才会向节点A发送对应的邻居公告消息,因此,交换机可以通过对IPv6地址进行重复地址检测的方式,获取与该IPv6地址对应的主机是否在线。
另外,为了避免直接在硬件主机路由表中查找对应的主机进行检测时,影响其他数据包通过硬件主机路由表进行数据的转发,可以通过查找IPv6软件邻居表中写入状态为硬件写入的四元组数据,其与硬件主机路由表中存储的路由表项一一对应。
相应地,本实施例的方法具体包括如下步骤:
步骤210、获取网络中的邻居公告消息。
步骤220、根据邻居公告消息,生成相应的四元组数据,作为操作四元组。
步骤230、查询软件邻居表,判断操作四元组的写入状态:当该操作四元组未被存储在软件邻居表中时,执行步骤250;当该操作四元组存储于该软件邻居表中并且其写入状态为硬件写入时,执行步骤240;当该操作资源组存储于该软件邻居表中并且其写入状态为软件写入时,执行步骤260。
步骤240、丢弃操作四元组。
在本实施例中,若操作四元组已经被写入交换机硬件主机路由表,将丢弃操作四元组,对其不进行任何处理。
步骤250、将操作四元组写入软件邻居表中,并将其写入状态标记为软件写入状态。
步骤260、查询硬件主机路由表,判断该表是否被写满:若是,执行步骤270;否则,执行步骤280。
步骤270、查找邻居表中状态为硬件写入四元组数据,获取目标地址进行重复地址检测。
在本实施例中,步骤270可以为:遍历邻居表中的写入状态为硬件写入状态的四元组数据,获取各目标地址进行重复地址检测,将存储于交换机硬件路由表中的路由表项对应的全部主机都进行是否在线的检测;也可以当判断出一个主机不在线后,即停止剩下的主机的在线检测。
步骤280、将操作四元组写入硬件主机路由表中,并将其在邻居表中写入状态修改为硬件写入状态。
步骤290、判断是否存在未收到对应的邻居公告消息的目标地址:若是,执行步骤2A0;否则,结束该流程。
在本实施例中,如果判断硬件主机路由表中存储的路由表项对应的主机全部在线,则不将操作四元组写入硬件主机路由表中。
当然,本领域技术人员可以理解,当判断硬件主机路由表中存储的路由表项对应的主机全部在线还可以采用其他的操作方式,例如:随机从硬件主机路由表中删除一条路由表项或者将最早被写入硬件主机路由表项的路由条目删除等,对此并不限定。
步骤2A0、将未收到对应的邻居公告消息的目标地址对应的路由表项从路由表中删除,并将该地址对应的四元组数据在邻居表中的状态修改为软件写入状态。
步骤2B0、将操作四元组按照路由表项的形式写入路由表中,将其在邻居表中的写入状态修改为硬件写入状态。
本实施例的技术方案通过获取网络中的邻居公告消息生成邻居表,并将新的邻居表项写入交换机的主机路由表项,实现了跨VLAN的主机之间的硬件数据转发,在交换机的主机路由表项写满后,通过检测主机路由表项中记录的主机是否在线,将不在线的主机从IPv6主机路由表项中删除,为在线用户留出了更多的硬件表项空间。提高了交换机IPv6主机路由表项的利用率,实现了尽可能多的在线IPv6主机流量的硬件转发,提高了转发效率。
在上述各实施例的基础上,所述获取目标地址进行重复地址检测包括:
根据该获取的目标地址构造邻居请求消息并发送,其中,该邻居请求消息的源地址为未指定地址,目的地址为该获取的目标地址对应的被请求节点组播地址,消息内容中包括该获取的目标地址。
举例而言,组播地址是把每个IPv6地址的后24位加入到FF02::1:FF/104形成的,每个IPv6地址都会加入到各自相应的被请求节点的多播组,比如邻居请求报文的目标地址(Target Address)为2001:410:0:1::1:a,对应的被请求节点组播地址为FF02::1:FF01:000A。
第三实施例
在图3中示出了交换机硬件路由表更新装置的结构图。如图3所示,所述装置包括:
消息获取单元31,用于获取网络中的邻居公告消息。
四元组数据生成单元32,用于根据所述邻居公告消息中的源MAC地址、目标地址、VLAN号和端口号,生成相应的IPv6四元组数据,作为操作四元组;
软件邻居表查询和写入单元33,用于查询IPv6软件邻居表,当所述操作四元组未存储在所述IPv6软件邻居表时,将所述操作四元组写入所述IPv6软件邻居表中,并将所述操作四元组的写入状态标记为软件写入状态,触发硬件路由表查询单元34;当所述操作四元组存储在所述IPv6软件邻居表并且所述操作四元组的写入状态为软件写入状态时,触发硬件路由表查询单元34。
硬件路由表查询单元34,用于查询交换机硬件主机路由表,当硬件主机路由表被写满时,检测与硬件主机路由表中存储的路由表项对应的主机是否在线:当存在不在线的主机时,将所述不在线的主机对应的路由表项从所述硬件主机路由表中删除,并将所述不在线的主机对应的四元组数据在所述IPv6软件邻居表中的写入状态修改为软件写入状态,触发硬件路由表写入单元35。
硬件路由表写入单元35,用于将所述操作四元组按照路由表项的形式写入硬件主机路由表中,将所述操作四元组在所述IPv6软件邻居表中的写入状态修改为硬件写入状态。
本实施例的技术方案通过获取网络中的邻居公告消息生成邻居表,并将新的邻居表项写入交换机的主机路由表项,实现了跨VLAN的主机之间的硬件数据转发,在交换机的主机路由表项写满后,通过检测主机路由表项中记录的主机是否在线,将不在线的主机从IPv6主机路由表项中删除,为在线用户留出了更多的硬件表项空间。提高了交换机IPv6主机路由表项的利用率,实现了尽可能多的在线IPv6主机流量的硬件转发,提高了转发效率。
在上述各实施例的基础上,所述硬件主机路由表中存储的路由表项包括:主机IPv6单播地址以及下一跳消息,其中,所述下一跳消息中包括:目的MAC地址、出端口号和出VLAN号;
所述硬件路由表写入单元用于:
将所述操作四元组中的目标地址作为主机IPv6单播地址写入所述硬件主机路由表中;
将所述操作四元组中的源MAC地址、VLAN号和端口号,作为目的MAC地址、出端口号和出VLAN号写入所述硬件主机路由表中。
在上述各实施例的基础上,所述硬件路由表查询单元包括:
检测子单元,用于查找所述IPv6软件邻居表中写入状态为硬件写入的四元组数据,获取目标地址进行重复地址检测;
判断子单元,用于当存在未收到对应的邻居公告消息的目标地址时,判断硬件主机路由表中与所述未收到对应的邻居公告消息的目标地址相符合的路由表项对应的主机不在线。
在上述各实施例的基础上,所述检测子单元具体用于:
遍历所述IPv6软件邻居表中写入状态为硬件写入的四元组数据,获取各所述写入状态为硬件写入的四元组数据的目标地址进行重复地址检测。
在上述各实施例的基础上,所述检测子单元具体用于:
根据所述获取的目标地址构造邻居请求消息并发送,其中,所述邻居请求消息的源地址为未指定地址,目的地址为所述获取的目标地址对应的被请求节点组播地址,消息内容中包括所述获取的目标地址;
接收与发送的邻居请求消息相对应的邻居公告消息。
本发明实施例所提供的交换机硬件路由表更新装置可以用于执行本发明任意实施例提供的交换机硬件路由表更新方法,具备相应的功能模块,达到同样的技术效果。
显然,本领域技术人员应该明白,本发明实施例可以用计算机装置可执行的程序来实现,从而可以将它们存储在存储装置中由处理器来执行,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等;或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种交换机硬件主机路由表更新方法,其特征在于,包括:
S1、获取网络中的邻居公告消息;
S2、根据所述邻居公告消息中的源MAC地址、目标地址、VLAN号和端口号,生成相应的IPv6四元组数据,作为操作四元组;
S3、查询IPv6软件邻居表,当所述操作四元组未存储在所述IPv6软件邻居表时,将所述操作四元组写入所述IPv6软件邻居表中,并将所述操作四元组的写入状态标记为软件写入状态,执行步骤S4;当所述操作四元组存储在所述IPv6软件邻居表并且所述操作四元组的写入状态为软件写入状态时,执行步骤S4;
S4、查询交换机硬件主机路由表,当硬件主机路由表被写满时,检测与硬件主机路由表中存储的路由表项对应的主机是否在线:当存在不在线的主机时,将所述不在线的主机对应的路由表项从所述硬件主机路由表中删除,并将所述不在线的主机对应的四元组数据在所述IPv6软件邻居表中的写入状态修改为软件写入状态,将所述操作四元组按照路由表项的形式写入硬件主机路由表中,将所述操作四元组在所述IPv6软件邻居表中的写入状态修改为硬件写入状态。
2.根据权利要求1所述的交换机硬件主机路由表更新方法,其特征在于,所述硬件主机路由表中存储的路由表项包括:主机IPv6单播地址以及下一跳消息,其中,所述下一跳消息中包括:目的MAC地址、出端口号和出VLAN号;
所述将操作四元组按照路由表项的形式写入硬件主机路由表中,包括:
将所述操作四元组中的目标地址作为主机IPv6单播地址写入所述硬件主机路由表中;
将所述操作四元组中的源MAC地址、VLAN号和端口号,作为目的MAC地址、出端口号和出VLAN号写入所述硬件主机路由表中。
3.根据权利要求2所述的交换机硬件主机路由表更新方法,其特征在于,所述当硬件主机路由表被写满时,检测与硬件主机路由表中存储的路由表项对应的主机是否在线,包括:
查找所述IPv6软件邻居表中写入状态为硬件写入的四元组数据,获取目标地址进行重复地址检测;
当存在未收到对应的邻居公告消息的目标地址时,判断硬件主机路由表中与所述未收到对应的邻居公告消息的目标地址相符合的路由表项对应的主机不在线。
4.根据权利要求3所述的交换机硬件主机路由表更新方法,其特征在于,所述查找所述IPv6软件邻居表中写入状态为硬件写入的四元组数据,获取目标地址进行重复地址检测,包括:
遍历所述IPv6软件邻居表中写入状态为硬件写入的四元组数据,获取各所述写入状态为硬件写入的四元组数据的目标地址进行重复地址检测。
5.根据权利要求3或4所述的交换机硬件主机路由表更新方法,其特征在于,所述获取目标地址进行重复地址检测,包括:
根据所述获取的目标地址构造邻居请求消息并发送,其中,所述邻居请求消息的源地址为未指定地址,目的地址为所述获取的目标地址对应的被请求节点组播地址,消息内容中包括所述获取的目标地址;
接收与发送的邻居请求消息相对应的邻居公告消息。
6.一种交换机硬件主机路由表更新装置,其特征在于,包括:
消息获取单元,用于获取网络中的邻居公告消息;
四元组数据生成单元,用于根据所述邻居公告消息中的源MAC地址、目标地址、VLAN号和端口号,生成相应的IPv6四元组数据,作为操作四元组;
软件邻居表查询和写入单元,用于查询IPv6软件邻居表,当所述操作四元组未存储在所述IPv6软件邻居表时,将所述操作四元组写入所述IPv6软件邻居表中,并将所述操作四元组的写入状态标记为软件写入状态,触发硬件路由表查询单元;当所述操作四元组存储在所述IPv6软件邻居表并且所述操作四元组的写入状态为软件写入状态时,触发硬件路由表查询单元;
硬件路由表查询单元,用于查询交换机硬件主机路由表,当硬件主机路由表被写满时,检测与硬件主机路由表中存储的路由表项对应的主机是否在线:当存在不在线的主机时,将所述不在线的主机对应的路由表项从所述硬件主机路由表中删除,并将所述不在线的主机对应的四元组数据在所述IPv6软件邻居表中的写入状态修改为软件写入状态,触发硬件路由表写入单元;
硬件路由表写入单元,用于将所述操作四元组按照路由表项的形式写入硬件主机路由表中,将所述操作四元组在所述IPv6软件邻居表中的写入状态修改为硬件写入状态。
7.根据权利要求6所述的交换机硬件主机路由表更新装置,其特征在于,所述硬件主机路由表中存储的路由表项包括:主机IPv6单播地址以及下一跳消息,其中,所述下一跳消息中包括:目的MAC地址、出端口号和出VLAN号;
所述硬件路由表写入单元用于:
将所述操作四元组中的目标地址作为主机IPv6单播地址写入所述硬件主机路由表中;
将所述操作四元组中的源MAC地址、VLAN号和端口号,作为目的MAC地址、出端口号和出VLAN号写入所述硬件主机路由表中。
8.根据权利要求7所述的交换机硬件主机路由表更新装置,其特征在于,所述硬件路由表查询单元包括:
检测子单元,用于查找所述IPv6软件邻居表中写入状态为硬件写入的四元组数据,获取目标地址进行重复地址检测;
判断子单元,用于当存在未收到对应的邻居公告消息的目标地址时,判断硬件主机路由表中与所述未收到对应的邻居公告消息的目标地址相符合的路由表项对应的主机不在线。
9.根据权利要求8所述的交换机硬件主机路由表更新装置,其特征在于,所述检测子单元具体用于:
遍历所述IPv6软件邻居表中写入状态为硬件写入的四元组数据,获取各所述写入状态为硬件写入的四元组数据的目标地址进行重复地址检测。
10.根据权利要求8或9所述的交换机硬件主机路由表更新装置,其特征在于,所述检测子单元具体用于:
根据所述获取的目标地址构造邻居请求消息并发送,其中,所述邻居请求消息的源地址为未指定地址,目的地址为所述获取的目标地址对应的被请求节点组播地址,消息内容中包括所述获取的目标地址;
接收与发送的邻居请求消息相对应的邻居公告消息。
11.一种交换机,包括权利要求6-10任一所述的交换机硬件主机路由表更新装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310527039.4A CN103560968B (zh) | 2013-10-30 | 2013-10-30 | 交换机硬件主机路由表更新方法、装置和交换机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310527039.4A CN103560968B (zh) | 2013-10-30 | 2013-10-30 | 交换机硬件主机路由表更新方法、装置和交换机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103560968A true CN103560968A (zh) | 2014-02-05 |
CN103560968B CN103560968B (zh) | 2017-01-11 |
Family
ID=50015120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310527039.4A Active CN103560968B (zh) | 2013-10-30 | 2013-10-30 | 交换机硬件主机路由表更新方法、装置和交换机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103560968B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107317755A (zh) * | 2017-08-23 | 2017-11-03 | 普联技术有限公司 | 一种硬件转发表项纠错方法、装置及计算机可读存储介质 |
CN107659503A (zh) * | 2016-07-25 | 2018-02-02 | 中国电信股份有限公司 | 用于资源受限网络的业务保护方法及系统 |
CN108259347A (zh) * | 2017-05-19 | 2018-07-06 | 新华三技术有限公司 | 一种报文传输方法和装置 |
CN110138819A (zh) * | 2018-02-02 | 2019-08-16 | 思锐科技股份有限公司 | 网络交换机的主机状态检测方法与系统 |
CN116094998A (zh) * | 2022-12-29 | 2023-05-09 | 天翼云科技有限公司 | 一种基于ovs的邻居表项的vxlan报文的转发方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030185221A1 (en) * | 2002-03-29 | 2003-10-02 | Alan Deikman | Network controller with shadowing of software routing tables to hardware routing tables |
US20090172156A1 (en) * | 2007-12-29 | 2009-07-02 | Cisco Technology, Inc. | Address security in a routed access network |
CN101841483A (zh) * | 2010-05-06 | 2010-09-22 | 北京星网锐捷网络技术有限公司 | 硬件路由表管理方法、装置和通讯设备 |
CN102546428A (zh) * | 2012-02-03 | 2012-07-04 | 神州数码网络(北京)有限公司 | 基于DHCPv6侦听的IPv6报文交换系统及方法 |
CN102571592A (zh) * | 2012-01-18 | 2012-07-11 | 神州数码网络(北京)有限公司 | 具有端口绑定功能的三层交换设备和数据报文转发方法 |
-
2013
- 2013-10-30 CN CN201310527039.4A patent/CN103560968B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030185221A1 (en) * | 2002-03-29 | 2003-10-02 | Alan Deikman | Network controller with shadowing of software routing tables to hardware routing tables |
US20090172156A1 (en) * | 2007-12-29 | 2009-07-02 | Cisco Technology, Inc. | Address security in a routed access network |
CN101841483A (zh) * | 2010-05-06 | 2010-09-22 | 北京星网锐捷网络技术有限公司 | 硬件路由表管理方法、装置和通讯设备 |
CN102571592A (zh) * | 2012-01-18 | 2012-07-11 | 神州数码网络(北京)有限公司 | 具有端口绑定功能的三层交换设备和数据报文转发方法 |
CN102546428A (zh) * | 2012-02-03 | 2012-07-04 | 神州数码网络(北京)有限公司 | 基于DHCPv6侦听的IPv6报文交换系统及方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107659503A (zh) * | 2016-07-25 | 2018-02-02 | 中国电信股份有限公司 | 用于资源受限网络的业务保护方法及系统 |
CN107659503B (zh) * | 2016-07-25 | 2020-07-07 | 中国电信股份有限公司 | 用于资源受限网络的业务保护方法及系统 |
CN108259347A (zh) * | 2017-05-19 | 2018-07-06 | 新华三技术有限公司 | 一种报文传输方法和装置 |
WO2018210094A1 (zh) * | 2017-05-19 | 2018-11-22 | 新华三技术有限公司 | 报文传输方法、边缘设备及机器可读存储介质 |
CN108259347B (zh) * | 2017-05-19 | 2020-01-03 | 新华三技术有限公司 | 一种报文传输方法和装置 |
US11184192B2 (en) | 2017-05-19 | 2021-11-23 | New H3C Technologies Co., Ltd. | Packet transmission |
CN107317755A (zh) * | 2017-08-23 | 2017-11-03 | 普联技术有限公司 | 一种硬件转发表项纠错方法、装置及计算机可读存储介质 |
CN110138819A (zh) * | 2018-02-02 | 2019-08-16 | 思锐科技股份有限公司 | 网络交换机的主机状态检测方法与系统 |
CN110138819B (zh) * | 2018-02-02 | 2022-01-18 | 思锐科技股份有限公司 | 网络交换机的主机状态检测方法与系统 |
CN116094998A (zh) * | 2022-12-29 | 2023-05-09 | 天翼云科技有限公司 | 一种基于ovs的邻居表项的vxlan报文的转发方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103560968B (zh) | 2017-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10135717B2 (en) | Transferring data in a gateway | |
JP6581277B2 (ja) | データパケット転送 | |
US20160036773A1 (en) | Internet protocol address resolution | |
JP5966561B2 (ja) | 通信装置および通信方法 | |
US10616175B2 (en) | Forwarding information to forward data to proxy devices | |
CN104660508A (zh) | 一种报文转发方法及装置 | |
CN103560968A (zh) | 交换机硬件主机路由表更新方法、装置和交换机 | |
CN105721321A (zh) | 一种等价多路径的出接口更新方法及装置 | |
WO2013078884A1 (zh) | 报文转发方法、装置和系统 | |
CN103220215B (zh) | TRILL网络中FCoE报文的转发方法和装置 | |
CN110505621B (zh) | 一种终端迁移的处理方法及装置 | |
WO2019201209A1 (zh) | 报文转发 | |
WO2022121466A1 (zh) | 以太虚拟专用网的数据处理方法、设备及存储介质 | |
CN103560961A (zh) | 以太网交换机主机路由表项动态更新方法及交换机 | |
CN103326915A (zh) | 实现三层虚拟专用网络的方法、设备及系统 | |
CN103117930A (zh) | 静态路由配置的检测方法和装置 | |
US20090285206A1 (en) | Network system and data transfer method | |
CN102523312B (zh) | 一种4over6场景下的最优隧道选择方法 | |
WO2021254173A1 (zh) | 一种路由处理方法及相关设备 | |
CN104780105A (zh) | 一种报文转发方法、路由桥和转发芯片 | |
CN103561026A (zh) | 硬件访问控制列表的更新方法、更新装置和交换机 | |
CN102045254B (zh) | 路由表的扩展处理方法、装置和网络设备 | |
CN108924052A (zh) | 报文转发方法、汇聚网关、接入网关及系统 | |
CN104394081B (zh) | 一种数据处理方法及装置 | |
JPWO2005020525A1 (ja) | プロトコル高速化装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
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 |