IPv6基础知识

ops/2024/11/18 5:42:05/

IPv6是由IEIF提出的互聯網協議第六版,用來替代IPv4的下一代協議,它的提出不僅解決了網絡地址資源匱乏問題,也解決了多種接入設備接入互聯網的障礙。IPv6的地址長度為128位,可支持340多萬億個地址。如下圖,3ffe:1900:fe21:4545:0000:0000:0000:0000,這是一個IPv6地址,IPv6地址通常分為8組,4個十六進制數為一組,每組之間用冒號分隔。

 

Pv6是Internet Protocol Version 6的缩写,其中Internet Protocol译为“互联网协议”。IPv6是IETF(互联网工程任务组,Internet Engineering Task Force)设计的用于替代现行版本IP协议(IPv4)的下一代IP协议,号称可以为全世界的每一粒沙子编上一个网址。

由于IPv4最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展。IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。

IPv6的地址长度为128b,是IPv4地址长度的4倍。于是IPv4点分十进制格式不再适用,采用十六进制表示。IPv6有3种表示方法。

一、冒分十六进制表示法

格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16b,以十六进制表示,例如:

ABCD:EF01:2345:6789:ABCD:EF01:2345:6789

这种表示法中,每个X的前导0是可以省略的,例如:

2001:0DB8:0000:0023:0008:0800:200C:417A→ 2001:DB8:0:23:8:800:200C:417A

二、0位压缩表示法

在某些情况下,一个IPv6地址中间可能包含很长的一段0,可以把连续的一段0压缩为“::”。但为保证地址解析的唯一性,地址中”::”只能出现一次,例如:

FF01:0:0:0:0:0:0:1101 → FF01::1101

0:0:0:0:0:0:0:1 → ::1

0:0:0:0:0:0:0:0 → ::

三、内嵌IPv4地址表示法

为了实现IPv4-IPv6互通,IPv4地址会嵌入IPv6地址中,此时地址常表示为:X:X:X:X:X:X:d.d.d.d,前96b采用冒分十六进制表示,而最后32b地址则使用IPv4的点分十进制表示,例如::192.168.0.1与::FFFF:192.168.0.1就是两个典型的例子,注意在前96b中,压缩0位的方法依旧适用。

地址分配是IP协议的一个最基本功能。在IPv4中地址分配依靠手动静态配置,动态配置DHCP。在IPv6中地址分配同样有静态分配和动态分配两种,但IPv6的动态分配要比IPv4的更为复杂。IPv6的地址分配分为有状态分配和无状态分配两种。

无状态地址分配(SLAAC)

无状态地址分配定义在rfc4862。它依靠NDP来实现。

IPv6的无状态自动配置就像是IPv6的“迷你dhcp”服务器。运行IPv6的路由器可以为寻找IPv6地址的客户端提供网络的前缀和网关地址。IPv6使用NDP(邻居发现协议),使用RS(路由请求)和RA(路由器通告)消息,帮助IPv6设备自动配置IPv6地址。无状态地址配置的好处是在没有DHCP的网络中无需手动配置IP地址,省事省力。另外网络整体迁移容易,当一个站点的网络前缀发生变化时,主机能够方便地进行重新编址而不影响网络连接。

配置过程:

1、设备接口先确定自己的链路本地地址;

2、验证该链路本地地址在链路上的唯一性;

3、创建全球唯一地址

DHCPv6地址分配

DHCPv6定义在rfc3315中。DHCPv6是一种地址配置协议,它可以获得IP地址、IP前缀和在IPv6网络中操作所需的其他配置数据。

DHCPv6有无状态和有状态配置两种,无状态配置地址的获取用上面的SLAAC机制来获取IP地址,其他信息比如DNS域名服务器信息由DHCPv6提供。

DHCP有状态和无状态地址分配比较

DHCPv6客户端使用的UDP端口号是546,服务器的端口号为547。

DHCPv6客户端发出包含快速提交(Rapid Commit)选项的Solicit消息,请求首选快速分配地址/前缀和其他配置参数。 如果DHCPv6服务器支持快速分配,它将使用包含分配的IPv6地址/前缀和其他配置参数的Reply消息进行响应。如果DHCPv6服务器不支持快速分配,则使用下面的四条消息的分配方式。

1、DHCPv6客户端发出Solicit消息,请求IPv6地址/前缀和其他配置参数。

2、 如果Solicit消息不包含Rapid Commit选项,或者DHCPv6服务器不支持快速分配,但包含Rapid Commit选项,则DHCPv6服务器响应Advertise消息,通知DHCPv6客户端可分配的地址/前缀和其他配置参数。

