热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

IPv602IPv6地址配置

(参考华为官网资料)IPv6地址配置有两种:无状态地址自动配置有状态地址自动配置协议--DHCPv6协议无状态地址自动配置的过程IPv6主

(参考华为官网资料)

IPv6地址配置有两种:

  • 无状态地址自动配置
  • 有状态地址自动配置协议 -- DHCPv6协议

无状态地址自动配置的过程

  1. IPv6主机首先通过路由器发现功能来获取地址前缀信息
  2. 通过向接口已有的48bitMAC地址中插入16bit的FFFE生成接口ID
  3. 在生成了IPv6地址后会通过重复地址检测来确认地址是否唯一

无状态地址自动配置

  • 主机可通过路由器获取到IPv6前缀并自动生成接口ID。
  • 实现流程:
    • 网络节点向相连的路由器发送RS,请求地址前缀信息。
    • 路由器通过发送路由器通告RA,回复地址前缀信息。

1441628-20180727221059377-594209675.png

  • RA报文:
    • 每台路由器为了让二层网络上的主机和其他路由器知道自己的存在,定期以组播方式发送携带网络配置参数的RA报文。
    • RA报文的Type字段值为134.
  • RS报文:
    • 主机接入网络后可以主动发送RS报文。
    • RA报文是由路由器定期发送的,但是如果主机希望能够尽快收到RA报文,他可以立刻主动发送RS报文给路由器。
    • 网络上的路由器收到该RS报文后会立即向相应的主机单播回应RA报文,告知主机该网段的默认路由器和相关配置参数。
    • RS报文的Type字段值为133.

无状态地址DAD检查

  • DAD:重复地址检测
  • 试验地址:一个IPv6单播地址在分配给一个接口之后,还未通过DAD的地址
  • Solicited-node组播组:由单播或任播地址的后24位加上地址前缀FF02:0:0:0:0:1:FF00::/104组成。
    • 例如本示例中配置的试验地址为2000::1,该地址被加入Solicited-node组播组FF02::1:FF00:1。
  • 当为接口配置IPv6地址时,DAD在本地链路范围内检测将要使用的IPv6地址是否唯一。

1441628-20180727221256361-956604381.png

  • 节点使用的自己的试验地址,并向所在的Solicited-node组播组发送一个请求,该请求是以该试验地址为目标地址的邻居请求( NS) 报文。
  • 如果收到某个其它站点回应的邻居通告( NA)报文, 就证明该地址已被网络上使用, 节点将不能使用该试验地址进行通信。
  • 这种情况下, 网络管理员需要手动为该节点分配另外一个地址。

EUI-64规范

  • 获取有效IPv6地址有三种方式可以用来配置IPv6地址的接口ID
    • 网络管理员手动配置
    • 通过系统软件生成
    • 采用扩展唯一标识符(EUI-64)格式生成,也是最常用的方式
  • IEEE EUI-64标准采用接口的MAC地址生成IPv6接口ID。
  • MAC地址只有48位,而接口ID却要求64。
  • MAC地址的前24位代表厂商ID,后24位代表制造商分配的唯一扩展标识。
  • MAC地址的第七高位是一个U/L位
    • 值为1时表示MAC地址全局唯一
    • 值为0时表示MAC地址本地唯一
  • 接口ID和路由分配的网络前缀一起组成IPv6地址。
  • MAC地址向EUI-64格式转换过程
    • MAC地址的前24位和后24位之间插入了16bit的FFFE
    • 将U/L位的值从0变成了1
  • 这样就成了一个64bit的接口ID,且接口ID的值全局唯一。

IPv6地址:
fe80::1c4b:b8ff:fe16:91c4mac地址:
1e4b:b816:91c4
--> 1e4b:b8ff:fe16:91c4 (在中间插入fffe)
--> 1c4b:b8ff:fe16:91c4 (更改第七位1为0)


有状态地址自动配置协议 -- DHCPv6协议

  • 无状态地址自动配置
    • 路由器并不记录主机的IPv6地址信息, 可管理性差
    • IPv6主机无法获取DNS服务器地址等网络配置信息
  • 有状态地址自动配置协议 -- DHCPv6协议
    • DHCPv6服务器为主机分配一个完整的IPv6地址
    • 并提供DNS服务器地址等其他配置信息
    • 对已经分配的IPv6地址和客户端进行集中管理

1441628-20180727221337872-597442401.png

  • DHCPv6服务器与客户端之间使用UDP协议来交互DHCPv6报文
    • 客户端使用的UDP端口号是546
    • 服务器使用的UDP端口号是547。

