OpenWRT下深入了解IPv6——IPv6 地址结构、前缀划分、子网的概念

news2025/1/18 21:05:46

一、IPv6地址结构、命名与分类

IPv6 地址由 128 位组成,通常以 : 分隔为 8 组 16 位。

  1.IPv6地址压缩

1).前导0可以省略

2).全为0的组可以用::替代

2.IPv6地址分类

3.EUI-64最新标识接口的方法

 比mac地址更多 

 插入FFFE

将第7bit进行反转,后得到一个路由器的id

4.常见地址类型:

a.全球单播地址

全球单播地址(Global Unicast Address, GUA)IPv6 网络中的一种地址类型,类似于 IPv4 的 公网 IP 地址。这些地址可以在全球范围内唯一标识一台设备,并通过互联网直接访问

特点:
a1.范围和前缀

全球单播地址通常以 2000::/3 开头,即范围是:

2000:0000:0000:0000:0000:0000:0000:0000
到
3FFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF

 这是全球分配的 IPv6 地址空间,占整个 IPv6 地址空间的 1/8

a2.唯一性:每个全球单播地址在全球范围内都是唯一的,由 IANA(互联网编号分配机构)分配给各大洲或地区的 RIR(区域互联网注册机构),再由 RIR 分配给 ISP 或组织。

a3.用途:用于标识在互联网中可直接路由的设备。每个设备可以有一个或多个全球单播地址。

a4.结构:全球单播地址通常由两部分组成:
                网络前缀:由 ISP 或上级组织分配,例如 /48 或 /56。
                主机标识:由本地网络生成,例如通过 SLAAC(基于 MAC 地址)或手动配置。

全球单播地址与其他 IPv6 地址的区别

地址类型前缀用途示例
全球单播地址2000::/3在全球范围内可路由的公网地址2001:db8::1
链路本地地址fe80::/10用于同一链路上的通信,不可路由fe80::1
唯一本地地址(ULA)fc00::/7本地网络内部使用的私有地址,不可路由fd00::1
多播地址ff00::/8用于组播通信,目标为多个设备ff02::1(所有节点)

全球单播地址的组成

一个典型的全球单播地址通常由以下部分组成(以 2001:db8:abcd:0001::1/64 为例):

        1.前缀:前缀部分由网络服务提供商或上级分配,通常是 /32、/48 或 /56。示例中,2001:db8 是一个前缀

        2.子网id:子网 ID 部分用于本地子网划分,例如 abcd:0001 表示第一个子网。

        3.接口 ID:剩余的 64 位用于标识设备接口,通常由 SLAAC 自动生成。

全球单播地址的应用

        1家用网络

        1.家庭用户从 ISP 获取一个 IPv6 全球单播前缀IPv6-PD(如 XXXX: /60)。

        2.路由器分发该前缀到本地设备,设备直接获取全球单播地址。

        2企业网络

        企业从 ISP 获取一个较大的前缀(如/48),然后将其划分为多个子网,每个子网分配一个全球单播前缀。

        3服务器部署

云服务、网站或公共服务(如 DNS、API)通常配置全球单播地址,便于全球访问。

全球单播地址的优点

        1全球路由可达性:与 IPv4 公网 IP 类似,但地址空间更大,不易耗尽。

        2易于配置:通过 DHCPv6 SLAAC 自动配置,无需手动指定地址。

        3支持多地址绑定:一个设备可以同时绑定多个全球单播地址,用于负载均衡或多链路通信。

b.按需回来填坑

c.。。。

d.。。。

二、前缀划分

2.1前缀组成

IPv6 地址由 128 位组成,通常表示为 8 个 16 位的十六进制数,每个数以冒号分隔。IPv6 的地址结构如下:

2408:8214:51xx:exxx::/xx

前缀:2408:8214:51xx:exxx::/xx 中的 /xx 部分表示网络地址的长度,xx 代表网络前缀的长度(以位为单位)。这个前缀确定了该地址段的范围。

前缀长度:/xx 是网络地址的前缀长度。例如 /48 或 /60,后面的部分则可以划分为子网。

2.2如何划分/60子网

IPv6 子网划分通常使用 /64 作为子网掩码(这是大多数IPv6网络的标准子网大小)。因此,从 /60 划分出多个 /64 子网,每个 /64 子网包含 64 位可用地址。

计算子网数量

/60前缀有 128 - 60 = 68 位可用来划分子网。

每个子网的大小为/60(即每个子网有 64 位地址)。因此,剩余的 68 位中有 64 位被用于划分子网。

每个 /60 前缀可以划分多少个 /64  子网?通过计算:

剩余位数 = 68 - 64 = 4 位

这意味着可以将 4 位用于子网划分。

计算子网数量:2^4 = 16 个子网

所以,2408:8214:51xx:exxx::/60 可以划分为 16 个 /64子网。

再举个例子

/48前缀的划分

前缀长度:/48,意味着前 48 位是网络前缀。

剩余位数:128 - 48 = 80 位可以用于划分子网。

如果您仍然使用 /64 作为每个子网的大小,则每个子网仍然占 64 位。

从 80 位中使用 64 位划分出子网,剩余的 80 - 64 = 16 位可以用来进一步划分子网。

计算子网数量:2^16 = 65536 个子网

所以,2408:8214:51xx:exxx::/48 可以划分出 65536 个 /64 子网。

IPv6-PD(Prefix Delegation) 是一种机制,用于动态分配 IPv6 前缀给下游设备或路由器。在这种机制下,ISP(互联网服务提供商)会分配给用户一个较大的 IPv6 前缀(如 /60 或 /48),然后用户可以通过 DHCPv6-PD 或手动配置将该前缀划分为多个更小的子网(通常为 /64)。

如果你还想在划分更多子网,要确保ISP运营商给你的前缀一定不是  /64 的前缀

128-64=64

64-64=0

2^0=1只能划分一个子网

2.3OpenWRT 中 IPv6 前缀的设置

在 OpenWRT 中,IPv6 前缀的设置通常涉及以下参数:

ip6assign:指定接口应分配多少个 IPv6 地址前缀。
ip6prefix:指定接口的 IPv6 地址前缀。
reqprefix:当使用 IPv6-PD 时,表示从上游路由器请求的前缀长度。
ip6hint:用于指定接口的 IPv6 地址后缀的某些位(例如,/64 子网中的后缀部分)。

ip6assign
这是一个常见的配置选项,通常用来为指定接口分配一定数量的 IPv6 地址前缀,通常为 /64。
默认值:ip6assign 的默认值为 64,即为每个接口分配一个 /64 的子网。

config interface 'lan'
    option ip6assign '64'

ip6prefix

ip6prefix 用于设置接口的 IPv6 地址前缀,适用于静态配置。通常,它是 ip6assign 配置的补充部分,用来指定网络前缀。

config interface 'lan'
    option ip6prefix '2408:8214:51xx:exxx::/64'

reqprefix 

  • 当使用 IPv6-PD(Prefix Delegation) 时,reqprefix 用于向上游路由器请求 IPv6 前缀的长度。例如,如果 ISP 给你分配了一个 /60 前缀,您可以使用 reqprefix 参数向上游路由器请求该前缀。
  • reqprefix 参数通常设置为 60、48 等,具体取决于 ISP 分配的前缀长度。(/60 /48的意思)
config interface 'wan'
    option proto 'pppoe'
    option ipv6 '1'
    option reqprefix '60'

在上面的配置中,reqprefix 设置为 60,表示请求一个 /60 前缀。这会允许 OpenWRT 从 ISP 那里获取一个 /60 的前缀。

ip6hint

ip6hint 用于指定 IPv6 地址的后缀位数,通常用于子网的划分,尤其是在静态配置时。

三、子网

概念

IPv6 子网(Subnet)是对一个 IPv6 地址范围的划分。与 IPv4 类似,IPv6 也需要使用子网来管理和分配地址,使得网络更加灵活和可扩展。IPv6 子网的基本概念与 IPv4 子网类似,但因为 IPv6 地址空间庞大,它为每个网络提供了更多的灵活性。

在 IPv6 中,子网通常通过 网络前缀 来定义,网络前缀的长度决定了该子网的范围。网络前缀后面的部分(即主机部分)可以被用于设备的唯一标识。

子网的划分

IPv6 子网划分主要通过 前缀长度 来实现,表示网络中可用的地址范围。

子网的前缀长度
  • /128:表示单个设备的地址,无法进一步划分。
  • /64:是最常见的子网大小,通常用来划分网络和分配给每个设备。/64 为网络前缀的长度,剩下的 64 位用于设备的地址分配。
  • /56、/60、/48 等:用于更大的网络范围,可以分配给企业或 ISP,进而划分更多的子网。

四、实例:

wan_6:

IPv6: 2408:8215:51xx:1xxx:b938:4acd:1d21:600c/64

IPv6-PD: 2408:8214:51xx:exxx::/60

  1. IPv6 地址结构

    • IPv6 地址长度为 128 位,通常用冒号十六进制表示法书写,每 16 位为一组,组与组之间用冒号 “:” 分隔。例如,一个 IPv6 地址可以写成 “xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx” 的形式,其中 “xxxx” 是一个 4 位十六进制数。
  2. 分析 IPv6 地址 2408:821x:51xx:1xxx:b938:4acd:1d21:600c/64

    • 网络前缀部分:“/64” 表示网络前缀长度为 64 位。对于这个地址,前 64 位 “2408:8215:5100:1898” 用于标识网络。在一个 IPv6 网络中,同一网络前缀下的设备被认为在同一个子网中,它们可以直接相互通信(在没有访问限制的情况下)。
    • 接口标识符部分:后 64 位 “b938:4acd:1d21:600c” 用于标识接口。接口标识符在子网内唯一地标识一个网络接口,类似于 IPv4 地址中的主机部分,但 IPv6 的接口标识符具有更多的灵活性和功能。
    • 地址类型推测:由于这是一个完整的全球单播 IPv6 地址(根据其格式和前缀长度判断),它可以在全球 IPv6 互联网中进行路由,用于设备与其他网络中的设备进行通信,例如访问互联网上的网站、与其他远程服务器交互等。
  3. 分析 IPv6 - PD 地址 2408:8214:51xx:exxx::/60

    • 网络前缀部分:“/60” 表示网络前缀长度为 60 位。这意味着前 60 位 “2408:8214:51xx:exxx” 用于标识一个较大的网络范围,这个前缀通常是由互联网服务提供商(ISP)分配给用户网络的。它可以被进一步划分成更小的子网,用于组织内部的网络布局。
    • 缩写部分解释:“::” 是 IPv6 地址中的一种缩写机制。当连续的 16 位组(每组 4 位十六进制数)为 0 时,可以用 “::” 来代替,以简化地址表示。在这里,使用 “::” 表示从第 60 位之后到结尾的部分,在完整表示时可能包含多个 0 组,但具体数量和内容未明确,只是为了简洁而省略。
    • 用途说明:IPv6 - PD(Prefix Delegation)主要用于网络地址分配管理。在网络分层架构中,上级网络设备(如 ISP 的路由器)可以将这个 / 60 前缀的地址块分配给下级设备(如企业网络的边界路由器)。下级设备可以根据自己的网络规划,将这个大的前缀划分成更小的子网(例如划分成 / 64 前缀的子网),然后分配给内部的网络设备,从而实现高效的 IPv6 网络地址分配和管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2256098.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构 ——无头单链表

数据结构 ——无头单链表 一、无头单链表的定义与特性 1、单链表简介 单链表是一种常见的基础数据结构,它由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针。无头单链表是单链表的一种变体,其特点是没有明确的头节点&#xff0…

阿拉丁论文助手:一键点亮学术之路

在学术研究的海洋中,每一位学者都渴望拥有一盏能够照亮前行道路的神灯。阿拉丁论文助手,正是这样一盏神奇的灯,它以其先进的人工智能技术和丰富的学术资源,为学者们的学术写作提供了全方位的支持。 一、阿拉丁论文助手简介 阿拉丁…

大语言模型应用Text2SQL本地部署实践初探

自从两年前OpenAI公司发布ChatGPT后,大模型(Large Language Model,简称LLM)相关技术在国内外可谓百家争鸣,遍地开花,在传统数据挖掘、机器学习和深度学习的基础上,正式宣告进入快速发展的人工智能(Artificial Intellig…

【UE5 C++课程系列笔记】07——使用定时器实现倒计时效果

使用定时器实现如下倒计时效果 效果 步骤 1. 新建一个Actor类,这里命名为“CountDownTimerActor” 2. 在头文件中先定义倒计时时间和更新剩余时间的函数方法 前向声明一个文本渲染组件 3. 在源文件中引入文本渲染组件 创建文本渲染组件并进行一些设置 实现Update…

synchronized的特性

1.互斥 对于synchronized修饰的方法及代码块不同线程想同时进行访问就会互斥。 就比如synchronized修饰代码块时,一个线程进入该代码块就会进行“加锁”。 退出代码块时会进行“解锁”。 当其他线程想要访问被加锁的代码块时,就会阻塞等待。 阻塞等待…

STM32之SDIO通讯接口和SD卡(九)

STM32F407 系列文章 - SDIO-To-SD Card(九) 目录 前言 一、SDIO接口 二、SD卡 三、实现程序 1.SD卡结构体参数说明 2.头文件定义 3.函数sd_init() 4.函数HAL_SD_MspInit() 5.函数get_sd_card_info() 6.函数get_sd_card_state() 7.函数sd_read…

Vue 提供了Transition,可以帮助你制作基于状态变化的过渡和动画

官方文档&#xff1a;https://cn.vuejs.org/guide/built-ins/transition.html Transition​ Vue 提供了两个内置组件&#xff0c;可以帮助你制作基于状态变化的过渡和动画&#xff1a; <Transition> 会在一个元素或组件进入和离开 DOM 时应用动画。本章节会介绍如何使用…

04 创建一个属于爬虫的主虚拟环境

文章目录 回顾conda常用指令创建一个爬虫虚拟主环境Win R 调出终端查看当前conda的虚拟环境创建 spider_base 的虚拟环境安装完成查看环境是否存在 为 pycharm 配置创建的爬虫主虚拟环境选一个盘符来存储之后学习所写的爬虫文件用 pycharm 打开创建的文件夹pycharm 配置解释器…

鸿蒙UI开发——渐变色效果

1、概 述 ArkTs可以通过颜色渐变接口&#xff0c;设置组件的背景颜色渐变效果&#xff0c;实现在两个或多个指定的颜色之间进行平稳的过渡。 目前提供三种渐变类型&#xff1a;线性渐变、角度渐变、径向渐变。 我们在鸿蒙UI布局实战 —— 个人中心页面开发中&#xff0c;默认…

渗透测试--数据库攻击

这篇文章瘾小生其实想了很久&#xff0c;到底是放在何处&#xff0c;最终还是想着单拎出来总结&#xff0c;因为数据库攻击对我们而言非常重要&#xff0c;而且内容众多。本篇文章将讲述在各位获取数据库权限的情况下&#xff0c;各个数据库会被如何滥用&#xff0c;以及能够滥…

Java——异常机制(上)

1 异常机制本质 (异常在Java里面是对象) (抛出异常&#xff1a;执行一个方法时&#xff0c;如果发生异常&#xff0c;则这个方法生成代表该异常的一个对象&#xff0c;停止当前执行路径&#xff0c;并把异常对象提交给JRE) 工作中&#xff0c;程序遇到的情况不可能完美。比如…

Idea Spring Initializr没有 Java 8选项解决办法

问题描述 在使用IDEA中的Spring Initializr创建新项目时&#xff0c;Java 版本近可选择Java17,21 。不能选择Java8;SpringBoot 版本也只有 3.x 问题原因 Spring 官方&#xff08; https://start.spring.io/&#xff09;不再提供旧版本的初始化配置 解决方案 方案 1 使用阿里…

npm发布插件到私有仓库保姆级教程

在开发项目的过程中&#xff0c;我们经常需要安装插件依赖&#xff0c;那么怎么把自己开发的组件封装成一个插件&#xff0c;并发布到npm 插件市场或者上传到私有仓库里面呢&#xff1f;今天总结下自己发布插件到私有仓库的记录&#xff1a; 一、创建组件 执行命令创建一个空…

渗透测试---burpsuite(5)web网页端抓包与APP渗透测试

声明&#xff1a;学习素材来自b站up【泷羽Sec】&#xff0c;侵删&#xff0c;若阅读过程中有相关方面的不足&#xff0c;还请指正&#xff0c;本文只做相关技术分享,切莫从事违法等相关行为&#xff0c;本人与泷羽sec团队一律不承担一切后果 视频地址&#xff1a;泷羽---bp&…

关闭windows11的“热门搜索”

win10搜索栏热门搜索怎么关闭&#xff1f;win10搜索栏热门搜索关闭方法分享_搜索_onecdll-GitCode 开源社区 注册表地址是&#xff1a;计算机\HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\ 最后效果如下&#xff1a;

【MySQL】视图详解

视图详解 一、视图的概念二、视图的常用操作2.1创建视图2.2查询视图2.3修改视图2.4 删除视图2.5向视图中插入数据 三、视图的检查选项3.1 cascaded&#xff08;级联 &#xff09;3.2 local(本地) 四、视图的作用 一、视图的概念 视图&#xff08;View&#xff09;是一种虚拟存…

数据结构 (22)哈夫曼树及其应用

前言 哈夫曼树&#xff08;Huffman Tree&#xff09;&#xff0c;又称最优二叉树或最优树&#xff0c;是一种特殊的二叉树结构&#xff0c;其带权路径长度&#xff08;WPL&#xff09;最短。 一、哈夫曼树的基本概念 定义&#xff1a;给定N个权值作为N个叶子结点&#xff0c;构…

Jenkins 的HTTP Request 插件为什么不能配置Basic认证了

本篇遇到的问题 还是因为Jenkins需要及其所在的OS需要升级&#xff0c;升级策略是在一台新服务器上安装和配置最新版本的Jenkins&#xff0c; 当前的最新版本是&#xff1a; 2.479.2 LTS。 如果需要这个版本的话可以在官方站点下载&#xff0c;也可以到如下地址下载&#xff1…

1.1 Beginner Level学习之“创建 ROS msg 和 srv”(第十节)

学习大纲&#xff1a; 1. msg 和 srv msg 文件是描述 ROS 消息字段的简单文本文件。它们用于为不同语言生成消息的源代码。srv 文件则描述了一个服务&#xff0c;包括两部分&#xff1a;请求和响应。Srv 文件用于生成服务的源代码。msg 文件存储在包的 msg 目录中。srv 文件存…

ubuntu中使用ffmpeg库进行api调用开发

一般情况下&#xff0c;熟悉了ffmpeg的命令行操作&#xff0c;把他当成一个工具来进行编解码啥的问题不大&#xff0c;不过如果要把功能集成进自己的软件中&#xff0c;还是要调用ffmpeg的api才行。 ffmpeg的源码和外带的模块有点太多了&#xff0c;直接用官网别人编译好的库就…