3、DHCPv6客户端可能会收到不同DHCPv6服务器提供的多个Advertise消息。然后,它根据接收顺序和服务器优先级选择,并向所选服务器发送请求消息以确认。

4、DHCPv6服务器向客户端发送Reply消息,确认地址/前缀和其他配置参数已分配给客户端。

地址/前缀租约更新过程

DHCPv6服务器分配的IPv6地址/前缀是有有效期的,这是“租”来的地址,在有效期失效前需要续租。

在T1时间点,DHCPv6客户端向DHCPv6服务器单播Renew消息,该服务器为DHCPv6客户端分配了IPv6地址/前缀。T1的推荐值是首选寿命(Preferred Lifetime)的一半。然后,DHCPv6服务器以Reply消息响应,通知租约已续订。

如果DHCPv6客户端在T1发送Renew消息后没有收到DHCPv6服务器的响应,它会向T2上的所有DHCPv6服务器多播Rebind消息,即80%首选寿命(Preferred Lifetime)到期时。然后,DHCPv6服务器以Reply消息响应,通知租约已续订。如果DHCPv6客户端没有收到DHCPv6服务器的响应,则当有效生存期到期时,客户端将停止使用地址/前缀。

DHCP惟一标识符

client 使用DHCP惟一标识符(DUID)从DHCPv6服务器获取一个IP地址。它有一个2字节的DUID类型字段,一个可变长度标识符字段最多可达128个字节。它的实际长度取决于它的类型。服务器将DUID与它的数据库进行比较,并将配置数据(地址、租期、DNS服务器等)发送给客户端。


http://www.ppmy.cn/ops/134634.html

相关文章

K8s学习笔记之了解k8s的网络模型

文章目录 docker 网络模型容器与容器之间,容器与宿主机之间如何通信容器访问外部网络外部网络访问容器 k8s 网络模型CNIpod 网络配置流程 k8s 热门网络插件介绍Flannel 来源Calico 来源Cilium 来源 k8s 网络插件的工作模式Flannel 的工作模式Calico 的工作模式BGP 和…

【STM32】USART串口协议

文章目录 串口通信串口的基本概念串口硬件电路串口参数及时序 USART介绍USART基本概念USART框图USART简化结构图USART常用库函数 串口发送接线图Strial模块串口常用的模块函数printf( ) 函数的移植方法一方法二 main.c 源程序 串口发送接收接线图Strial模块main.c 源程序 STM32…

初识C++(四)

最好的都在路上 多次函数调用的缺陷 我们先来看代码 int Add(int x, int y) {return x y; } int main() {int ret 0;ret Add(2, 3);ret Add(2, 3);ret Add(2, 3);ret Add(2, 3);ret Add(2, 3);ret Add(2, 3);ret Add(2, 3);return 0; } 根据我们在函数栈帧这节课中…

从dos上传shell脚本文件到Linux、麒麟执行报错“/bin/bash^M:解释器错误:没有那个文件或目录”

[rootkylin tmp]#./online_update_wars-1.3.0.sh ba51:./online_update_wars-1.3.0.sh:/bin/bash^M:解释器错误:没有那个文件或目录 使用scp命令上传文件到麒麟系统,执行shell脚本时报错 “/bin/bash^M:解释器错误:没有那个文件或目录” 解决方法: 执行…

wordpress使用相关

这里写目录标题 遇到的相关问题WordPress安装插件过程中遇到需要ftp出现确实XMLReader 插件的提示cURL Support Missing(curl 缺失) 遇到的相关问题 WordPress安装插件过程中遇到需要ftp 一般在这个位置 出现确实XMLReader 插件的提示 解决&#xff1a…

第二十章 TCP 客户端 服务器通信 - 立即发送模式(Q 模式)

文章目录 第二十章 TCP 客户端 服务器通信 - 立即发送模式(Q 模式)立即发送模式(Q 模式)流模式(S模式)缓冲区大小 服务器端OPEN命令 第二十章 TCP 客户端 服务器通信 - 立即发送模式(Q 模式) 立即发送模式…

第二十一章 TCP 客户端 服务器通信 - 客户端OPEN命令

文章目录 第二十一章 TCP 客户端 服务器通信 - 客户端OPEN命令客户端OPEN命令 第二十一章 TCP 客户端 服务器通信 - 客户端OPEN命令 客户端OPEN命令 客户端OPEN命令与服务器端OPEN命令只有一个方面的不同:第一个设备参数必须指定要连接的主机。要指定主机&#xf…

本地项目运行提示跨域问题

项目背景:我使用phpwebstudy在本地搭建了一个项目,然后前端是http://localhost:8080/ 后端我直接创建了一个本地域名,例如www.abc.com 然后vue.config.js配置如下,这个配置在我所有线上环境是没有任何问题的 devServer: {proxy…