CN102025796B - 一种mac地址更新方法及装置、组播方法及装置 - Google Patents
一种mac地址更新方法及装置、组播方法及装置 Download PDFInfo
- Publication number
- CN102025796B CN102025796B CN201010557252.6A CN201010557252A CN102025796B CN 102025796 B CN102025796 B CN 102025796B CN 201010557252 A CN201010557252 A CN 201010557252A CN 102025796 B CN102025796 B CN 102025796B
- Authority
- CN
- China
- Prior art keywords
- list item
- address
- multicast
- message
- port numbers
- 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/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- 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/5069—Address allocation for group communication, multicast communication or broadcast communication
-
- 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)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种MAC地址更新的方法,用于实现对MAC地址的统一更新及维护。所述方法包括:根据收到的报文获得网际协议版本4IPv4版本的组播组IP地址或网际协议版本6IPv6版本的组播组IP地址;当获得IPv4版本的组播组IP地址时,将获得的IPv4版本的组播组IP地址映射为组播媒体接入控制MAC地址;当获得IPv6版本的组播组IP地址时,将获得的IPv6版本的组播组IP地址映射为组播MAC地址;根据获得的组播MAC地址更新公共MAC地址表。本发明还公开了用于实现所述方法的装置。
Description
技术领域
本发明涉及通信领域,特别涉及一种MAC地址更新方法及装置。
背景技术
由于目前IPv4(Internet Protocol version4,网际协议版本4)网络存在这地址空间不足的问题,所以以IPv6(Internet Protocol version6,网际协议版本6)为核心的下一代互联网协议已经从研究阶段走向实用。与IPv4的32位地址长度相比,IPv6的128位地址长度不仅能够满足全球用户对IP地址的需求,还能够在安全性、移动性、服务质量等各方面提供更好的支持,因此IPv6取代IPv4已成为网络发展的必然趋势。但由于目前的互联网还属于IPv6发展的初期,现有的IPv4网络具备相当的规模,为了保护现有设备和投资,网络不可能一次性更替到IPv6,而是将面临一个长期的IPv4、IPv6并存的过程。目前只有做好IPV4和IPV6网络的融合,才能实现平稳过渡。
组播技术的基本原理是利用IGMP(Internet Group Management Protocol,互联网组播管理协议)或者MLD(Multicast Listener Discovery,组播侦听发现)维护组播组关系。IGMP(IPv4)或MLD(IPv6中)运行于三层设备上,对于组播接收者加入或离开组播组进行动态管理,并建立三层组播转发表项。同时,二层设备上运行IGMP Snooping(Internet Group Management Protocol Snooping,互联网组播管理协议窥探)或者MLD Snooping(Multicast Listener Discovery Snooping,组播侦听发现窥探),分别配置了IGMP协议或者MLD协议的三层设备与组播接收者之间的IGMP报文或MLD报文,根据报文在二层设备上建立和维护MAC组播地址表。以后二层设备收到的组播数据报文就根据该MAC组播地址表进行转发,实现组播数据报文的二层组播。
现有技术中,在同时支持IPv4和IPv6的双协议栈二层设备上,IPV4协议栈和IPv6协议栈可能会分别独立维护各自的MAC组播地址表,这样不仅会造成硬件资源的浪费,软件实现上也会增加复杂度,且不便于对MAC地址进行安全管理。
发明内容
本发明实施例提供一种MAC地址更新方法,用于实现对MAC地址的统一更新及维护,及一种组播方法,用于实现根据统一的MAC地址对数据进行组播。
一种MAC地址更新方法,包括以下步骤:
根据收到的报文获得网际协议版本4IPv4版本的组播组IP地址或网际协议版本6IPv6版本的组播组IP地址;其中,所述报文是加入报文或离开报文,所述报文是由IPv4组播接收方或IPv6组播接收方所发送的;
当获得IPv4版本的组播组IP地址时,将获得的IPv4版本的组播组IP地址映射为组播媒体接入控制MAC地址;当获得IPv6版本的组播组IP地址时,将获得的IPv6版本的组播组IP地址映射为组播MAC地址;
根据获得的组播MAC地址更新公共MAC地址表。
一种组播方法,包括以下步骤:
根据收到的报文获得IPv4版本的组播组IP地址或IPv6版本的组播组IP地址;其中,所述报文是加入报文或离开报文,所述报文是由IPv4组播接收方或IPv6组播接收方所发送的;
当获得IPv4版本的组播组IP地址时,将获得的IPv4版本的组播组IP地址映射为组播媒体接入控制MAC地址;当获得IPv6版本的组播组IP地址时,将获得的IPv6版本的组播组IP地址映射为组播MAC地址;
根据所述组播MAC地址在公共MAC地址表中查询与所述组播MAC地址对应的端口号,根据所述端口号进行数据转发。
一种MAC地址更新装置,包括:
处理模块,用于根据收到的报文获得IPv4版本的组播组IP地址或IPv6版本的组播组IP地址;其中,所述报文是加入报文或离开报文,所述报文是由IPv4组播接收方或IPv6组播接收方所发送的;
转换模块,用于当获得IPv4版本的组播组IP地址时,将获得的IPv4版本的组播组IP地址映射为组播媒体接入控制MAC地址;当获得IPv6版本的组播组IP地址时,将获得的IPv6版本的组播组IP地址映射为组播MAC地址;
执行模块,用于根据获得的组播MAC地址更新公共MAC地址表。
一种组播装置,包括:
处理模块,用于根据收到的报文获得IPv4版本的组播组IP地址或IPv6版本的组播组IP地址;其中,所述报文是加入报文或离开报文,所述报文是由IPv4组播接收方或IPv6组播接收方所发送的;
转换模块,用于当获得IPv4版本的组播组IP地址时,将获得的IPv4版本的组播组IP地址映射为组播媒体接入控制MAC地址;当获得IPv6版本的组播组IP地址时,将获得的IPv6版本的组播组IP地址映射为组播MAC地址;
执行模块,用于根据所述组播MAC地址在公共MAC地址表中查询与所述组播MAC地址对应的端口号,根据所述端口号进行数据转发。
本发明实施例根据收到的报文获得网际协议版本4IPv4版本的组播组IP地址或网际协议版本6IPv6版本的组播组IP地址;当获得IPv4版本的组播组IP地址时,将获得的IPv4版本的组播组IP地址映射为组播媒体接入控制MAC地址;当获得IPv6版本的组播组IP地址时,将获得的IPv6版本的组播组IP地址映射为组播MAC地址;根据获得的组播MAC地址更新公共MAC地址表。IPv4及IPv6使用同一公共MAC地址表,实现了对MAC地址的统一更新及维护,节省了内存资源。
附图说明
图1为本发明实施例中MAC地址更新装置的主要结构图;
图2为本发明实施例中MAC地址更新装置的详细结构图;
图3A为本发明实施例中MAC地址更新装置中处理模块的详细结构图;
图3B为本发明实施例中MAC地址更新装置中执行模块的详细结构图;
图4为本发明实施例中MAC地址更新方法的主要流程图;
图5本发明实施例中收到的加入报文为IPv4版本时,获得IGMP Snooping表项的详细流程图;
图6为本发明实施例中收到的加入报文为IPv6版本,获得MAC地址的详细流程图;
图7为本发明实施例中收到的离开报文为IPv4版本时,对IGMP Snooping表项的处理的详细流程图;
图8为本发明实施例中当收到的离开报文为IPv6版本时,对MLDSnooping表项的处理的详细流程图。
具体实施方式
本发明实施例根据收到的报文获得网际协议版本4IPv4版本的组播组IP地址或网际协议版本6IPv6版本的组播组IP地址;当获得IPv4版本的组播组IP地址时,将获得的IPv4版本的组播组IP地址映射为组播媒体接入控制MAC地址;当获得IPv6版本的组播组IP地址时,将获得的IPv6版本的组播组IP地址映射为组播MAC地址;根据获得的组播MAC地址更新公共MAC地址表。IPv4及IPv6使用同一公共MAC地址表,实现了对MAC地址的统一更新及维护,节省了内存资源。
参见图1,本发明实施例中MAC地址更新装置包括处理模块101、执行模块102及转换模块103。
处理模块101用于根据收到的报文获得IPv4版本的组播组IP地址或IPv6版本的组播组IP地址。组播组IP地址即组播组IP(Internet Protocol,网际协议)地址,指的是组播的组IP地址。处理模块101接收报文,其中,报文可以是加入报文或离开报文,所述报文是由IPv4组播接收方或IPv6组播接收方所发送的。发送加入报文是有IPv4组播接收方或请求加入组播组,发送离开 报文是有IPv4组播接收方或IPv6组播接收方请求离开组播组。处理模块101还会接收数据报文,是由IPv4组播发送方或IPv6组播发送方所发送,用于向IPv4组播接收方或IPv6组播接收方发送数据。接收到加入报文或离开报文后处理模块101对报文进行解析,获得报文中的参数信息,其中,参数信息至少包括IPv4组播组IP地址或IPv6组播组IP地址和VLAN(Virtual Local Area Network,虚拟局域网)ID(标识符),并且可以根据接收所述加入报文或离开报文的端口获得该收到所述加入报文或离开报文的端口的端口号。VLAN ID是端口号所在的VLAN的ID,二层设备上可能有多个VLAN,可以通过VLAN ID来进行区分。解析报文后,处理模块101根据报文中解析出的组播组IP地址在IGMP Snooping中查找第一表项集合或在MLD Snooping中查找第二表项集合,第一表项集合对应于IPv4,第二表项集合对应于IPv6。较佳的,本发明实施例中第一表项可以是IGMP Snooping表项,第二表项可以是MLD Snooping表项。每条IGMP Snooping表项包括报文中解析出的组播组IP地址、VLAN ID及收到所述报文的端口的端口号,及三者的对应关系,每条MLD Snooping表项包括报文中解析出的组播组IP地址、VLAN ID及接收所述报文的端口的端口号,及三者的对应关系。对应于一个组播组IP地址的所有第一表项组成第一表项集合,或称为IGMP Snooping表项集合,对应于一个组播组IP地址的所有第二表项组成第二表项集合,或称为MLD Snooping表项集合。一个IGMP Snooping表项集合中的各IGMP Snooping表项,或者一个MLDSnooping表项集合中的各MLD Snooping表项之间可以对应有链接关系,当根据一个组播组IP地址进行查询时,可以查询到包含该组播组IP地址的IGMP Snooping表项集合或MLDSnooping表项集合,其中包含了所有包含该组播组IP地址的IGMP Snooping表项或MLDSnooping表项。如果对应于该组播组IP地址的IGMP Snooping表项集合或MLD Snooping表项集合为空,则处理模块101根据该组播组IP地址创建一条IGMP Snooping表项或MLD Snooping表项,如果对应于该组播组IP地址的IGMP Snooping表项集合中没有接收所述报文的端口的端 口号所对应的IGMP Snooping表项,则处理模块101根据该组播组IP地址及接收所述报文的端口的端口号在该IGMP Snooping表项集合中创建一条IGMP Snooping表项,如果对应于该组播组IP地址的MLD Snooping表项集合中没有接收所述报文的端口的端口号所对应的MLD Snooping表项,则处理模块101根据该组播组IP地址及接收所述报文的端口的端口号在该MLD Snooping表项集合中创建一条MLD Snooping表项。其中,处理模块101维护IGMP Snooping中的所有IGMP Snooping表项集合和MLD Snooping中的所有MLD Snooping表项集合。
执行模块102用于根据获得的组播MAC地址更新公共MAC地址表。执行模块102将IGMP Snooping表项中的组播组IP地址映射得到的组播MAC地址及MLD Snooping表项中的组播组IP地址映射得到的组播MAC地址统一存储在一个公共MAC地址表中,且根据每个MAC地址在公共MAC地址表中建立MAC转发条目,每个组播MAC地址可以对应多个MAC转发条目,对应于一个组播MAC地址的所有MAC转发条目可以组成一个组播MAC转发条目集合。每个MAC转发条目中包括MAC地址及端口号。端口号是接收IPv4组播接收方发送的报文或IPv6组播接收方发送的报文的端口的端口号。所述端口号是根据IGMP Snooping表项或MLD Snooping表项中的VLAN ID及端口号添加到MAC转发条目中的,根据MAC转发条目中的组播MAC地址及端口号即可获知IPv4组播接收者或IPv6组播接收者的准确位置。此后,如果处理模块101收到数据报文,解析出数据报文中所包含的组播组IP地址,执行模块102将该组播组IP地址映射为组播MAC地址,并根据映射得到的MAC地址查询公共MAC地址表中相应的组播MAC转发条目集合,进行数据转发,所述相应的组播MAC转发条目集合是指该MAC转发条目中所包含的MAC地址与所述映射得到的的MAC地址相同。
转换模块103用于当获得IPv4版本的组播组IP地址时,将获得的IPv4版本的组播组IP地址映射为组播媒体接入控制MAC地址;当获得IPv6版本的 组播组IP地址时,将获得的IPv6版本的组播组IP地址映射为组播MAC地址。本发明实施例中IP地址以组播组IP地址为例。转换模块103获得处理模块101中的IGMP Snooping表项或MLD Snooping表项,该IGMP Snooping表项或MLD Snooping表项中包括了组播组IP地址、VLAN ID及端口号。转换模块103根据IPv4版本的IP地址与MAC地址之间的固定映射关系或IPv6版本的IP地址与MAC地址之间的固定映射关系,将IGMP Snooping表项中的组播组IP地址或MLD Snooping表项中的组播组IP地址映射为组播MAC地址。其中,映射关系可以是一个函数,确定了一种固定的计算方式,转换模块103将IPv4版本的IP地址代入IPv4版本的IP地址与MAC地址之间的固定映射关系中即可获得组播MAC地址,或将IPv6版本的IP地址代入IPv6版本的IP地址与MAC地址之间的固定映射关系中即可获得组播MAC地址。IGMP Snooping表项或MLD Snooping表项中包括的VLAN ID可以存储在执行模块102中,根据该VLAN ID及IGMP Snooping表项或MLD Snooping表项中包括的端口号已经可以确定接收IPv4组播接收方发送的报文或IPv6组播接收方发送的报文的端口的端口号,因此在MAC转发条目中不包括VLAN ID。例如,一条MAC转发条目为:
(0100.5e01.0101,端口1)
其中,0100.5e01.0101为将组播组IP地址224.1.1.1映射后得到的MAC地址。例如,另一条MAC转发条目为:
(3333.0000.0001,端口2)
其中,3333.0000.0001为将组播组IP地址ff4e::1映射后得到的组播MAC地址。因为IPv4所对应的IP地址映射后均是以01005e开头,IPv6所对应的IP地址映射后均是以3333开头,因此IPv4所对应的IP地址及IPv6所对应的IP地址映射后得到的MAC地址不会相同,则二者在地址表单元1022中存储时不会发生冲突。
参见图2,所述装置还包括收发模块104,所述装置还可以包括存储模块 105。
收发模块104用于接收报文,及收发IGMP Snooping表项或MLD Snooping表项。收发模块104用于接收IPv4组播接收方或IPv6组播接收方发送的加入报文或离开报文。收发模块104收到报文后,判断收到的报文的协议类型,是IPv4协议还是IPv6协议,再根据协议类型通知处理模块101中的相应单元进行解析。收发模块104用于接收IGMP Snooping表项或MLD Snooping表项。收发模块104还用于根据数据报文中的组播组IP地址映射出的组播MAC地址查询已有的MAC转发条目,查找到与该组播MAC地址对应的组播MAC转发条目集合,根据该组播MAC转发条目集合中的端口号将IPv4组播发送方发送的数据转发到IPv4组播接收方,或将IPv6组播发送方发送的数据转发到IPv6组播接收方。
存储模块105用于存储映射关系。存储模块105用于存储IPv4版本的IP地址与MAC地址之间的固定映射关系及IPv6版本的IP地址与MAC地址之间的固定映射关系,可以将这两种映射关系分别存储。执行模块102可以根据存储模块105中存储的IPv4版本的IP地址或IPv6版本的IP地址与MAC地址之间的固定映射关系将IGMP Snooping表项中的组播组IP地址或MLDSnooping表项中的组播组IP地址映射为组播MAC地址。
参见图3A,所述处理模块101具体包括第一解析单元1011、第二解析单元1012、第一查询单元1013、第二查询单元1014、第一创建单元1015及第二创建单元1016。其中,第一解析单元1011、第一查询单元1013、及第一创建单元1015为对应于IPv4的设备,而第二解析单元1012、第二查询单元1014及第二创建单元1016为对应于IPv6的设备。在本发明实施例中,处理模块101中对IPv4加入报文的举例均以IPv4组播接收方发出加入组播组224.1.1.1的报文为例,对IPv6加入报文的举例均以IPv4组播接收方发出加入组播组ff4e::1的报文为例。
第一解析单元1011用于对IPv4组播接收方发送的报文进行解析。收发模 块104在收到报文后,判断该报文的协议类型是IPv4版本还是IPv6版本,当确定该报文的协议类型为IPv4版本时,通知第一解析单元1011进行解析。第一解析单元1011在收到IPv4组播接收方发送的报文后,判断该报文是加入报文还是离开报文,并解析出该报文中所包含的参数信息。其中,该参数信息至少包括组播组IP地址及VLAN ID,在接收所述报文时可以获得接收该报文的端口的端口号。一个组播组IP地址可以对应多个端口号,一个VLAN ID可以对应多个端口号。例如,第一解析单元1011收到报文后,确定接收该报文的端口的端口号为端口1,解析出的报文参数信息为:
IPv4组播组IP地址:224.1.1.1,VLAN ID:100
第二解析单元1012用于对IPv6组播接收方发送的报文进行解析。收发模块104在收到报文后,判断该报文的协议类型是IPv4版本还是IPv6版本,当确定该报文的协议类型为IPv6版本时,通知第二解析单元1012进行解析。第二解析单元1012在收到IPv6组播接收方发送的报文后,判断该报文是加入报文还是离开报文解析出该报文中所包含的参数信息。其中,该参数信息至少包括组播组IP地址及VLAN ID接收该报文的端口的端口号。一个组播组IP地址可以对应多个端口号,一个VLAN ID可以对应多个端口号。例如,解析单元1022解析出的报文参数信息为:
IPv6组播组IP地址:ff4e::1,VLAN ID:100,端口:端口2。
第一查询单元1013用于根据解析出的组播组IP地址查询IGMP Snooping表项。查询单元1013维护所有的IGMP Snooping表项,可以将所有的IGMP Snooping表项存储起来以供查询及调用。当第一解析单元1011解析出报文中所包含的参数信息后,通知第一查询单元1013进行查询。如果是加入报文,第一查询单元1013根据第一解析单元1011解析出的报文信息中所包含的组播组IP地址查询及判断存储的IGMP Snooping表项中是否有包含了该组播组IP地址的IGMP Snooping表项集合,如果判断结果为否,则通知第一创建单元1015根据该组播组IP地址及接收所述加入报文的端口的端口号创建一条 IGMP Snooping表项,该IGMP Snooping表项即组成对应于该组播组IP地址的IGMP Snooping表项集合,如果判断结果为是,则判断该IGMP Snooping表项集合中是否有IGMP Snooping表项中的端口号为接收所述加入报文的端口的端口号,如果该IGMP Snooping表项集合中有IGMP Snooping表项中的端口号与接收所述加入报文的端口的端口号相同,则直接将该IGMP Snooping表项发送给执行模块102,如果该IGMP Snooping表项集合中没有IGMP Snooping表项中的端口号与接收所述加入报文的端口的端口号相同,则通知第一创建单元101根据该组播组IP地址及接收所述加入报文的端口的端口号在该IGMP Snooping表项集合中创建一条IGMP Snooping表项;如果是离开报文,第一查询单元1013根据第一解析单元1011解析出的报文信息中所包含的组播组IP地址查询及判断存储的IGMP Snooping表项中是否有包含了该组播组IP地址的IGMP Snooping表项集合,如果判断结果为否,则不进行任何操作,如果判断结果为是,则判断该IGMP Snooping表项集合中是否有IGMP Snooping表项中的端口号与接收所述离开报文的端口的端口号相同,如果该IGMP Snooping表项集合中没有IGMP Snooping表项中的端口号与接收所述离开报文的端口的端口号相同,则不进行任何操作,如果该IGMP Snooping表项集合中有IGMP Snooping表项中的端口号与接收所述加入离开的端口的端口号相同,则删除该端口号,并删除该IGMP Snooping表项。如果删除该IGMP Snooping表项后该IGMP Snooping表项集合为空,则删除该IGMP Snooping表项集合。
第二查询单元1014用于根据解析出的组播组IP地址查询MLD Snooping表项。第二查询单元1014维护所有的MLD Snooping表项,可以将所有的MLD Snooping表项存储起来以供查询及调用。当第二解析单元1012解析出报文中所包含的参数信息后,通知第二查询单元1014进行查询。如果是加入报文,第二查询单元1014根据第二解析单元1012解析出的报文信息中所包含的组播组IP地址查询及判断存储的MLD Snooping表项中是否有包含了该组播组IP地址的MLD Snooping表项集合,如果判断结果为否,则通知第二创建单元1016 根据该组播组IP地址及接收所述加入报文的端口的端口号创建一条MLD Snooping表项,该MLD Snooping表项即组成对应于该组播组IP地址的MLD Snooping表项集合,如果判断结果为是,则判断该MLD Snooping表项集合中是否有MLD Snooping表项所包含的端口号与接收所述加入报文的端口的端口号相同,如果该MLD Snooping表项集合中有MLD Snooping表项所包含的端口号与接收所述加入报文的端口的端口号相同,则直接将该MLD Snooping表项发送给执行模块102,如果该MLD Snooping表项集合中没有MLD Snooping表项所包含的端口号与接收所述加入报文的端口的端口号相同,则通知第二创建单元1016根据该组播组IP地址及接收所述加入报文的端口的端口号在该MLD Snooping表项集合中创建一条MLD Snooping表项;如果是离开报文,第二查询单元1014根据第二解析单元1012解析出的报文信息中所包含的组播组IP地址查询及判断存储的MLD Snooping表项中是否有包含了该组播组IP地址的MLD Snooping表项集合,如果判断结果为否,则不进行任何操作,如果判断结果为是,则判断该MLD Snooping表项集合中是否有MLD Snooping表项所包含的端口号与接收所述离开报文的端口的端口号相同,如果该MLD Snooping表项集合中没有MLD Snooping表项所包含的端口号与接收所述离开报文的端口的端口号相同,则不进行任何操作,如果该MLD Snooping表项集合中有MLD Snooping表项所包含的端口号与接收所述离开报文的端口的端口号相同,则删除该端口号,并删除该MLD Snooping表项。如果删除该MLD Snooping表项后,该MLD Snooping表项集合为空,则删除该MLD Snooping表项集合。
第一创建单元1015用于创建IGMP Snooping表项。如果第一查询单元1013判断出存储的IGMP Snooping表项中没有包含解析出的报文中所包含的组播组IP地址的IGMP Snooping表项集合,或者对应于解析出的报文中所包含的组播组IP地址的IGMP Snooping表项集合中没有包含接收所述报文的端口的端口号的IGMP Snooping表项,则第一创建单元1015根据该解析出的报文中所包 含的组播组IP地址及接收所述报文的端口的端口号创建一条IGMP Snooping表项,该IGMP Snooping表项中包括解析出的报文中所包含的组播组IP地址、VLAN ID及接收所述报文的端口的端口号端口号,再将该IGMP Snooping表项发送给执行模块102。例如,该创建的IGMP Snooping表项可以如下:
IGMP Snooping表项:(224.1.1.1,100,1)
其中,224.1.1.1为组播组IP地址,100为VLAN ID,1为接收所述报文的端口的端口号端口号。一个组播组IP地址可以对应多个VLAN ID,也可以对应多个端口号,但一条IGMP Snooping表项中只包含一个组播组IP地址、一个VLAN ID及一个端口号。
第二创建单元1016用于创建MLD Snooping表项。如果第二查询单元1014判断出存储的MLD Snooping表项中没有包含解析出的报文中所包含的组播组IP地址的MLD Snooping表项集合,或者对应于解析出的报文中所包含的组播组IP地址的MLD Snooping表项集合中没有包含接收所述报文的端口的端口号的MLD Snooping表项,则第二创建单元1016根据该解析出的报文中所包含的组播组IP地址及接收所述报文的端口的端口号创建一条MLD Snooping表项,该MLD Snooping表项中包括解析出的报文中所包含的组播组IP地址、VLANID及端口号,再将该MLD Snooping表项发送给执行模块102。例如,该创建的MLD Snooping表项可以如下:
MLD Snooping表项:(ff4e::1,100,2)
其中,ff4e::1为组播组IP地址,100为VLAN ID,2为接收所述报文的端口的端口号端口号。一个组播组IP地址可以对应多个VLAN ID,也可以对应多个端口号,但一条MLD Snooping表项中只包含一个组播组IP地址、一个VLANID及一个端口号。
参见图3B,所述执行模块102中具体包括操作单元1021及地址表单元1022。其中,执行模块102可以通过函数来实现。
操作单元1021用于添加或删除MAC转发条目。一个组播MAC地址可以 对应多条MAC转发条目,该多条MAC转发条目组成一个对应于该组播MAC地址的组播MAC转发条目集合,一条MAC转发条目中包含一个MAC地址及一个端口号。如果处理模块101收到的报文为加入报文,在转换模块103将报文中携带的组播组IP地址映射为组播MAC地址后,执行模块102中的操作单元1021查询并判断已有的MAC转发条目中是否有该收到的加入报文中的组播组IP地址映射后的组播MAC地址所对应的组播MAC转发条目集合,如果判断结果为否,则根据该组播MAC地址及第一表项或第二表项中携带的端口号创建一条组播MAC转发条目,该组播MAC转发条目组成一个对应于该组播MAC地址的组播MAC转发条目集合,如果判断结果为是,则判断该组播MAC转发条目集合中是否有MAC转发条目所包含的端口号与第一表项或第二表项中携带的端口号相同,第一表项或第二表项中携带的端口号即所述加入报文发送方的端口号,如果该组播MAC转发条目集合中有MAC转发条目所包含的端口号与第一表项或第二表项中携带的端口号相同,则不进行任何操作,如果该组播MAC转发条目集合中没有MAC转发条目所包含的端口号与第一表项或第二表项中携带的端口号相同,则根据该组播MAC地址及第一表项或第二表项中携带的端口号在该组播MAC转发条目集合中添加一条MAC转发条目。如果处理模块101收到的报文为离开报文,操作单元1021查询并判断已有的MAC转发条目中是否有该收到的加入报文中的组播组IP地址映射后的组播MAC地址所对应的组播MAC转发条目集合,如果判断结果为否,则不做任何操作,如果判断结果为是,则判断该组播MAC转发条目集合是否有MAC转发条目所包含的端口号与第一表项或第二表项中携带的端口号相同,第一表项或第二表项中携带的端口号即所述加入离开发送方的端口号,如果该组播MAC转发条目集合中有MAC转发条目所包含的端口号与第一表项或第二表项中携带的端口号相同,则操作单元1021删除该组播MAC转发条目中的该端口号,并删除该MAC转发条目,如果删除该MAC转发条目后该组播MAC转发条目集合为空,则删除该组播MAC转发条目集合,如果该组播 MAC转发条目集合中没有MAC转发条目所包含的端口号与第一表项或第二表项中携带的端口号相同,则不做任何操作。
地址表单元1022用于统一存储MAC地址。地址表单元1022包含一个公共MAC地址表,其中存储了MAC地址,转换模块103将IGMP Snooping表项中所包括的组播组IP地址或MLD Snooping表项中所包括的组播组IP地址映射为组播MAC地址后,均存储在地址表单元1022的公共MAC地址表中。公共MAC地址表中还存储了根据MAC地址及端口号所创建的所有MAC转发条目。该MAC转发条目中不包括目的端口的VLAN ID,即IPv4组播接收方或IPv6组播接收方所对应的VLAN ID,该VLAN ID可以存储在地址表中。
下面通过流程来介绍组播方法。
参见图4,MAC地址更新的主要方法流程如下:
步骤401:根据收到的报文获得IPv4版本的组播组IP地址或IPv6版本的组播组IP地址。
步骤402:当获得IPv4版本的组播组IP地址时,将获得的IPv4版本的组播组IP地址映射为组播媒体接入控制MAC地址;当获得IPv6版本的组播组IP地址时,将获得的IPv6版本的组播组IP地址映射为组播MAC地址。
步骤403:根据获得的组播MAC地址更新公共MAC地址表。
参见图5,本发明实施例以收到加入报文为例。加入报文为IPv4版本时,获得IGMP Snooping表项的详细方法流程如下:
步骤501:接收加入报文,获得接收所述加入报文的端口的端口号。其中,该加入报文是IPv4组播接收方所发送。
步骤502:解析该加入报文,获得组播组IP地址、VLAN ID。判断该加入报文的协议类型,确定是IPv4还是IPv6。
步骤503:根据该组播组IP地址,判断是否已存在对应的IGMP Snooping表项集合。当判断结果为是时,执行步骤504,否则执行步骤505。如果步骤501中接收到的加入报文是IPv6组播接收方所发送,则本步骤为判断是否已存 在对应的MLD Snooping表项。
步骤504:判断该IGMP Snooping表项集合中是否有IGMP Snooping表项所包含的端口号与接收所述加入报文的端口的端口号相同。当判断结果为否时,继续步骤505,否则继续步骤506。
步骤505:根据该组播组IP地址、VLAN ID及端口号创建IGMP Snooping表项。例如,一条IGMP Snooping表项可以为:(224.1.1.1,100,1)。执行步骤507。如果步骤501中接收到的加入报文是IPv6组播接收方所发送,则本步骤为根据该组播组IP地址、VLAN ID及端口号创建MLD Snooping表项。
步骤506:将该IGMP Snooping表项发送给执行模块102。在具体实现时可以是调用执行模块102的接口函数。如果步骤501中接收到的加入报文是IPv6组播接收方所发送,则本步骤为将该MLD Snooping表项发送给执行模块102。
参见图6,本发明实施例以收到加入报文为例,当收到的加入报文为IPv6版本,获得MAC地址的详细方法流程如下:
步骤601:接收MLD Snooping表项。如果收到的加入报文为IPv4版本,则本步骤中接收的是IGMP Snooping表项。
步骤602:确定该MLD Snooping表项的IP地址版本为IPv6。如果步骤601中接收的是IGMP Snooping表项,则本步骤为确定该IGMP Snooping表项的IP地址版本为IPv4。
步骤603:将MLD Snooping表项中包括的组播组IP地址映射得到组播MAC地址。其中,IPv6版本的组播组IP地址为128位,映射得到的MAC地址为48位。例如,将ff4e::1的组播组IP地址映射后得到的组播MAC地址为3333.0000.0001。如果步骤602中确定IGMP Snooping表项的IP地址版本为IPv4,则本步骤为将IGMP Snooping表项中包括的组播组IP地址映射得到组播MAC地址。
步骤604:判断在已存在的MAC转发条目中是否有与该组播MAC地址相 应的组播MAC转发条目集合。其中,相应指的是已有的MAC转发条目中,有组播MAC转发条目集合中所对应的组播MAC地址与该组播MAC地址相同。当判断结果为是时,执行步骤605,否则执行步骤606。
步骤605:判断该组播MAC转发条目集合中是否有MAC转发条目所包含的端口号与第二表项中携带的端口号相同。当判断结果为否时,继续步骤606,否则继续步骤607。如果步骤601中接收的是IGMP Snooping表项,则本步骤为判断该MAC转发条目集合中是否组播有MAC转发条目所包含的端口号与第一表项中携带的端口号相同。。
步骤606:根据该组播MAC地址及所述第二表项中携带的端口号添加一条MAC转发条目。
步骤607:将该MLD Snooping表项发送给执行模块102。
参见图7,本发明实施例中以收到离开报文为例,当离开报文为IPv4版本时,对IGMP Snooping表项的处理的详细方法流程如下:
步骤701:接收离开报文,获得接收所述离开报文的端口的端口号。其中,该离开报文是IPv4组播接收方所发送。
步骤702:确定该离开报文为IPv4版本。或者该离开报文也可以为IPv6版本。
步骤703:解析该离开报文,获得组播组IP地址及VLAN ID。
步骤704:根据该组播组IP地址,判断是否已存在对应的IGMP Snooping表项集合。当判断结果为是时,执行步骤704,否则结束流程。如果步骤702中确定该离开报文为IPv6版本,则本步骤为根据该组播组IP地址,判断是否已存在对应的MLD Snooping表项。
步骤705:判断该IGMP Snooping表项集合中是否有IGMP Snooping表项所包含的端口号与接收所述离开报文的端口的端口号相同。当判断结果为是时,执行步骤706,否则结束流程。
步骤706:删除该IGMP Snooping表项中的该端口号,并删除该IGMP Snooping表项。
步骤707:判断该IGMP Snooping表项集合是否为空。当判断结果为是时,继续步骤708,否则结束流程。
步骤708:删除该IGMP Snooping表项集合。
参见图8,本发明实施例中以收到离开报文为例,当离开报文为IPv6版本时,对MLD Snooping表项的处理的详细方法流程如下:
步骤801:获得MLD Snooping表项中的组播组IP地址。如果离开报文为IPv4版本,则本步骤为获得IGMP Snooping表项中的组播组IP地址。
步骤802:确定该MLD Snooping表项的IP地址版本为IPv6。如果步骤801为获得IGMP Snooping表项中的组播组IP地址,则本步骤为确定该IGMPSnooping表项的IP地址版本为IPv4。
步骤803:将MLD Snooping表项中包括的组播组IP地址映射得到组播MAC地址。其中,IPv6版本的组播组IP地址为128位,映射得到的组播MAC地址为48位。例如,将ff4e::1的组播组IP地址映射后得到的组播MAC地址为3333.0000.0001。如果步骤602中确定IGMP Snooping表项的IP地址版本为IPv4,则本步骤为将IGMP Snooping表项中包括的组播组IP地址映射得到组播MAC地址。
步骤804:判断在已存在的MAC转发条目中是否有与该组播组IP地址相应的组播MAC转发条目集合。其中,相应指的是已有的MAC转发条目中,有MAC转发条目中包括的MAC地址与该组播MAC地址相同。当判断结果为是时,执行步骤805,否则结束流程。
步骤805:判断该MAC转发条目集合中是否有组播MAC转发条目所包含的端口号与第二表项中携带的端口号相同。当判断结果为是时,执行步骤806,否则结束流程。
步骤806:删除该组播MAC转发条目中的该端口号,并删除该MAC转发条目。
步骤807:判断该组播MAC转发条目集合是否为空。当判断结果为是时,执行步骤808,否则结束流程。
步骤808:删除组播该MAC转发条目集合。
本发明实施例根据收到的报文获得网际协议版本4IPv4版本的组播组IP地址或网际协议版本6IPv6版本的组播组IP地址;当获得IPv4版本的组播组IP地址时,将获得的IPv4版本的组播组IP地址映射为组播媒体接入控制MAC地址;当获得IPv6版本的组播组IP地址时,将获得的IPv6版本的组播组IP地址映射为组播MAC地址;根据获得的组播MAC地址更新公共MAC地址表。将IPv4和IPv6的MAC地址进行统一存储,IPv4和IPv6协议栈不再需要分别维护各自的公共MAC地址表,节省了内存资源。且IPv4和IPv6双协议栈使用同一个执行模块102来进行管理,降低了软件实现的复杂度,而且,在针对组播MAC地址实施安全管理时,可以避免与具体协议版本耦合,增强了MAC移植性,也实现了对MAC地址的统一存储及维护,在处理离开报文时,如果删除对应IGMP Snooping表项或MLD Snooping表项后IGMP Snooping表项集合或MLD Snooping表项集合为空,则删除该IGMP Snooping表项集合或MLD Snooping表项集合,如果删除对应MAC转发条目后组播MAC转发条目集合为空,则删除该MAC转发条目集合,从而有效节省了内存空间,使公共MAC地址表中存储的信息更加合理,便于利用。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/ 或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种MAC地址更新方法,其特征在于,包括以下步骤:
根据收到的报文获得网际协议版本4IPv4版本的组播组IP地址或网际协议版本6IPv6版本的组播组IP地址;其中,所述报文是加入报文或离开报文,所述报文是由IPv4组播接收方或IPv6组播接收方所发送的;
当获得IPv4版本的组播组IP地址时,将获得的IPv4版本的组播组IP地址映射为组播媒体接入控制MAC地址;当获得IPv6版本的组播组IP地址时,将获得的IPv6版本的组播组IP地址映射为组播MAC地址;
根据获得的组播MAC地址更新公共MAC地址表。
2.如权利要求1所述的方法,其特征在于,所述收到的报文为加入报文,在当获得IPv4版本的组播组IP地址时,将获得的IPv4版本的组播组IP地址映射为组播媒体接入控制MAC地址;当获得IPv6版本的组播组IP地址时,将获得的IPv6版本的组播组IP地址映射为组播MAC地址之前还包括步骤:
当根据收到的报文获得IPv4版本的组播组IP地址,判断互联网组播管理协议窥探IGMP Snooping中是否有对应于所述IPv4版本的组播组IP地址的第一表项集合,当判断结果为否时,根据IPv4版本的组播组IP地址创建包含收到所述加入报文的端口的端口号的第一表项;
当根据收到的报文获得IPv6版本的组播组IP地址,判断组播侦听发现窥探MLD Snooping中是否有对应于所述IPv6版本的组播组IP地址的第二表项集合,当判断结果为否时,根据IPv6版本的组播组IP地址创建包含收到所述加入报文的端口的端口号的第二表项。
3.如权利要求2所述的方法,其特征在于,
当判断确定有对应于所述IPv4版本的组播组IP地址的第一表项集合时,判断所述第一表项集合中是否有第一表项所包含的端口号与收到所述加入报文的端口的端口号相同,当所述第一表项集合中没有第一表项所包含的端口号与收到所述加入报文的端口的端口号相同时,根据所述IPv4版本的组播组IP 地址创建包含收到所述加入报文的端口的端口号的第一表项;或者
当判断确定有对应于所述IPv6版本的组播组IP地址的第二表项集合时,判断所述第二表项集合中是否有第二表项所包含的端口号与收到所述加入报文的端口的端口号相同,当所述第二表项集合中没有第一表项所包含的端口号与收到所述加入报文的端口的端口号相同时,根据所述IPv6版本的组播组IP地址创建包含收到所述加入报文的端口的端口号的第二表项。
4.如权利要求2或3所述的方法,其特征在于,所述收到的报文为加入报文,根据获得的组播MAC地址更新公共MAC地址表的步骤包括:判断公共MAC地址表中是否有对应于所述获得的组播MAC地址的组播MAC转发条目集合,当判断结果为否时,根据获得的组播MAC地址创建包含所述第一表项或第二表项中携带的端口号的MAC转发条目,当判断结果为是时,判断所述组播MAC转发条目集合中是否有MAC转发条目所包含的端口号与所述第一表项或第二表项中携带的端口号相同,当所述组播MAC转发条目集合中没有MAC转发条目所包含的端口号与所述第一表项或第二表项中携带的端口号相同时,根据所述组播MAC地址在所述组播MAC转发条目集合中添加包含所述第一表项或第二表项中携带的端口号的MAC转发条目。
5.如权利要求1所述的方法,其特征在于,所述收到的报文为离开报文,在当获得IPv4版本的组播组IP地址时,将获得的IPv4版本的组播组IP地址映射为组播媒体接入控制MAC地址;当获得IPv6版本的组播组IP地址时,将获得的IPv6版本的组播组IP地址映射为组播MAC地址之前还包括步骤:
判断IGMP Snooping中是否有对应于所述IPv4版本的组播组IP地址的第一表项集合,当判断结果为是时,判断所述第一表项集合中是否有第一表项所包含的端口号与收到所述离开报文的端口的端口号相同,当所述第一表项集合中有第一表项所包含的端口号与收到所述离开报文的端口的端口号相同时,在所述第一表项中删除该端口号,并删除所述第一表项;或者
判断MLD Snooping中是否有对应于所述IPv6版本的组播组IP地址的第 二表项集合,当判断结果为是时,判断所述第二表项集合中是否有第二表项所包含的端口号与收到所述离开报文的端口的端口号相同,当所述第二表项集合中有第二表项所包含的端口号与收到所述离开报文的端口的端口号相同时,在所述第二表项的中删除该端口号,并删除所述第二表项。
6.如权利要求5所述的方法,其特征在于,还包括步骤:
判断所述第一表项集合是否为空,当判断结果为是时,删除所述第一表项集合;或者
判断所述第二表项集合是否为空,当判断结果为是时,删除所述第二表项集合。
7.如权利要求5或6所述的方法,其特征在于,所述收到的报文为离开报文,根据获得的组播MAC地址更新公共MAC地址表的步骤包括:判断是否有对应于所述获得的组播MAC地址的组播MAC转发条目集合,当判断结果为是时,判断所述组播MAC转发条目集合中是否有MAC转发条目所包含的端口号与所述第一表项或第二表项中携带的端口号相同,当所述组播MAC转发条目集合中有MAC转发条目所包含的端口号与所述第一表项或第二表项中携带的端口号相同时,在所述MAC转发条目中删除该端口号,并删除所述MAC转发条目;继续判断所述组播MAC转发条目集合是否为空,当所述组播MAC转发条目集合为空时,删除所述组播MAC转发条目集合。
8.一种组播方法,其特征在于,包括以下步骤:
根据收到的报文获得IPv4版本的组播组IP地址或IPv6版本的组播组IP地址;其中,所述报文是加入报文或离开报文,所述报文是由IPv4组播接收方或IPv6组播接收方所发送的;
当获得IPv4版本的组播组IP地址时,将获得的IPv4版本的组播组IP地址映射为组播媒体接入控制MAC地址;当获得IPv6版本的组播组IP地址时,将获得的IPv6版本的组播组IP地址映射为组播MAC地址;
根据所述组播MAC地址在公共MAC地址表中查询与所述组播MAC地 址对应的端口号,根据所述端口号进行数据转发。
9.一种MAC地址更新装置,其特征在于,包括:
处理模块,用于根据收到的报文获得IPv4版本的组播组IP地址或IPv6版本的组播组IP地址;其中,所述报文是加入报文或离开报文,所述报文是由IPv4组播接收方或IPv6组播接收方所发送的;
转换模块,用于当获得IPv4版本的组播组IP地址时,将获得的IPv4版本的组播组IP地址映射为组播媒体接入控制MAC地址;当获得IPv6版本的组播组IP地址时,将获得的IPv6版本的组播组IP地址映射为组播MAC地址;
执行模块,用于根据获得的组播MAC地址更新公共MAC地址表。
10.如权利要求9所述的装置,其特征在于,所述收到的报文为加入报文,所述处理模块还用于当根据收到的报文获得IPv4版本的组播组IP地址,判断互联网组播管理协议窥探IGMP Snooping中是否有对应于所述IPv4版本的组播组IP地址的第一表项集合,当判断结果为否时,根据IPv4版本的组播组IP地址创建包含收到所述加入报文的端口的端口号的第一表项;当根据收到的报文获得IPv6版本的组播组IP地址,判断组播侦听发现窥探MLD Snooping中是否有对应于所述IPv6版本的组播组IP地址的第二表项集合,当判断结果为否时,根据IPv6版本的组播组IP地址创建包含收到所述加入报文的端口的端口号的第二表项。
11.如权利要求10所述的装置,其特征在于,所述处理模块还用于当判断确定有对应于所述IPv4版本的组播组IP地址的第一表项集合时,判断所述第一表项集合中是否有第一表项所包含的端口号与收到所述加入报文的端口的端口号相同,当所述第一表项集合中没有第一表项所包含的端口号与收收到所述加入报文的端口的端口号相同时,根据所述IPv4版本的组播组IP地址创建包含收到所述加入报文的端口的端口号的第一表项;或者当判断确定有对应于所述IPv6版本的组播组IP地址的第二表项集合时,判断所述第二表项集合中是否有第二表项所包含的端口号与收到所述加入报文的端口的端口号相同, 当所述第二表项集合中没有第一表项所包含的端口号与收到所述加入报文的端口的端口号相同时,根据所述IPv6版本的组播组IP地址创建包含收到所述加入报文的端口的端口号的第二表项。
12.如权利要求10或11所述的装置,其特征在于,所述收到的报文为加入报文,所述执行模块用于判断公共MAC地址表中是否有对应于所述获得的组播MAC地址的组播MAC转发条目集合,当判断结果为否时,根据获得的组播MAC地址创建包含所述第一表项或第二表项中携带的端口号的MAC转发条目,当判断结果为是时,判断所述组播MAC转发条目集合中是否有MAC转发条目所包含的端口号与所述第一表项或第二表项中携带的端口号相同,当所述组播MAC转发条目集合中没有MAC转发条目所包含的端口号与所述第一表项或第二表项中携带的端口号相同时,根据所述组播MAC地址在所述组播MAC转发条目集合中添加包含所述第一表项或第二表项中携带的端口号的MAC转发条目。
13.如权利要求9所述的装置,其特征在于,所述收到的报文为离开报文,所述处理模块还用于判断IGMP Snooping中是否有对应于所述IPv4版本的组播组IP地址的第一表项集合,当判断结果为是时,判断所述第一表项集合中是否有第一表项所包含的端口号与收到所述离开报文的端口的端口号相同,当所述第一表项集合中有第一表项所包含的端口号与收到所述离开报文的端口的端口号相同时,在所述第一表项中删除该端口号,并删除所述第一表项;或者判断MLD Snooping中是否有对应于所述IPv6版本的组播组IP地址的第二表项集合,当判断结果为是时,判断所述第二表项集合中是否有第二表项所包含的端口号与收到所述离开报文的端口的端口号相同,当所述第二表项集合中有第二表项所包含的端口号与收到所述离开报文的端口的端口号相同时,在所述第二表项中删除该端口号,并删除所述第二表项。
14.如权利要求13所述的装置,其特征在于,所述处理模块还用于判断所述第一表项集合是否为空,当判断结果为是时,删除所述第一表项集合;或 者判断所述第二表项集合是否为空,当判断结果为是时,删除所述第二表项集合。
15.如权利要求13或14所述的装置,其特征在于,所述收到的报文为离开报文,所述执行模块用于判断是否有对应于所述获得的组播MAC地址的组播MAC转发条目集合,当判断结果为是时,判断所述组播MAC转发条目集合中是否有MAC转发条目所包含的端口号与所述第一表项或第二表项中携带的端口号相同,当所述组播MAC转发条目集合中有MAC转发条目所包含的端口号与所述第一表项或第二表项中携带的端口号相同,在所述组播MAC转发条目中删除该端口号,并删除所述MAC转发条目;继续判断所述组播MAC转发条目集合是否为空,当所述组播MAC转发条目集合为空时,删除所述组播MAC转发条目集合。
16.一种组播装置,其特征在于,包括:
处理模块,用于根据收到的报文获得IPv4版本的组播组IP地址或IPv6版本的组播组IP地址;其中,所述报文是加入报文或离开报文,所述报文是由IPv4组播接收方或IPv6组播接收方所发送的;
转换模块,用于当获得IPv4版本的组播组IP地址时,将获得的IPv4版本的组播组IP地址映射为组播媒体接入控制MAC地址;当获得IPv6版本的组播组IP地址时,将获得的IPv6版本的组播组IP地址映射为组播MAC地址;
执行模块,用于根据所述组播MAC地址在公共MAC地址表中查询与所述组播MAC地址对应的端口号,根据所述端口号进行数据转发。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010557252.6A CN102025796B (zh) | 2010-11-23 | 2010-11-23 | 一种mac地址更新方法及装置、组播方法及装置 |
PCT/CN2011/075002 WO2012068854A1 (zh) | 2010-11-23 | 2011-05-31 | 一种mac地址更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010557252.6A CN102025796B (zh) | 2010-11-23 | 2010-11-23 | 一种mac地址更新方法及装置、组播方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102025796A CN102025796A (zh) | 2011-04-20 |
CN102025796B true CN102025796B (zh) | 2014-06-11 |
Family
ID=43866638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010557252.6A Active CN102025796B (zh) | 2010-11-23 | 2010-11-23 | 一种mac地址更新方法及装置、组播方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102025796B (zh) |
WO (1) | WO2012068854A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025796B (zh) * | 2010-11-23 | 2014-06-11 | 中兴通讯股份有限公司 | 一种mac地址更新方法及装置、组播方法及装置 |
CN103227843B (zh) | 2012-08-31 | 2016-05-04 | 杭州华三通信技术有限公司 | 一种物理链路地址管理方法及装置 |
WO2014089746A1 (zh) * | 2012-12-10 | 2014-06-19 | 华为技术有限公司 | 报文转发方法及装置 |
CN107888713B (zh) * | 2016-09-30 | 2021-10-01 | 中兴通讯股份有限公司 | 一种动态分配mac地址的方法、装置以及接入设备 |
CN110830378B (zh) * | 2018-08-07 | 2022-05-17 | 迈普通信技术股份有限公司 | 一种地址表项更新方法及交换设备 |
US11991144B2 (en) | 2022-04-28 | 2024-05-21 | Cisco Technology, Inc. | Seamless MAC address rotation in multi-link device using multiple IP stacks |
CN114979090B (zh) * | 2022-05-27 | 2024-07-05 | 深圳市领创星通科技有限公司 | IPv6数据包处理方法、装置、计算机设备和存储介质 |
CN115967699A (zh) * | 2022-12-28 | 2023-04-14 | 深圳市鸿升光通讯设备有限公司 | 一种组播表项数据管理方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101191721B1 (ko) * | 2005-11-03 | 2012-10-16 | 삼성전자주식회사 | IPv6 기반의 와이어리스 네트워크에서 그룹 별멀티캐스트 지원을 위한 연결 식별자 생성 및 관리 방법과이를 채용한 네트워크 인터페이스 |
CN1968273B (zh) * | 2006-10-26 | 2010-08-18 | 杭州华三通信技术有限公司 | 一种支持IPv6业务的方法及其应用的交换设备 |
CN1980246B (zh) * | 2006-12-07 | 2011-04-13 | 杭州华三通信技术有限公司 | 二层组播流转发方法 |
CN101291240B (zh) * | 2008-06-19 | 2010-08-25 | 杭州华三通信技术有限公司 | 一种组播流传输方法和系统 |
CN102025796B (zh) * | 2010-11-23 | 2014-06-11 | 中兴通讯股份有限公司 | 一种mac地址更新方法及装置、组播方法及装置 |
-
2010
- 2010-11-23 CN CN201010557252.6A patent/CN102025796B/zh active Active
-
2011
- 2011-05-31 WO PCT/CN2011/075002 patent/WO2012068854A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2012068854A1 (zh) | 2012-05-31 |
CN102025796A (zh) | 2011-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102025796B (zh) | 一种mac地址更新方法及装置、组播方法及装置 | |
CN103152264B (zh) | Openflow网络和IP网络互连通信方法及Openflow子网边缘交换机 | |
CN102571587B (zh) | 报文转发方法和设备 | |
CN105264493A (zh) | 信息中心网络上的动态虚拟机迁移 | |
CN101052022B (zh) | 一种虚拟专用网用户访问公网的系统和方法 | |
JP5884899B2 (ja) | 制御装置、物理ノード、端末装置、通信システム、ポート状態表示方法及びプログラム | |
CN112134776B (zh) | 生成组播转发表项的方法和接入网关 | |
CN107547399B (zh) | 一种组播转发表项的处理方法和pe设备 | |
CN104301238A (zh) | 一种报文处理方法、装置及系统 | |
US20090296706A1 (en) | Method, system and processor for processing network address translation service | |
CN103441932A (zh) | 一种主机路由表项生成方法及设备 | |
CN103634214A (zh) | 一种路由信息生成方法及装置 | |
CN103166846A (zh) | 一种报文转发方法和设备 | |
CN102014039A (zh) | 数据传输方法和接入点 | |
CN109936490A (zh) | 基于VXLAN和OpenFlow的虚拟家庭网络共享方法及系统 | |
US12068952B2 (en) | Routing information publishing method, apparatus, and system | |
WO2009146615A1 (zh) | 网络地址转换业务的处理方法和系统及处理器 | |
CN101815285B (zh) | 网间移动号码应用中数据同步方法和系统 | |
CN103209127A (zh) | 基于Linux系统实现虚拟路由转发方法和装置 | |
CN113395206A (zh) | 路由确定方法、装置和网络设备 | |
CN106230983A (zh) | 一种控制装置及方法 | |
CN106506359A (zh) | 一种命名中心网络的网络自定义组织中间件 | |
CN106100959A (zh) | 数据传输方法及系统 | |
CN101442491A (zh) | 一种应用于嵌套vpn的路由发送方法和路由设备 | |
CN105610619B (zh) | 一种网元设备管理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |