分享好友 最新动态首页 最新动态分类 切换频道
网络网络层之(3)IPv6地址
2024-12-25 14:08

Author: Once Day Date: 2024年4月2日

网络网络层之(3)IPv6地址

一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦…

漫漫长路,有人对你微笑过嘛…

全系列文档可参考专栏:通信网络技术_Once-Day的博客-CSDN博客。

参考文章:

  • 《TCP/IP详解卷一》
  • IEEE RA Guidelines for Use of EUI, OUI, and CID
  • IPv6本地链路地址生成方式_ipv6_addr_gen_mode-CSDN博客
  • RFC 2373: IP Version 6 Addressing Architecture (rfc-editor.org)
  • RFC 2464: Transmission of IPv6 Packets over Ethernet Networks (rfc-editor.org)
  • RFC 4291: IP Version 6 Addressing Architecture (rfc-editor.org)

1. 概述
1.1 基础信息

IPv6地址是互联网协议第六版(Internet Protocol Version 6)的一部分,它是为了解决IPv4地址耗尽问题而设计的新一代互联网地址协议。

IPv6地址使用128位地址长度,相较于IPv4的32位,大幅增加了地址空间,可以为地球上几乎每一粒沙子分配一个唯一的网络地址。

它通常使用十六进制表示,并且通过冒号(:)分隔成8组,每组4个十六进制数。例如,一个IPv6地址可能看起来像这样:。

IPv6很多地方规则与IPv4一致,因此本文不再描述那些与IPv4一样的内容,而是谈谈IPv6比较独特的地方。

1.2 IPv6地址简化表示方法

IPv6地址由于其128位的长度,以标准方式表示时非常长,因此在实际使用中,人们通常会采用简化表示法来减少地址的复杂性。IPv6地址简化的基本规则包括以下方面[RFC4291]

  1. 省略前导零:在IPv6地址的每个16位字段中,可以省略字段起始部分的所有零。例如,“0042"可以简化为"42”,“0A00"可以简化为"A00”。

  2. 双冒号缩写:在IPv6地址中,一连串的零可以被替换为"::“(双冒号)。这个简化规则只能使用一次,因为多次使用会造成地址不明确。例如,可以被简化为。如果地址中有多个零段,通常会将最长的连续零段替换为”::"以进行最大程度的简化。

  3. 在IPv6格式中嵌入IPv4地址可以采用混合符号形式,紧接着IPv4部分的地址块的值为ffff,地址其与部分使用点分四组格式。如表示由IPv4地址()映射的IPv6地址。

  4. IPv6地址的低32位通常采用点分四组表示法,例如可以表示为,称为IPv4兼容的IPv6地址。

例如,完整的IPv6地址可以被简化为。

需要注意的是"::"不能用于省略单个零段,因为这会导致地址的歧义。

[RFC5952]制定了一些规则,以缩小选择范围,减少不必要的混淆。

  1. 前导的零必须被压缩,例如变成。
  2. 用于影响最大的地方,以压缩最多的零,如果多个块中包含等长度的零,顺序靠前的块将被替换为。
  3. a到f的十六进制数字应该使用小写表示。

在URL等场景下,IPv6的冒号会和端口号冲突,因此需要使用括号包围IPv6地址,如下表示:

 
2. IPv6地址
2.1 IPv6地址构成

IPv6地址比IPv4长了四倍,因此能表示的地址数目范围非常大,也没有像IPv4一样分为A/B/C/D类地址。

IPv6吸取了IPv4子网划分的优点,直接一步到位,使用CIDR表示,通过前缀表示法,来划分许多特殊地址范围,如范围内的地址全都是本地链路地址,不能用于公共互联网。

IPv6也没有广播地址,因此不用像IPv4一样去区分子网号和主机号,直接根据地址范围划分作用。

常见IPv6地址范围划分如下:

前缀描述默认路由条目,不用于寻址。未指定地址 (Unspecified Address),可用于源IP地址。环回地址 (Loopback Address),类似于IPv4中的127.0.0.1。唯一本地地址 (Unique Local Address, ULA),不用于公共互联网。链路本地地址 (Link-Local Address),只在单个链路上有效,不会被路由器转发到其他链路。多(组)播地址 (Multicast Address),仅作为目的IP地址使用。IPv4映射地址 (IPv4-mapped IPv6 Address),只用于内部主机。IPv4-IPv6转换地址 (IPv4-IPv6 Translation Address),用于自动IPv4/IPv6转换机制(如NAT64)。

通常一个网络接口上会有多个IPv6地址(本地链路地址+全球单播地址+组播地址等等),而IPv4一般只有一个地址。

2.2 IPv6本地链路地址

链路本地IPv6地址使用接口标识符(IID)作为组成之一,通常直接由接口的链路层MAC地址形成,如下:

在IEEE标准中,EUI表示扩展唯一标识符,分成EUI-64和EUI-48版本。以太网中常用的是EUI-48的短格式版本,两者区别是其长度不一样。

EUI-48也就是常说的MAC地址,其第一个字节最低倒数第二位(U/G)表示该MAC地址是全局MAC地址还是本地MAC地址。

EUI-48通过在第三个字节和第四个字节中插入两个字节(0xFFFE)可以转化成EUI-64地址,再取反(U/G)位,便可以用于链路本地IPv6地址的接口标识符组成。反转目的是将原来的全局MAC地址变成本地MAC地址,正好对应链路本地IPv6地址含义

例如,接口MAC地址是,那么其IPv6链路本地地址是。

下面是Linux设备上的IPv6链路本地地址实例

 

Mac地址是,有,这是一个本地MAC地址,取反之后,即。

然后添加,便构造出实际的链路本地IPv6地址。

对于其他链路层或者IP隧道协议,会使用各自独特的标识符来创建,例如隧道IP地址。

注意,这里细心的人也许发现了,是个本地MAC地址,反转之后不就变成了全局MAC地址呢

确实如此,这是实践带来的问题,上述设备是qemu虚拟设备,因此使用了本地MAC地址。在[RFC 4291]中,明确表示EUI-64地址反转位后,其含义仅供参考,不强行要求对应本地链路含义。

简单来说,修改后的EUI-64地址能对应上“链路本地”含义最好,不能对应也不算是错误,只是一串描述符而已

3. IPv4和IPv6地址转换
3.1 单播地址转换

在一些IPv6和IPv4过渡的网络中,需要在IPv4和IPv6之间进行转换,相关内容可以参考[RFC6144]和[RFC6052]。

该方案使用一种特殊地址格式,称为嵌入IPv4的IPv6地址,可采用如下的六种格式来进行编码

其中是一个非常有名的转换前缀,正好对应这里面的情况。除了知名前缀之外,也可以是组织为转换器分配的唯一前缀。标识对应的8位必须全为0,以保持与[RFC4291]指定标识符的兼容性,后缀位被保留,并且也应该设置为0

4. IPv6组播地址
4.1 组播地址格式

IPv6中,前缀已被预留给组播地址,其中后面的112位可用于保存组号,如下所示。

基本的IPv6组播格式包含4个标志位

  • ,保留位。
  • ,包含会合点。
  • ,使用单播前缀。
  • ,临时的地址。

4位的范围值用于表示组播的范围(全球/本地等),如下所示:

范围值描述0/3/4/6/7/9-d/f保留和未分配的值1接口和机器本地2链路和子网本地5站点本地8组织本地e全球

例如,对于IANA分配的NTP服务协议组播地址,可以跨越多个地址范围,即可变范围的组播地址,如下所示

地址描述同一机器中的所有NTP服务器同一链路/子网中的所有NTP服务器某些管理定义范围内的所有NTP服务器同一站点中的所有NTP服务器同一组织中的所有NTP服务器Internet中的所有NTP服务器

标志位(P/R/T)含义如下

位字段(标志)描述R会合点标志(0-常规的,1-包括RP地址)P前缀标志(0-常规的,1-基于单播前缀的地址)T临时标志(0-永久分配的,1-临时的)

当P位设置为1时,无须基于每个组的全球性许可,可以采用以下两个方法确定地址:

  • 基于单播前缀的IPv6组播地址分配,提前拿到一个分配的单播前缀,然后同时分配一个有效的组播地址集合。
  • 链路范围的IPv6组播,使用接口标识符,组播地址基于主机的IID标识。

P位设置为1通常也要求T位也为1,上述两种组播地址格式如下所示

例如,一个组织分配了一个单播前缀,同时也会分配一个基于单播的组播前缀。

  • 表示组播范围可以由该组织自行选择,例如链路本地(2)和组织本地(8)。
  • 表明P和T位同时设置,这个地址是基于单播前缀的IPv6组播地址分配,并且是动态的。
  • 是指单播地址前缀长度为48,然后后面接着单播前缀。

在创建唯一的链路本地范围的组播地址,可以使用接口标识符IID构建组播地址,前缀长度需要固定为255,范围只能为接口本地和链路本地。

当R和P字段设置为1时,表示组播路由协议需要知道一个会合点(RP),即可以处理一个或者多个组播组的组播路由器的IP地址。其格式如下:

RIID字段值是RP的IP地址的低4位,其余部分用零填充。

例如,对于组播地址,其范围为5(站点本地),RIID值为9,前缀长度为64(0x40),所以单播前缀为,RP地址则为。

4.1 特殊组播地址

