首页 > 编程知识 正文

ipv6有什么用,ipv6地址转换组播地址

时间:2023-05-03 05:41:24 阅读:50172 作者:1815

组织了有关IETF的RFC文档,总结了IPv4和IPv6地址转换映射的方法。 笔者资历浅,错误不可避免。 期待您的指正。 实际上,如果仔细研究,就可以看到标准的RFC文档。 ITF官方网站文档下载链接

本文概述了根据RFC文档出版时间的优先顺序为每个文档实现IP地址转换的思路。 为了便于理解特定内容,特定文档的说明顺序已调整,可能不符合时间优先顺序。

IPv6和IPv4地址转换RFC4291RFC6052RFC2766(NAT-pt ) RFC6146 ) NAT64 ) RFC8512RFC8215 )本地用户v4/IPv6转换首选项()

在《RFC4291》 1中,提出了实现IPv4和IPv6地址转换的两种兼容方式,81-96位均为0的兼容方式或均为1的兼容方式。 IPv6兼容的IPv4地址必须是全局单播地址,81-96位均为0的兼容方式见图1。

图1 81-96位均为0的兼容方式

IPv6地址81-96位均为1的兼容方式如图2所示。

图2 81-96位均为1的兼容方式RFC6052

《RFC6052》 2规定IPv4地址将转换为前缀长度不同的IPv6地址格式。 IPv6地址前缀的位数为32、40、48、56、64、72、80、88和96。 将32位IPv4地址直接嵌入IPv6前缀后的格式如图3所示。

图3 IPv6地址嵌入式IPv4地址

《RFC6052》规定了映射IPv4地址和IPv6地址的著名网络前缀64:ff9b:/96。 此外,有名的网络前缀只能使用最后一个前缀长度为96的IPv6地址格式。 知名网络前缀64:ff9b:/96无法映射《RFC1918》分配的专用IPv4地址。 图4说明了在《RFC6052》处使用2001-3360 db 83360-:的特定网络前缀来实现映射。

图4特定网络前缀映射RFC2766(NAT-pt ) ) ) ) ) ) ) ) ) ) )。

在介绍NAT-PT之前,您可能需要了解NAT技术,但本文不再介绍NAT技术,而是直接了解NAT-PT的原理。 论文文章成了习惯,先陈述文字再放图。 为了便于说明,这里先放置图,所以该图不视为文中的图4,只要不存在即可。 这张图摘自《RFC2766》 3。 )

如图所示,IPv6端的a和b主机通过NAT-PT连接到IPv4端的IPv4主机c。 主机a和b位于同一网络中,具有相同的网络前缀,主机c具有IPv4地址132.146.243.30,它们都是唯一的。

NAT-PT具有IPv4地址池,可以满足与IPv6地址的一对一对应关系。

当主机a开始与主机c进行通信时,源地址fedc : ba 98336033603360765433603210、目标地址prefix 33603360132.146.243.30 (prefix是IPv6网络) 如果与NAT-PT IPv6地址的网络前缀匹配的a发送了建立会话的初始化包,则假设NAT-PT分配了120.130.26.10IPv4地址并将其转发到主机c。 在这种情况下,包的源地址为120.130.26.10,目标地址为132.146.243.30。 当从主机c接收到IPv4分组时,NAT-PT基于源地址132.146.243.30和目的地地址120.130.26.10转发到主机a。 此时,源地址prefix:132.146.243.30、目标地址fedc330的主要原理是制作映射表,存储所制作的映射关系,在包到来时直接查询表

在此基础上,引入“地址端口”映射后,进程差异不大。 主要的区别是数据包。 src表示源地址,dest表示目标地址,tcp=3017表示tcp端口号3017,如以下过程所述。

A - NAT-PT :

src=fedc : ba 9833603360765433603210、tcp=3017、dest=prefix 33603360132.146.243.30、tcp=23

NAT-PT - C:

src= 120.130.26.10、tcp=1025、dest= 132.146.243.30、tcp=23

C - NAT-PT:

src= 120.130.26.10、tcp=23、dest= 132.146.243.30、tcp=1025

NAT-PT - A:

src=prefix :3360132.146.243.30,tcp=23,dest=fedc : ba 98336033607360765433603210,tcp=3017

RFC6146(NAT64 ) NAT64设备根据《RFC6052》中定义的算法使用其IPv6前缀和要转换的IPv4地址生成IPv6地址。 有状态NAT64转换包括绑定的TCP端口号和UDP端口号。 NAT64的IPv6地址池前缀为Pref64:/n。

在《RFC6146》 4示例中,根据《RFC6052》的著名网络前缀,

在NAT64 IPv6接口端建立的映射关系如下:

( 2001:db8::1, 1500 ) <–> ( 203.0.113.1, 2000 );
在IPv4接口端建立的映射关系为:( 64:ff9b::192.0.2.1, 80) <–> ( 192.0.2.1, 80 )。
《RFC6146》中NAT64会话映射表为( X’, x), (Y’, y) <–> ( T, t), ( Z, z),其中X’和Y’为IPv6地址,T和Z为IPv4地址。x, y, z和t为端口号,同时y必须等于z。

RFC8512

《RFC8512》5根据《RFC6052》地址转换算法,在NPT和NAT中实现IPv6和IPv4地址转换。IPv6地址2001:db8:1234 ::198.51.100.1采用特定网络前缀,映射至IPv4地址198.51.100.1。

RFC 8215( Local-Use IPv4/IPv6 Translation Prefix )

《RFC6052》预留了知名网络前缀64:ff9b::/96,因此《RFC8215》6将
64:ff9b::1:0:0 - 64:ff9b:0:ffff:ffff:ffff:ffff:ffff 地址分配给本地内网IPv4和IPv6地址转换使用。另一方面《RFC6052》对于分配的私有IPv4地址的限制,对IPv6前缀64:ff9b:1::/48不适用,因此64:ff9b:1::/48网络前缀可以实现私有IPv4地址转换。

RFC3306( Unicast-Prefix-based IPv6 Multicast Addresses )

在IPv6组播地址格式中,flags:P=0,IPv6组播地址非基于网络前缀;P = 1,表示IPv6组播地址基于IPv6网络前缀,当P=1时,必须满足T = 1。
scope:限制组播范围,不同值对应范围如下表所示。

valuedomain0reserved1Interface-Local scope2Link-Local scope3reserved4Admin-Local scope5Site-Local scope6(unassigned)7(unassigned)8Organization-Local scope9(unassigned)A(unassigned)B(unassigned)C(unassigned)D(unassigned)EGlobal scopeFreserved

reserved:0x00,根据《RFC 3306》7,需要清0该域。
plen:network prefix长度。
network prefix:利用IPv6网络前缀中填充该域,填充位数由plen决定。
group ID:组播ID。
当P=1.且T=1时,基于IPv6网络前缀的组播地址如图5所示。

图5 基于IPv6网络前缀组播地址
IPv4组播地址范围为224.0.0.0 - 239.255.255.255。当IPv6组播地址为239.1.1.5时,假设转换设备的IPv6地址由特定网络前缀2001:db8:122:344::/96(见图1)组成,基于IPv6网络前缀的一种IPv4组播地址转换结果为ff32:40:2001:db8:122:344:fe01:105。其中,fe01:105为239.1.1.5的十六进制,即fe.01.01.05。ff为固定格式,3代表flags=0011,2代表组播限制在Link-Local scope。0x40代表基于IPv6网络前缀的长度为64位,即2001:db8:122:344。

RFC 6219(IVI)

《RFC6219》8采用IPv6特定网络前缀解决IPv4和IPv6地址之间的无状态映射,同时利用32-39位标识IVI前缀,40-71位内嵌全球唯一的IPv4地址。IVI实现单播地址映射如图5所示。

图6 IVI单播地址映射
IVI实现IPv4组播地址和IPv6组播地址的映射,IPv4组播地址范围为232.0.0.0/8 - 232.255.255.255/8,采用的IPv6组播地址为 PIM-SSM( Protocol Independent Multicast - Source-Specific Multicast, 协议无关组播-特定于源的组播)。转换后的IPv6组播地址范围为ff3e:0:0:0:0:0:f000:0000/96 - ff3e:0:0:0:0:0:f0ff:ffff/96,32位的组播ID中,f0固定,而后24位由IPv4组播地址后24位转换而来。IVI实现IPv4组播地址和IPv6组播地址映射如图7所示。

图7 IVI实现IPv4组播和IPv6组播地址映射

RFC 8114

《RFC8114》8对组播地址转换算法进行描述,分为IPv6组播地址的组成和IPv4组播地址的获取。
IPv6组播地址:结合IPv6组播地址前缀的96位和IPv4地址的32位以获得一个128位的地址。
IPv4组播地址:如果IPv6组播地址前缀为预先配置,即可直接从组播地址后32位获取IPv4组播地址。
如图8为IPv4组播地址与IPv6组播地址转换。

图8 IPv4组播地址与IPv6组播地址转换

请在转载或引用时,说明本文章来源。

相关资料

《RFC7269》NAT64 Deployment Options and Experience
《RFC7857》Updates to Network Address Translation (NAT) Behavioral Requirements
《RFC6889》Analysis of Stateful 64 Translation
github IPv6组播实验源码

参考文献

《RFC4291》IP Version 6 Addressing Architecture ↩︎

《RFC6052》IPv6 Addressing of IPv4/IPv6 Translators ↩︎

《RFC2766》Network Address Translation - Protocol Translation (NAT-PT) ↩︎

《RFC6146》Stateful NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers ↩︎

《RFC8512》A 朴实的芹菜 Module for Network Address Translation (NAT) and Network Prefix Translation (NPT) ↩︎

《RFC8215》Local-Use IPv4/IPv6 Translation Prefix ↩︎

《RFC3306》Unicast-Prefix-based IPv6 Multicast Addresses ↩︎

《RFC8114》Delivery of IPv4 Multicast Services to IPv4 Clients over an IPv6 Multicast Network ↩︎ ↩︎

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。