zoukankan      html  css  js  c++  java
  • IPv6 02-IPv6地址配置

    (参考华为官网资料)

    IPv6地址配置有两种:

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

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

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

    无状态地址自动配置

    • 主机可通过路由器获取到IPv6前缀并自动生成接口ID。
    • 实现流程:
      • 网络节点向相连的路由器发送RS,请求地址前缀信息。
      • 路由器通过发送路由器通告RA,回复地址前缀信息。
    • 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地址是否唯一。
    • 节点使用的自己的试验地址,并向所在的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:91c4
    
    mac地址:
    1e4b:b816:91c4 
    --> 1e4b:b8ff:fe16:91c4 (在中间插入fffe)
    --> 1c4b:b8ff:fe16:91c4 (更改第七位1为0)
    

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

    • 无状态地址自动配置
      • 路由器并不记录主机的IPv6地址信息, 可管理性差
      • IPv6主机无法获取DNS服务器地址等网络配置信息
    • 有状态地址自动配置协议 -- DHCPv6协议
      • DHCPv6服务器为主机分配一个完整的IPv6地址
      • 并提供DNS服务器地址等其他配置信息
      • 对已经分配的IPv6地址和客户端进行集中管理
    • DHCPv6服务器与客户端之间使用UDP协议来交互DHCPv6报文
      • 客户端使用的UDP端口号是546
      • 服务器使用的UDP端口号是547。

    DHCPv6基本协议架构

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

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

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

    DHCPv6无状态自动分配

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

    IPv6二进制转换表

    十进制 二进制 十进制 二进制
    0 0000 8 1000
    1 0001 9 1001
    2 0010 a 1010
    3 0011 b 1011
    4 0100 c 1100
    5 0101 d 1101
    6 0110 e 1110
    7 0111 f 1111
  • 相关阅读:
    C#开发微信门户及应用(30)--消息的群发处理和预览功能
    C#开发微信门户及应用(30)--消息的群发处理和预览功能
    C#开发微信门户及应用(30)--消息的群发处理和预览功能
    ssh密码登陆的原理,密码的公私钥和sshkey的不是一回事
    ssh密码登陆的原理,密码的公私钥和sshkey的不是一回事
    ssh密码登陆的原理,密码的公私钥和sshkey的不是一回事
    ssh密码登陆的原理,密码的公私钥和sshkey的不是一回事
    原生JS设计轮播图
    C#从SQL server数据库中读取l图片和存入图片
    C#从SQL server数据库中读取l图片和存入图片
  • 原文地址:https://www.cnblogs.com/liangjingfu/p/9379788.html
Copyright © 2011-2022 走看看