CN103051744A - 组播地址的转换方法及装置 - Google Patents
组播地址的转换方法及装置 Download PDFInfo
- Publication number
- CN103051744A CN103051744A CN201310005691XA CN201310005691A CN103051744A CN 103051744 A CN103051744 A CN 103051744A CN 201310005691X A CN201310005691X A CN 201310005691XA CN 201310005691 A CN201310005691 A CN 201310005691A CN 103051744 A CN103051744 A CN 103051744A
- Authority
- CN
- China
- Prior art keywords
- multicast address
- ipv4
- ipv6
- address
- transformation rule
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- 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/25—Mapping addresses of the same type
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种组播地址的转换方法及装置,属于通讯领域。其中,该组播地址的转换方法,包括:获取待转换的组播地址所对应的转换规则,所述转换规则包括有组播地址前缀、IPv4组播地址类型和IPv4组播地址偏移位置;根据所述转换规则将所述组播地址转换为目标组播地址。本发明的技术方案能够更好的利用IPv6地址空间,在网络中实现IPv4组播地址和IPv6组播地址间的转换。
Description
技术领域
本发明涉及通讯领域,特别是指一种组播地址的转换方法及装置。
背景技术
随着IPv4地址池的枯竭,向IPv6网络过渡势在必行。但是现有网络完全过渡到IPv6网络还有相当长的时间,IPv4和IPv6网络共存的状况会长期存在。另一方面,组播技术广泛应用在IPTV、视频点播、视频会议等传统模式,以及移动终端广告、网络Store、云计算等新兴模式中。所以,如何解决在过渡网络环境中的组播应用问题变得非常必要。目前,各方在过渡场景中解决组播问题主要使用的是隧道、翻译两种技术,其中不可避免的都需要建立IPv4组播地址和IPv6组播地址之间的转换关系,用来在网络边缘进行组播的通讯,组播地址在IPv4和IPv6间的转换成为应用基础。
现有IPv4组播地址和IPv6组播地址之间的转换,主要是draft-ietf-mboned-64-multicast-address-format草案规定的转换方法。该方法定义ASM(Any Source Multicast,任意源组播)前缀FFXX:8000::/20和SSM(SourceSpecific Multicast,特定源组播)前缀FF3X:0:8000::/96,把IPv4组播地址作为IPv6组播地址的后32位,与定义的组播前缀用拼接的方式组合起来进行组播地址转换。这种组播地址转换的方法简单易实现,但是存在一定的不足:由于使用的IPv6组播前缀是固定的,针对ASM组播地址和SSM组播地址各有一个统一的前缀,不区分IPv4地址范围,所有的IPv4 SSM组播地址都会映射到同一个IPv6 SSM组播前缀,所有的IPv4 ASM组播地址都会映射到同一个IPv6ASM组播前缀。拿ASM组播地址来说,也就是如果在设备上使用了一个固定的IPv6 ASM前缀后,所有组播IPv4 ASM地址都会转换成统一IPv6组播前缀的组播地址。而所有想要和IPv4网络进行互通的组播应用,也必须使用规定的组播前缀,这样限制了IPv6组播前缀的使用量和灵活性,也无法对IPv4组播地址空间进行划分。另外还存在的不足在于,因为至少要留32位给IPv4组播地址,所以IPv6组播前缀最长用到96。
综上所述,现有的组播地址转换方法不能很好地利用IPv6的组播地址空间,也不能对IPv4和IPv6的组播地址空间进行更精确的划分,应用的多样性、灵活性和安全性存在不足。
发明内容
本发明要解决的技术问题是提供一种组播地址的转换方法及装置,能够更好的利用IPv6地址空间,在网络中实现IPv4组播地址和IPv6组播地址间的转换。
为解决上述技术问题,本发明的实施例提供技术方案如下:
一方面,提供一种组播地址的转换方法,包括:
获取待转换的组播地址所对应的转换规则,所述转换规则包括有组播地址前缀、IPv4组播地址类型和IPv4组播地址偏移位置;
根据所述转换规则将所述组播地址转换为目标组播地址。
进一步地,在所述待转换的组播地址为IPv4组播地址时,所述转换规则包括有IPv6组播地址前缀和IPv4组播地址前缀,在所述IPv4组播地址类型指示基于IPv4组播地址后缀形成所述目标组播地址时,所述根据所述转换规则将所述组播地址转换为目标组播地址包括:
根据所述IPv4组播地址前缀和所述IPv4组播地址计算出IPv4组播地址后缀;
在IPv6地址的起始位置放置所述IPv6组播地址前缀,在所述IPv4组播地址偏移位置指示的位置放置所述IPv4组播地址后缀,其它空位置0,形成目标IPv6组播地址。
进一步地,在所述转换规则包括有IPv4组播地址偏移位置参数时,所述IPv4组播地址偏移位置指示在IPv6地址中从所述IPv4组播地址偏移位置参数定义的起始偏移位置的后一位开始放置所述IPv4组播地址后缀;
在所述转换规则未包括IPv4组播地址偏移位置参数时,所述IPv4组播地址偏移位置指示在IPv6地址的最后位置放置所述IPv4组播地址后缀。
进一步地,在所述待转换的组播地址为IPv4组播地址时,所述转换规则包括有IPv6组播地址前缀和IPv4组播地址前缀,在所述IPv4组播地址类型指示基于IPv4组播地址形成所述目标组播地址时,所述根据所述转换规则将所述组播地址转换为目标组播地址包括:
在IPv6地址的起始位置放置所述IPv6组播地址前缀,在所述IPv4组播地址偏移位置指示的位置放置所述IPv4组播地址,其它空位置0,形成目标IPv6组播地址。
进一步地,在所述转换规则包括有IPv4组播地址偏移位置参数时,所述IPv4组播地址偏移位置指示在IPv6地址中从所述IPv4组播地址偏移位置参数定义的起始偏移位置的后一位开始放置所述IPv4组播地址;
在所述转换规则未包括IPv4组播地址偏移位置参数时,所述IPv4组播地址偏移位置指示在IPv6地址的最后32位放置所述IPv4组播地址。
进一步地,在所述待转换的组播地址为IPv6组播地址时,所述转换规则包括有IPv4组播地址前缀,在所述IPv4组播地址类型指示基于IPv4组播地址后缀形成所述目标组播地址时,所述根据所述转换规则将所述组播地址转换为目标组播地址包括:
根据所述IPv4组播地址前缀的长度计算出IPv4组播地址后缀的长度;
所述IPv6组播地址中,在IPv6组播地址偏移位置指示的位置根据所述IPv4组播地址后缀的长度获取IPv4组播地址后缀;
拼接所述IPv4组播地址前缀和所述IPv4组播地址后缀形成目标IPv4组播地址。
进一步地,在所述转换规则包括有IPv4组播地址偏移位置参数时,所述IPv4组播地址偏移位置指示在所述IPv6组播地址中从所述IPv4组播地址偏移位置参数定义的起始偏移位置的后一位开始获取所述IPv4组播地址后缀;
在所述转换规则未包括IPv4组播地址偏移位置参数时,所述IPv4组播地址偏移位置指示在所述IPv6组播地址的最后位置获取所述IPv4组播地址后缀。
进一步地,在所述待转换的组播地址为IPv6组播地址时,所述IPv4组播地址类型指示基于IPv4组播地址形成所述目标组播地址时,所述根据所述转换规则将所述组播地址转换为目标组播地址包括:
所述IPv6组播地址中,在所述IPv6组播地址偏移位置指示的位置获取32位的地址作为所述目标IPv4组播地址。
进一步地,在所述转换规则包括有IPv4组播地址偏移位置参数时,所述IPv4组播地址偏移位置指示在所述IPv6组播地址中从所述IPv4组播地址偏移位置参数定义的起始偏移位置的后一位开始获取所述IPv4组播地址;
在所述转换规则未包括IPv4组播地址偏移位置参数时,所述IPv4组播地址偏移位置指示在所述IPv6组播地址的最后32位获取所述IPv4组播地址。
本发明实施例还提供了一种实现如上所述方法的组播地址的转换装置,所述装置包括:
获取模块,用于获取待转换的组播地址所对应的转换规则,所述转换规则包括有组播地址前缀、IPv4组播地址类型和IPv4组播地址偏移位置;
转换模块,用于根据所述转换规则将所述组播地址转换为目标组播地址。
本发明的实施例具有以下有益效果:
上述方案中,首先获取待转换的组播地址所对应的转换规则,再根据所述转换规则将组播地址转换为目标组播地址。本发明的技术方案中,每条转换规则中配置有相应的地址前缀,可以设置多条转换规则,使一个网络范围内的各个区域或组织都能得到属于自己的地址前缀,这样可以使地址转换过程保持在指定的地址范围内,就可以在服务范围内更精细的进行组播地址范围的划分,增强服务的灵活性和安全性,有利于网络管理。另外,本发明的技术方案支持基于IPv4组播地址后缀的IPv6组播地址组成方式,没有前缀长度的限制,能够更好的利用IPv6组播地址空间。
附图说明
图1为本发明实施例的组播地址的转换方法的流程示意图;
图2为本发明实施例的组播地址的转换装置的结构框图;
图3为本发明实施例基于IPv4组播地址后缀的IPv6组播地址组成格式示意图;
图4为本发明实施例基于IPv4组播地址的IPv6组播地址组成格式示意图;
图5为本发明实施例将IPv4组播地址转换成IPv6组播地址的流程示意图;
图6为本发明实施例将IPv6组播地址转换成IPv4组播地址的流程示意图;
图7为本发明实施例使用组播地址的转换装置的场景示意图;
图8为本发明实施例另一使用组播地址的转换装置的场景示意图。
具体实施方式
为使本发明的实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明的实施例针对现有的组播地址转换方法不能很好地利用IPv6的组播地址空间,也不能对IPv4和IPv6的组播地址空间进行更精确的划分,应用的多样性、灵活性和安全性存在不足的问题,提供一种组播地址的转换方法及装置,能够更好的利用IPv6地址空间,在网络中实现IPv4组播地址和IPv6组播地址间的转换。
图1为本发明实施例的组播地址的转换方法的流程示意图,如图1所示,本实施例包括:
步骤101:获取待转换的组播地址所对应的转换规则,所述转换规则包括有组播地址前缀、IPv4组播地址类型和IPv4组播地址偏移位置;
步骤102:根据所述转换规则将所述组播地址转换为目标组播地址。
本发明实施例中可以预先设置一个或多个转换规则,每个转换规则定义如下:
其中,rule_ipv6_m_prefix表示转换规则中的IPv6组播地址前缀,包含掩码长度;rule_ipv4_m_prefix表示转换规则中的IPv4组播地址前缀,包含掩码长度;这样的一对前缀表示了对应的IPv6组播地址和IPv4组播地址的转换关系。
rule_ipv4_offset为IPv4组播地址偏移位置参数,它是转换规则中的可选包含参数,用来表示IPv4组播地址或是IPv4组播地址后缀在IPv6组播地址中的偏移位置,也就是IPv4组播地址或是IPv4组播地址后缀在IPv6组播地址中从起始位偏移的位置。如果转换规则中不包含这个参数,表示在IPv6组播地址的最后位放置IPv4组播地址或是IPv4组播地址后缀。
rule_ipv4_type为IPv4组播地址类型参数,它也是转换规则中的可选包含参数,用来表示在IPv6组播地址中包含的是IPv4组播地址后缀还是完整的IPv4组播地址,也可以理解成是选用基于IPv4组播地址或IPv4组播地址后缀的IPv6组播地址组成格式。如果转换规则中不包含这个参数或者rule_ipv4_type的值为0,则表示是基于IPv4组播地址后缀的IPv6组播地址组成格式;如果rule_ipv4_type的值为1,则表示基于IPv4组播地址的IPv6组播地址组成格式。
本发明定义了两种IPv6组播地址格式,一种是基于IPv4组播地址后缀的IPv6组播地址组成格式,一种是基于IPv4组播地址的IPv6组播地址组成格式。具体采用哪种格式,由rule_ipv4_type来确定,rule_ipv4_type为0表示采用基于IPv4组播地址后缀的IPv6组播地址组成格式,rule_ipv4_type为1表示采用基于IPv4组播地址的IPv6组播地址组成格式。在转换规则中不包含rule_ipv4_type的情况下,默认采用基于IPv4组播地址后缀的IPv6组播地址组成格式。
一、基于IPv4组播地址后缀的IPv6组播地址组成格式中,IPv6组播地址由转换规则中的IPv6组播地址前缀和IPv4组播地址后缀以及在有空位情况下补充的0组成。具体是从IPv6组播地址的起始位起,放置IPv6组播地址前缀;从转换规则定义的起始偏移位置的后一位开始放置IPv4组播地址后缀,如果转换规则中不包含rule_ipv4_offset,则默认把IPv4组播地址后缀直接放置在IPv6组播地址的最后部分;其余位置填充0。
其中,IPv4组播地址后缀ipv4_m_suffix是指需转换的IPv4组播地址去掉rule_ipv4_m_prefix后剩余的部分,其长度为32减去rule_ipv4_m_prefix的长度。
图3为基于IPv4组播地址后缀的IPv6组播地址组成格式示意图,如图3所示,从IPv6组播地址的左端0位置起始,包含n比特的rule_ipv6_m_prefix,这里n也就表示了rule_ipv6_m_prefix的掩码长度;从0位置起始偏移rule_ipv4_offset,放置IPv4组播地址后缀ipv4_m_suffix,后缀占用m比特;其余空位用0填充。
其中,ipv4_m_suffix是由IPv4组播地址去除掉rule_ipv4_m_prefix后剩余的部分,由IPv4地址长度32减去rule_ipv4_m_prefix掩码长度得到ipv4_m_suffix的长度,也就是m的值。在确定的rule_ipv6_m_prefix和ipv4_m_suffix以外的部分,也就是图3中的p比特和q比特所占部分,用0填充。这里p和q的值可以为0,也就是表示没有这部分空余,这要靠确定的两部分rule_ipv4_m_prefix和ipv4_m_suffix以及参数rule_ipv4_offset来决定。rule_ipv4_offset是可选包含的参数,如果转换规则中没有包含这个参数,那么ipv4_m_suffix是放置在IPv6组播地址的最后部分,也就是第128位之前的部分,此时q为0。
这种地址格式下,转换规则中IPv6组播地址前缀的长度n和IPv4组播地址后缀的长度m之和不超过128即可,即n+m<=128。n最大可以是128,此时要求m为0,这样的转换规则也就是表示一个确定的IPv6组播地址对应一个确定的IPv4组播的地址。如果转换规则中包含rule_ipv4_offset,其值不能大于128-m,也就是必须留给ipv4_m_suffix足够的空间。
二、基于IPv4组播地址的IPv6组播地址组成格式中,IPv6组播地址由IPv6组播地址前缀和完整的IPv4组播地址以及在有空位情况下补充的0组成。具体是从IPv6的起始位起,放置IPv6组播地址前缀;从转换规则定义的起始偏移位置的后一位开始放置完整的IPv4组播地址,如果转换规则中不包含rule_ipv4_offset,则默认把IPv4组播地址直接放置在IPv6组播地址的最后部分的32位;其余位置填充0。
图4为基于IPv4组播地址的IPv6组播地址组成格式,如图4所示,从IPv6组播地址的左端0位置起始,包含n比特的rule_ipv6_m_prefix,这里n也就表示了rule_ipv6_m_prefix的掩码长度;从0位置起始偏移rule_ipv4_offset,放置完整的IPv4组播地址ipv4_m_addr,占用32比特;其余位置用0填充。
其中,在确定的rule_ipv6_m_prefix和ipv4_m_addr以外的部分,也就是图4中的p比特和q比特所占部分,用0填充。这里p和q的值可以为0,也就是表示没有这部分空余,这要靠确定的两部分rule_ipv4_m_prefix和ipv4_m_addr以及参数rule_ipv4_offset来决定。rule_ipv4_offset是可选包含的参数,如果转换规则中没有包含这个参数,那么ipv4_m_addr是放置在IPv6组播地址的最后部分,占用32位,此时q为0。
这种地址格式下,转换规则中IPv6组播地址前缀的长度n和IPv4组播地址的长度32之和不超过128即可,即n+32<=128,也就是n<=96。另外,如果包含rule_ipv4_offset,其值不能大于128–32=96,也就是必须留给ipv4_m_addr足够的空间。
在进行组播地址间的转换时,首先在需要进行组播地址转换的设备上获取需要使用的一组转换规则,其中可以包含一个或多个转换规则。
在IPv4组播地址向IPv6组播地址转换的过程中,需要被转换的IPv4组播地址到转换规则中的IPv6组播地址前缀进行匹配,按照最长匹配的方法匹配到合适的IPv6组播地址前缀后,即获取到一条具体的转换规则并得到相应的IPv6组播地址前缀。如果没有匹配到合适的IPv6组播地址前缀,则不作转换处理。根据该转换规则中可选的嵌入IPv4组播地址类型参数来选择基于IPv4组播地址后缀还是IPv4组播地址的IPv6组播地址组成方式,如果该转换规则中没有定义IPv4组播地址类型参数则默认选择基于IPv4组播地址后缀的IPv6组播地址组成方式;根据可选参数IPv4组播地址偏移位置来确定IPv4组播地址或IPv4组播地址后缀在IPv6组播地址中的偏移位置,如果该转换规则中没有定义IPv4组播地址偏移位置则默认选择在IPv6组播地址的最后位置。然后根据IPv6组播地址格式,构建目标IPv6组播地址。
在IPv6组播地址向IPv4组播地址转换的过程中,需要被转换的IPv6组播地址到转换规则中的IPv4组播地址前缀进行匹配,按照最长匹配的方法匹配到合适的IPv4组播地址前缀后,即获取到一条具体的转换规则并得到相应的IPv4组播地址前缀。如果没有匹配到合适的IPv4组播地址前缀,则不作转换处理。根据转换规则中可选的嵌入IPv4组播地址类型参数来选择基于IPv4组播地址后缀还是IPv4组播地址的IPv6组播地址组成方式,如果该转换规则中没有定义IPv4组播地址类型参数则默认选择基于IPv4组播地址后缀的IPv6组播地址组成方式;根据可选参数IPv4组播地址偏移位置来确定IPv4组播地址或IPv4组播地址后缀在IPv6组播地址中的偏移位置。如果是基于IPv4组播地址后缀的方式,根据转换规则中IPv4组播地址前缀的长度来计算出IPv4组播地址后缀的长度,然后按照IPv4组播地址偏移位置参数指定的位置和计算出的IPv4组播地址后缀长度获取到IPv4组播地址后缀,如果没有包含IPv4组播地址偏移位置参数则直接从IPv6组播地址最后段按照计算的IPv4组播地址后缀长度获取IPv4组播地址后缀,拼接转换规则中的IPv4地址前缀与获取到的IPv4组播地址后缀,获取到目标IPv4组播地址。如果是基于IPv4组播地址的IPv6组播地址组成方式,直接从偏移位置后一位开始获取完整的IPv4组播地址,如果没有包含IPv4组播地址偏移位置参数则直接从IPv6组播地址最后32位获取完整的IPv4组播地址。
本发明实施例还提供了一种组播地址的转换装置,如图2所示,本实施例包括:
获取模块20,用于获取待转换的组播地址所对应的转换规则,所述转换规则包括有组播地址前缀、IPv4组播地址类型和IPv4组播地址偏移位置;
转换模块21,用于根据所述转换规则将所述组播地址转换为目标组播地址。
该转换装置支持上述IPv4组播地址和IPv6组播地址间的转换,能够在获取定义的一组转换规则后,把输入的能够匹配到一条转换规则的IPv4组播地址转换成IPv6组播地址,把输入的能够匹配到一条转换规则的IPv6组播地址转换成IPv4组播地址,实现组播协议报文和数据报文的转发,沟通IPv4和IPv6网络的组播应用。
本发明定义的转换规则,可以根据组播地址前缀进行匹配,只对能够匹配到组播地址前缀的地址进行转换,否则不进行转换。在某个范围内,只希望获取到某些组播地址的服务,这样在一条转换规则中就配置相应的地址前缀,而不希望得到服务的组播地址由于不能匹配而无法穿越IPv4/IPv6网络的边界,这样在设备使用中有较好的灵活性和安全性。本发明的技术方案可以设置多条转换规则,使得一个网络范围内的各个区域或组织都可以得到属于自己的地址前缀,地址转换过程保持在指定的地址范围内,这样就可以在服务范围内更精细的进行组播地址范围的划分,增强服务的灵活性和安全性,有利于网络管理。另外,现有技术中由于要保证完整IPv4地址的32位,IPv6组播地址前缀的长度最长为96,而本发明中支持使用基于IPv4地址后缀的IPv6组播地址组成方式,没有前缀长度的限制,甚至可以扩展到IPv6极限的128位,能够更好的利用IPv6组播地址空间。
下面结合具体的实施例对本发明的组播地址的转换方法进行介绍:
实施例一
本实施例能够将IPv4组播地址转换为IPv6组播地址,如图5所示,本实施例具体包括以下步骤:
首先需要获取预先定义的一组转换规则,这一组规则中可以包含一条或多条转换规则。
1、输入待转换的IPv4组播地址ipv4_m_addr,在该组转换规则中进行匹配,具体可以按照IPv4组播地址前缀最长匹配的原则进行匹配;
2、如果没有匹配到转换规则,则做结束处理;如果匹配到一条转换规则,进入步骤3;
3、获取匹配的转换规则,其中包含rule_ipv6_m_prefix和其他参数;
4、判断转换规则中是否有rule_ipv4_type,如果转换规则没有包含这个参数或是这个参数值为0,进入步骤5,如果转换规则包含了这个参数且参数为1,则进入步骤9;
5、根据转换规则中rule_ipv4_m_prefix和输入的IPv4组播地址计算ipv4_m_suffix,包括计算其长度;
6、判断转换规则中rule_ipv4_offset参数是否存在,如果不存在,则进入步骤7,如果存在进入步骤8;
7、IPv6组播地址按照rule_ipv6_m_prefix在最前,ipv4_m_suffix在最后的方式组成,其他空位补0。组成目标IPv6组播地址ipv6_m_addr,进入步骤12;
8、IPv6组播地址把rule_ipv6_m_prefix在最前,从rule_ipv4_offset指定的位置的后一位开始放置ipv4_m_suffix,其余空位补0。进入步骤12;
9、判断转换规则中rule_ipv4_offset参数是否存在,如果不存在,则进入步骤10,如果存在进入步骤11;
10、IPv6组播地址按照rule_ipv6_m_prefix在最前,ipv4_m_addr在最后的32位方式组成,其他空位补0。组成目标IPv6组播地址ipv6_m_addr,进入步骤12;
11、IPv6组播地址把rule_ipv6_m_prefix在最前,从rule_ipv4_offset指定的位置的后一位开始放置ipv4_m_addr,其余空位补0。进入步骤12;
12、输出转换结果,也就是目标IPv6组播地址ipv6_m_addr。
以上流程只是给出一种从IPv4组播地址向IPv6组播地址转换的流程,其中对可选包含参数rule_ipv4_type和rule_ipv4_offset的判断先后顺序可以进行改变。上述流程是先判断的rule_ipv4_type后判断rule_ipv4_offset,也可以用先判断rule_ipv4_offset后判断rule_ipv4_type对流程进行调整,涉及到步骤细节稍有不同,流程中执行步骤也可以进行简单的拆分或合并,但不影响输出结果。
实施例二:
本实施例能够将IPv6组播地址转换为IPv4组播地址,如图6所示,本实施例具体包括以下流程:
前置条件是获取预先定义的一组转换规则,这一组规则中可以包含一条或多条转换规则。
1、输入待转换的IPv6组播地址ipv6_m_addr,在转换规则中进行匹配,具体地,可以按照IPv6地址前缀最长匹配的原则进行匹配;
2、如果没有匹配到转换规则,则做结束处理;如果匹配到一条转换规则,进入步骤3;
3、获取匹配的转换规则,其中包含rule_ipv4_m_prefix和其他参数;
4、判断转换规则中是否有rule_ipv4_type,如果转换规则中没有这个参数或是这个参数值为0,进入步骤5,如果存在这个参数且参数为1,则进入步骤10;
5、根据转换规则中rule_ipv4_m_prefix计算ipv4_m_suffix的长度;
6、判断转换规则中rule_ipv4_offset参数是否存在,如果不存在,则进入步骤7,如果存在进入步骤8;
7、根据ipv4_m_suffix的长度在输入IPv6组播地址最后的部分获取ipv4_m_suffix,进入步骤9;
8、按rule_ipv4_offset指定的位置,从输入的IPv6组播地址偏移rule_ipv4_offset位,按照ipv4_m_suffix的长度从其后一位开始获取ipv4_m_suffix。进入步骤9;
9、拼接rule_ipv4_m_prefix和ipv4_m_suffix得到目标IPv4组播地址ipv4_m_addr,进入步骤13
10、判断转换规则中rule_ipv4_offset参数是否存在,如果不存在,则进入步骤11,如果存在进入步骤12;
11、从输入IPv6组播地址最后段的部分获取32位的ipv4_m_addr,进入步骤13;
12、按rule_ipv4_offset指定的位置,从输入的IPv6组播地址偏移rule_ipv4_offset位,从其后一位开始获取32位的ipv4_m_addr,进入步骤13;
13、输出转换结果,也就是目标IPv4组播地址ipv4_m_addr。
以上流程只是给出一种从IPv6组播地址向IPv4组播地址转换的流程,其中对可选包含参数rule_ipv4_type和rule_ipv4_offset的判断先后顺序可以进行改变。上述流程是先判断的rule_ipv4_type后判断rule_ipv4_offset,也可以用先判断rule_ipv4_offset后判断rule_ipv4_type对流程进行调整,涉及到步骤细节稍有不同,流程中执行步骤也可以进行简单的拆分或合并,但不影响输出结果。
下面结合具体的应用场景对本发明的组播地址的转换装置进行介绍:
图7为本发明实施例的组播地址的转换装置的一种应用场景,在图7中转换装置连接IPv6和IPv4网络。IPv6网络中有计算机1,想要获取由IPv4网络中的计算机2发出的组播数据。
转换装置获取的转换规则中包含两个转换规则:
{ff18:5::/40, 235.0.0.0/24, 104, 0};
{ff18:6::/40, 235.1.0.0/24, 96, 1};
假设计算机1想要获取的组播数据的组地址是ff18:5::6:0;计算机2发送的组播数据目标地址是235.0.0.6。
在计算机1向计算机2进行数据请求时,计算机1发送对组ff18::6:0的报告报文,如MLD(Multicast Listener Discover,组播侦听发现)报告报文,经过网络组播协议传输到转换装置。
转换装置用ff18:5::6:0去匹配转换规则,正好匹配到rule_ipv6_m_prefix的ff18:5::/40,得到这条转换规则。该转换规则中rule_ipv4_type是0,表示是基于IPv4组播地址后缀的IPv6组播地址格式。转换规则中对应rule_ipv4_m_prefix是235.0.0.0/24,则可以得知ipv4_m_suffix长度为8比特。再从转换规则中获取rule_ipv4_offset是104,就可以从ff18:5::6:0的第105位开始获取8个比特的数据也就是0x06,按照10进制是6,拼接rule_ipv4_m_prefix和ipv4_m_suffix就可以得到IPv4组播地址235.0.0.6。这样经过转换装置的组播协议报文就把在IPv6报文中使用的请求组播地址ff18:5::6:0转换成了在IPv4网络中使用的235.0.0.6。
在IPv4网络部分,由转换装置向网络中发送过来关于235.0.0.6的组播协议报文,比如PIM-SM(Protocol Independent Multicast-Sparse Mode,稀疏模式独立组播协议)加入报文,一直发送到计算机2连接的第一跳组播路由设备上,建立跨地址族的网络转发路径,把235.0.0.6的组播数据引向转换装置。
组播数据流到达转换装置用235.0.0.6去匹配转换规则,正好匹配到rule_ipv4_m_prefix的235.0.0.0/24,得到这条转换规则,rule_ipv6_m_prefix是ff18:5::/40。转换规则中rule_ipv4_type是0,表示是基于IPv4组播地址后缀的IPv6组播地址格式。根据235.0.0.0/24和235.0.0.6可以得到ipv4_m_suffix为6,长度为8比特。目标IPv6组播地址ipv6_m_addr,前面的部分用rule_ipv6_m_prefix填充,也就是ff118:5::,转换规则中rule_ipv4_offset是104,就是在ipv6_m_addr的第105位放置ipv4_m_suffix,rule_ipv6_m_prefix和ipv4_m_suffix之间以及ipv4_m_suffix后的空余位补0,得到ff18:5::6:0。这样经过转换装置,IPv4网络中使用235.0.0.6的组播数据流到达IPv6网络中就转换成ff18:5::6:0。从而根据组播协议建立的组播转发条目发送,一直到计算机1。
上述方案仅用于说明地址转换的过程,而不限制组播协议报文和数据部分如何转换。
图8为本发明实施例的组播地址的转换装置的另一种应用场景,在图8中转换装置1连接IPv6网络A和IPv4网络B,转换装置2连接IPv4网络B和IPv6网络C。IPv6网络A中有计算机1,想要通过IPv4网络B来获取IPv6网络C中的计算机2发出的组播数据。
转换装置1和转换装置2获取的转换规则包含两条转换规则:
{ff18:5::/40, 235.0.0.0/24, 104, 0};
{ff18:6::/40, 235.1.0.0/24, 96, 1};
假设计算机1想要获取的组播数据的组地址是ff18:5::6:0;计算机2发送的组播数据目标地址是ff18:5::6:0。
计算机1发送关于ff18:5::6:0的组播请求信息,进过网络传递和协议转换到达转换装置1,根据图7说明的具体转换方式,依照转换规则把ff8:5::6:0转换成235.0.0.6,并发送到网络B中。经过网络B的传送到达转换装置2,同样根据图7说明的具体转换方式,依照转换规则把235.0.0.6转换成ff18:5::6:0,在网络C中使用ff8:5::6:0进行组播加入。建立跨地址族的网络转发路径。而网络C中计算机2则发送ff18:5::6:0的组播数据,经过转换装置2后转换成235.0.0.6在网络B中继续传播,再经过转换装置1后转换成ff18:5::6:0发送到网络A中的计算机1。
图7和图8只是选择两种场景介绍本发明的组播地址的转换装置的使用场景,而本发明的组播地址的转换装置的使用场景不限于这两种场景,如IPv4网络获取IPv6网络的组播数据,IPv4网络跨IPv6网络获取IPv4网络组播数据的场景同样可以使用。
本发明的技术方案提供了IPv4组播地址和IPv6组播地址间的转换方法,以及执行这种转换方法的转换装置,应用场景广泛,而且可以通过设置的转换规则对现有组播地址转换技术兼容。IPv4组播地址后缀的使用,更充分的释放了IPv6前缀的长度空间,多前缀规则的使用可以对服务范围内组播地址使用进行更精细的划分,增强组播服务的灵活性和安全性,更易于管理。
此说明书中所描述的许多功能部件都被称为模块,以便更加特别地强调其实现方式的独立性。
本发明实施例中,模块可以用软件实现,以便由各种类型的处理器执行。举例来说,一个标识的可执行代码模块可以包括计算机指令的一个或多个物理或者逻辑块,举例来说,其可以被构建为对象、过程或函数。尽管如此,所标识模块的可执行代码无需物理地位于一起,而是可以包括存储在不同物理上的不同的指令,当这些指令逻辑上结合在一起时,其构成模块并且实现该模块的规定目的。
实际上,可执行代码模块可以是单条指令或者是许多条指令,并且甚至可以分布在多个不同的代码段上,分布在不同程序当中,以及跨越多个存储器设备分布。同样地,操作数据可以在模块内被识别,并且可以依照任何适当的形式实现并且被组织在任何适当类型的数据结构内。所述操作数据可以作为单个数据集被收集,或者可以分布在不同位置上(包括在不同存储设备上),并且至少部分地可以仅作为电子信号存在于系统或网络上。
在模块可以利用软件实现时,考虑到现有硬件工艺的水平,所以可以以软件实现的模块,在不考虑成本的情况下,本领域技术人员都可以搭建对应的硬件电路来实现对应的功能,所述硬件电路包括常规的超大规模集成(VLSI)电路或者门阵列以及诸如逻辑芯片、晶体管之类的现有半导体或者是其它分立的元件。模块还可以用可编程硬件设备,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等实现。
在本发明各方法实施例中,所述各步骤的序号并不能用于限定各步骤的先后顺序,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,对各步骤的先后变化也在本发明的保护范围之内。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种组播地址的转换方法,其特征在于,包括:
获取待转换的组播地址所对应的转换规则,所述转换规则包括有组播地址前缀、IPv4组播地址类型和IPv4组播地址偏移位置;
根据所述转换规则将所述组播地址转换为目标组播地址。
2.根据权利要求1所述的组播地址的转换方法,其特征在于,在所述待转换的组播地址为IPv4组播地址时,所述转换规则包括有IPv6组播地址前缀和IPv4组播地址前缀,在所述IPv4组播地址类型指示基于IPv4组播地址后缀形成所述目标组播地址时,所述根据所述转换规则将所述组播地址转换为目标组播地址包括:
根据所述IPv4组播地址前缀和所述IPv4组播地址计算出IPv4组播地址后缀;
在IPv6地址的起始位置放置所述IPv6组播地址前缀,在所述IPv4组播地址偏移位置指示的位置放置所述IPv4组播地址后缀,其它空位置0,形成目标IPv6组播地址。
3.根据权利要求2所述的组播地址的转换方法,其特征在于,
在所述转换规则包括有IPv4组播地址偏移位置参数时,所述IPv4组播地址偏移位置指示在IPv6地址中从所述IPv4组播地址偏移位置参数定义的起始偏移位置的后一位开始放置所述IPv4组播地址后缀;
在所述转换规则未包括IPv4组播地址偏移位置参数时,所述IPv4组播地址偏移位置指示在IPv6地址的最后位置放置所述IPv4组播地址后缀。
4.根据权利要求1所述的组播地址的转换方法,其特征在于,在所述待转换的组播地址为IPv4组播地址时,所述转换规则包括有IPv6组播地址前缀和IPv4组播地址前缀,在所述IPv4组播地址类型指示基于IPv4组播地址形成所述目标组播地址时,所述根据所述转换规则将所述组播地址转换为目标组播地址包括:
在IPv6地址的起始位置放置所述IPv6组播地址前缀,在所述IPv4组播地址偏移位置指示的位置放置所述IPv4组播地址,其它空位置0,形成目标IPv6组播地址。
5.根据权利要求4所述的组播地址的转换方法,其特征在于,
在所述转换规则包括有IPv4组播地址偏移位置参数时,所述IPv4组播地址偏移位置指示在IPv6地址中从所述IPv4组播地址偏移位置参数定义的起始偏移位置的后一位开始放置所述IPv4组播地址;
在所述转换规则未包括IPv4组播地址偏移位置参数时,所述IPv4组播地址偏移位置指示在IPv6地址的最后32位放置所述IPv4组播地址。
6.根据权利要求1所述的组播地址的转换方法,其特征在于,在所述待转换的组播地址为IPv6组播地址时,所述转换规则包括有IPv4组播地址前缀,在所述IPv4组播地址类型指示基于IPv4组播地址后缀形成所述目标组播地址时,所述根据所述转换规则将所述组播地址转换为目标组播地址包括:
根据所述IPv4组播地址前缀的长度计算出IPv4组播地址后缀的长度;
所述IPv6组播地址中,在IPv6组播地址偏移位置指示的位置根据所述IPv4组播地址后缀的长度获取IPv4组播地址后缀;
拼接所述IPv4组播地址前缀和所述IPv4组播地址后缀形成目标IPv4组播地址。
7.根据权利要求6所述的组播地址的转换方法,其特征在于,
在所述转换规则包括有IPv4组播地址偏移位置参数时,所述IPv4组播地址偏移位置指示在所述IPv6组播地址中从所述IPv4组播地址偏移位置参数定义的起始偏移位置的后一位开始获取所述IPv4组播地址后缀;
在所述转换规则未包括IPv4组播地址偏移位置参数时,所述IPv4组播地址偏移位置指示在所述IPv6组播地址的最后位置获取所述IPv4组播地址后缀。
8.根据权利要求1所述的组播地址的转换方法,其特征在于,在所述待转换的组播地址为IPv6组播地址时,所述IPv4组播地址类型指示基于IPv4组播地址形成所述目标组播地址时,所述根据所述转换规则将所述组播地址转换为目标组播地址包括:
所述IPv6组播地址中,在所述IPv6组播地址偏移位置指示的位置获取32位的地址作为所述目标IPv4组播地址。
9.根据权利要求8所述的组播地址的转换方法,其特征在于,
在所述转换规则包括有IPv4组播地址偏移位置参数时,所述IPv4组播地址偏移位置指示在所述IPv6组播地址中从所述IPv4组播地址偏移位置参数定义的起始偏移位置的后一位开始获取所述IPv4组播地址;
在所述转换规则未包括IPv4组播地址偏移位置参数时,所述IPv4组播地址偏移位置指示在所述IPv6组播地址的最后32位获取所述IPv4组播地址。
10.一种实现如权利要求1-9中任一项所述方法的组播地址的转换装置,其特征在于,所述装置包括:
获取模块,用于获取待转换的组播地址所对应的转换规则,所述转换规则包括有组播地址前缀、IPv4组播地址类型和IPv4组播地址偏移位置;
转换模块,用于根据所述转换规则将所述组播地址转换为目标组播地址。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310005691.XA CN103051744B (zh) | 2013-01-08 | 2013-01-08 | 组播地址的转换方法及装置 |
PCT/CN2013/081651 WO2013189346A2 (zh) | 2013-01-08 | 2013-08-16 | 一种组播地址的转换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310005691.XA CN103051744B (zh) | 2013-01-08 | 2013-01-08 | 组播地址的转换方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103051744A true CN103051744A (zh) | 2013-04-17 |
CN103051744B CN103051744B (zh) | 2016-03-30 |
Family
ID=48064237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310005691.XA Active CN103051744B (zh) | 2013-01-08 | 2013-01-08 | 组播地址的转换方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103051744B (zh) |
WO (1) | WO2013189346A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013189346A2 (zh) * | 2013-01-08 | 2013-12-27 | 中兴通讯股份有限公司 | 一种组播地址的转换方法及装置 |
CN110198365A (zh) * | 2019-05-27 | 2019-09-03 | 杭州迪普科技股份有限公司 | 一种地址转换检测方法及系统 |
CN112769973A (zh) * | 2020-12-25 | 2021-05-07 | 清华大学 | 一种网络地址与网络地址转换规则的匹配方法 |
CN113014692A (zh) * | 2021-03-16 | 2021-06-22 | 腾讯科技(深圳)有限公司 | 一种网络地址转换方法、装置、设备及存储介质 |
CN113746944A (zh) * | 2020-05-29 | 2021-12-03 | 台众计算机股份有限公司 | IPv6网点管理方法及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1503526A (zh) * | 2002-11-26 | 2004-06-09 | ������������ʽ���� | 地址转换装置和地址转换规则的管理方法 |
CN101848247A (zh) * | 2009-03-26 | 2010-09-29 | 华为技术有限公司 | 实现IPv6主机访问IPv4主机的方法、获取IPv6地址前缀的方法和转换装置 |
CN102025522A (zh) * | 2010-12-21 | 2011-04-20 | 北京星网锐捷网络技术有限公司 | 实现不同ip域之间组播的方法及边界网关路由器 |
EP2413544A1 (en) * | 2009-03-26 | 2012-02-01 | Huawei Technologies Co., Ltd. | Method for realizing ipv6 host visting ipv4 host, method for obtaining ipv6 address prefix and translation device |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7443880B2 (en) * | 2004-06-25 | 2008-10-28 | Cisco Technology, Inc. | Arrangement for reaching IPv4 public network nodes by a node in a IPv4 private network via an IPv6 access network |
CN101197858B (zh) * | 2008-01-07 | 2011-11-30 | 杭州华三通信技术有限公司 | 地址转换方法、装置及具有该装置的路由器 |
CN101227408A (zh) * | 2008-02-02 | 2008-07-23 | 中兴通讯股份有限公司 | IPv4内部私有网络访问IPv6网络的方法及路由器 |
CN103051744B (zh) * | 2013-01-08 | 2016-03-30 | 中兴通讯股份有限公司 | 组播地址的转换方法及装置 |
-
2013
- 2013-01-08 CN CN201310005691.XA patent/CN103051744B/zh active Active
- 2013-08-16 WO PCT/CN2013/081651 patent/WO2013189346A2/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1503526A (zh) * | 2002-11-26 | 2004-06-09 | ������������ʽ���� | 地址转换装置和地址转换规则的管理方法 |
CN101848247A (zh) * | 2009-03-26 | 2010-09-29 | 华为技术有限公司 | 实现IPv6主机访问IPv4主机的方法、获取IPv6地址前缀的方法和转换装置 |
EP2413544A1 (en) * | 2009-03-26 | 2012-02-01 | Huawei Technologies Co., Ltd. | Method for realizing ipv6 host visting ipv4 host, method for obtaining ipv6 address prefix and translation device |
CN102025522A (zh) * | 2010-12-21 | 2011-04-20 | 北京星网锐捷网络技术有限公司 | 实现不同ip域之间组播的方法及边界网关路由器 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013189346A2 (zh) * | 2013-01-08 | 2013-12-27 | 中兴通讯股份有限公司 | 一种组播地址的转换方法及装置 |
WO2013189346A3 (zh) * | 2013-01-08 | 2014-02-13 | 中兴通讯股份有限公司 | 一种组播地址的转换方法及装置 |
CN110198365A (zh) * | 2019-05-27 | 2019-09-03 | 杭州迪普科技股份有限公司 | 一种地址转换检测方法及系统 |
CN110198365B (zh) * | 2019-05-27 | 2022-12-23 | 杭州迪普科技股份有限公司 | 一种地址转换检测方法及系统 |
CN113746944A (zh) * | 2020-05-29 | 2021-12-03 | 台众计算机股份有限公司 | IPv6网点管理方法及设备 |
CN113746944B (zh) * | 2020-05-29 | 2024-05-14 | 台众计算机股份有限公司 | IPv6网点管理方法及设备 |
CN112769973A (zh) * | 2020-12-25 | 2021-05-07 | 清华大学 | 一种网络地址与网络地址转换规则的匹配方法 |
CN112769973B (zh) * | 2020-12-25 | 2021-11-16 | 清华大学 | 一种网络地址与网络地址转换规则的匹配方法 |
CN113014692A (zh) * | 2021-03-16 | 2021-06-22 | 腾讯科技(深圳)有限公司 | 一种网络地址转换方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103051744B (zh) | 2016-03-30 |
WO2013189346A3 (zh) | 2014-02-13 |
WO2013189346A2 (zh) | 2013-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110784411B (zh) | 建立bier转发表项的方法、装置和系统 | |
US9237025B2 (en) | Source routing in multicast transmissions | |
CN106603407B (zh) | 组播地址的传输方法和装置 | |
CN100471162C (zh) | 一种发布及处理虚线路信息的方法和供应商边缘设备 | |
WO2017059708A1 (zh) | Bier信息的发送方法、接收方法及装置 | |
CN100550841C (zh) | 自治系统边界路由器路由发布方法及自治系统边界路由器 | |
CN101989952B (zh) | 一种组播方法及装置 | |
CN103051744B (zh) | 组播地址的转换方法及装置 | |
CN106603406B (zh) | 一种bier网络中流量工程信息通告的方法和装置 | |
CN101841485B (zh) | 组播流量分担的方法及相关装置 | |
CN101286867A (zh) | 一种网络设备的软件升级方法与系统 | |
CN104067581A (zh) | 多网关装置、复用线路通信系统、复用线路通信方法以及程序 | |
CN104468391A (zh) | 根据隧道报文的用户信息实现负载均衡的方法及系统 | |
CN113114576A (zh) | 报文发送的方法、设备和系统 | |
KR102226146B1 (ko) | 향상된 멀티캐스트 네트워크 통신들 | |
CN103609063A (zh) | 协议无关组播最后一跳路由器发现 | |
CN102217254A (zh) | 传递自举消息的方法和装置 | |
US20240022508A1 (en) | Bierv6 packet processing method, device, and system | |
CN104734961B (zh) | 基于fc交换网络的路由选择方法 | |
WO2018010566A1 (zh) | 信息的通告方法、转发条目的生成方法及装置 | |
CN101547110A (zh) | 一种组播源的注册方法、系统和设备 | |
CN105763411A (zh) | 一种建立组播隧道的方法及装置 | |
CN104753779A (zh) | 一种云群虚拟路由系统及其实现方法 | |
CN101217446B (zh) | 实现隧道边缘设备IPv6路由信息自动学习的方法和系统 | |
KR102568754B1 (ko) | Bierv6 패킷 전달 방법, 장치 및 시스템 |
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 |