DHCPv6基本协议架构

  • DHCPv6客户端
    • 通过与DHCPv6服务器进行交互,获取IPv6地址前缀和网络配置信息,完成自身的地址配置功能。
  • DHCPv6中继
    • 负责转发来自客户端方向或服务器方向的DHCPv6报文
    • 协助DHCPv6客户端和DHCPv6服务器完成地址配置功能。
    • 只有当DHCPv6客户端和DHCPv6服务器不在同一链路范围内,或者DHCPv6客户端和DHCPv6服务器无法单播交互的情况下,才需要DHCPv6中继的参与。
  • DHCPv6服务器
    • 负责处理来自客户端或中继的地址分配、地址续租、地址释放等请求
    • 为客户端分配IPv6地址/前缀和其他网络配置信息。

1441628-20180727221541904-1611352130.png

  • 客户端发送DHCPv6请求报文来获取IPv6地址等网络配置参数,使用的源地址为客户端接口的链路本地地址,目的地址为ff02::1:2。
  • ff02::1:2表示的是所有DHCPv6服务器和中继, 这个地址是链路范围的。

DUID

  • DHCPv6 Unique Identifier
  • 标识一台DHCPv6服务器或客户端
  • DUID采用以下两种方式生成:
    • 基于链路层地址(LL)--即采用链路层地址方式来生成DUID。
    • 基于链路层地址与时间组合(LLT)--即采用链路层地址和时间组合方式来生成DUID。

DHCPv6分配地址

  • DHCPv6有状态自动分配
    • DHCPv6服务器为客户端分配IPv6地址及其他网络配置参数
  • DHCPv6无状态自动分配
    • 主机的IPv6地址仍然通过路由通告方式自动生成,DHCPv6服务器只分配除IPv6地址以外的配置参数。
  • DHCPv6客户端在向DHCPv6服务器发送请求报文之前,会发送RS报文,在同一链路范围的路由器接收到此报文后会回复RA报文。
  • 在RA报文中包含管理地址配置标记M和有状态配置标记O
    • 当M取值为1时,启用DHCPv6有状态地址配置,
    • 当M取值为0时,则启用IPv6无状态地址自动分配方案。
    • 当O取值为1时,用来定义客户端需要通过有状态的DHCPv6来获取其它网络配置参数,如DNS、NIS、SNTP服务器地址等,
    • 当O取值为0时,启用IPv6无状态地址自动分配方案。

DHCPv6有状态自动分配

1441628-20180727221609107-185277211.png

DHCPv6四步交互地址分配过程如下:

  1. DHCPv6客户端发送Solicit报文,请求DHCPv6服务器为其分配IPv6地址和网络配置参数。
  2. DHCPv6服务器回复Advertise报文,该报文中携带了为客户端分配的IPv6地址以及其它网络配置参数。
  3. DHCPv6客户端如果接收到了多个服务器回复的Advertise报文,则会根据Advertise报文中的服务器优先级等参数来选择优先级最高的一台服务器,并向所有的服务器发送Request组播报文。
  4. 被选定的DHCPv6服务器回复Reply报文,确认将IPv6地址和网络配置参数分配给客户端使用。

DHCPv6无状态自动分配

1441628-20180727221634437-812248155.png
DHCPv6无状态工作过程如下:

  1. DHCPv6客户端以组播方式向 DHCPv6服务器发送 InformationRequest报文。该报文中携带 Option Request选项, 用来指定DHCPv6客户端需要从DHCPv6服务器获取的配置参数
  2. DHCPv6服务器收到Information-Request报文后, 为DHCPv6客户端分配网络配置参数,并单播发送Reply报文,将网络配置参数返回给DHCPv6客户端。
  3. DHCPv6客户端根据收到的Reply报文中提供的参数,完成DHCPv6客户端无状态配置。

IPv6二进制转换表

十进制二进制十进制二进制
0000081000
1000191001
20010a1010
30011b1011
40100c1100
50101d1101
60110e1110
70111f1111

转:https://www.cnblogs.com/liangjingfu/p/9379788.html



推荐阅读
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • HSRP热备份路由器协议的应用及配置
    本文介绍了HSRP热备份路由器协议的应用及配置方法,包括设计目标、工作原理、配置命令等。通过HSRP协议,可以实现在主动路由器故障时自动切换到备份路由器,保证网络连通性。此外,还介绍了R1和R2路由器的配置方法以及Sw1和Sw2交换机的配置方法,最后还介绍了测试连通性和路由追踪的方法。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 本文详细介绍了cisco路由器IOS损坏时的恢复方法,包括进入ROMMON模式、设置IP地址、子网掩码、默认网关以及使用TFTP服务器传输IOS文件的步骤。 ... [详细]
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
author-avatar
忧伤丿稻草展
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有