这些地址用于IPv6协议的不同方面,包括路由协议、网络管理以及特定的网络服务。例如,ff02::1地址用于标识同一链路上的所有节点,而ff02::2用于标识同一链路上的所有路由器。Solicited-Node地址有助于IPv6邻居发现过程,它是通过在IPv6地址的最后24位前添加ff02::1:ff前缀来构造的。

组播地址范围描述节点所有节点节点所有路由器节点mDNSv6链路所有节点链路所有路由器链路DVMRP路由器链路OSPFIGP链路基于OSPFIGP设计的路由器链路RIPng路由器链路EIGRP路由器链路PIM路由器链路支持MLDv2的路由器链路所有探测器链路LL-MANET路由器链路mDNSv6链路所有DHCP代理链路LLMNR链路请求节点地址范围站点站点本地作用域的所有路由器站点mDNSv6站点所有DHCP服务器可变的保留可变的mDNSv6可变的NTP可变的聚合服务器访问协议可变的所有AC的地址(特殊范围)SSM块






也信美人终作土,不堪幽梦太匆匆......

如果这篇文章为您带来了帮助或启发,不妨点个赞👍和关注,再加上一个小小的收藏⭐

(。◕‿◕。)感谢您的阅读与支持~~~

最新文章
8个免费学习网站,悄悄惊艳所有人
嗨,大家好,我是红头发蓝胖子在这个信息爆炸的时代,学习新知识变得前所未有的简单和方便。只需要一台电脑或手机,你就能接触到各种免费的资源。而且,很多时候,这些资源都是免费的!今天,我为大家精心挑选了8个高质量的免费学习网站,
5款系统优化工具分享,给你的电脑提提速
大家随着使用电脑的时间越久,电脑上对于设置的改动就越多,有时候自己都不知道改了哪些设置,导致有些软件运行的时候总是发生错误,缺少权限什么的。还有就是在重新安装系统之后,每个选项都需要自己去优化。有自己喜欢的系统,系统作者把
DSCC:苹果即将为大部分iPad产品配备OLED屏幕
根据市场调研机构Display Supply Chain Consultants(DSCC)最新发布的报告,苹果公司计划在其大部分iPad产品中应用OLED显示技术。这些产品包括一款未来的折叠屏iPad和两款即将推出的8.5英寸和11/13英寸的OLED iPad Air。按照DSCC的预测,
AI助力电商设计,美图设计室入选2024年度AI产业落地十大创新案例
  案例评选方《每日经济新闻》表示,在电商设计领域,美图公司推出的美图设计室,从商品图、模特图生成,到海报设计、修图改图,帮助用户一站式智能生成商品物料,极大提高了电商物料设计工作的效率和质量,也为美图公司带来了显著的用户
5分钟轻松学Python:4行代码写一个爬虫
  编程不是科学,而是一门手艺 Python 具有丰富的解析库和简洁的语法,所以很适合写爬虫。这里的爬虫指的是爬取网页的“虫子”。简而言之,爬虫就是模拟浏览器访问网页,然后获取内容的程序。 爬虫工程师是个很重
360逾期多久上征信会影响信用记录
360逾期多久上征信小编导语在现代社会中,个人信用记录的好坏直接影响到我们的生活,尤其是在申请信用卡、贷款等金融服务时。360作为一家知名的互联网公司,其金融业务也受到广泛关注。那么,360逾期多久会被上征信呢?本站将详细探讨这一
2023年腾讯系列应用排行榜前十名及其实用性分析
2023年,腾讯依然在中国互联网行业中占据着举足轻重的地位,各类应用程序层出不穷,满足了用户在社交、娱乐、金融等方面的不同需求。根据最新数据,腾讯系列应用的排行榜前十名展现了其多样化的应用生态,接下来我们将对这些应用及其实用性
2024年云手机推荐榜:十大优选品牌解析
随着云手机技术的不断发展,无论是游戏玩家、社交媒体运营者,还是企业用户,都能运用提高效率和体验。相比传统手机,云手机不仅更加灵活,还能规避硬件损耗和地域限制。接下来,我们为大家盘点 2024年十大热门云手机品牌,助你找到最适合
36漫画官网v2.0v1.1.3
36官网v2.0是一款专为漫画爱好者设计的综合性漫画平台,集合了海量国内外漫画资源,涵盖了国漫、日漫、韩漫、欧美漫等多种类型,满足用户多样化的阅读需求。该版本在界面设计、用户体验及功能优化上进行了全面升级,为用户带来更加流畅、舒
## 生成PPT导出指南:涵所有导出格式与操作步骤详解
在当今数字化时代PPT演示文稿已成为商务、教育和学术交流中不可或缺的工具。制作一份高品质的PPT往往需要花费大量时间和精力。运的是人工智能()技术的崛起为咱们带来了全新的解决方案——生成PPT。本文将为您详细介绍怎样去从生成PPT导出
相关文章
推荐文章
发表评论
0评