ICT应用解决方案05-IPv6地址配置
Posted Qurare
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ICT应用解决方案05-IPv6地址配置相关的知识,希望对你有一定的参考价值。
ICT应用解决方案05-IPv6地址配置
1 IPv6地址配置方式
IPv6地址配置的方式可以分为静态配置和动态配置。其中,动态地址配置又可以分为无状态地址自动配置(Stateless Address Autoconfiguration,SLAAC)和有状态地址自动配置(Stateful Address Autoconfiguration)
1.1 IPv6地址自动配置的分类
除了链路本地地址(手动配置+EUI64)FE80: : /10、全球单播地址2000::/8、私有地址FC00:: /8、FD00: : /10
- 无状态地址自动配置
- 不需要IPv6地址分配服务器保存和管理每个节点的状态信息的一种IPv6地址自动配置方式,称之为IPv6无状态地址自动配置。
- 无状态地址自动配置方式基于NDP来实现(RA)
- 有状态地址自动配置
- IPv6地址分配服务器必须保存每个节点的状态信息,并管理这些保存的信息,这种方式称之为IPv6有状态地址自动配置
- 有状态地址自动配置基于DHCPv6(Dynamic Host Configuration Protocol for IPv6)来实现
2 IPv6地址无状态自动配置
2.1 IPv6地址无状态自动配置过程
- PC1根据本地的接口ID自动生成链路本地地址。
- PC1对该链路本地地址进行DAD检测(试验地址),如果该地址无冲突则可启用,此时PC1具备IPv6连接能力。
- PC1发送RS报文,尝试在链路上发现IPv6路由器。
- R1发送RA报文(携带可用于无状态地址自动配置的IPv6地址前缀。路由器在没有收到RS报文时也能够主动发出RA报文)
- PC1解析路由器发送的RA报文,获得IPv6地址前缀,使用该前缀加上本地的接口ID生成IPv6单播地址
- PC1对生成的IPv6单播地址进行DAD检测,如果没有检测到冲突,则启用该地址
2.2 IPv6地址无状态自动配置示例
IPv6无状态地址配置通过交互RS和RA报文完成
2.3 RA报文中的字段
Flags
地址前缀信息(可选)
分配端的接口上配置no-antoconfig后, A置位为0, 所选地址前缀不参与分配, 命令如下:
int g0/0/0
ipv6 enable
ipv6 nd ra prefix 2001:: 64 94967295 967295
ipv6 nd ra prefix 3001:: 64 94967295 967295 no-autoconfig
undo ipv6 nd ra halt
94967295为有效时间(s), 967295为优选时间(s), 3001:: 64地址池不参与自动分配
生存周期
试验地址, RA携带的时间:
- 优选时间: Preferred lifetime
- 地址获取后可以正常通信
- 地址可以主动和对方发起连接建立(如ping未知地址)
- 有效时间: Valid lifetime
- 此时也可以正常通信. 但不能主动建立新的通信, 只能被动与建立好的连接进行通信
- 主要用于无缝切换(漫游), 使得新地址替代旧地址, 此时会有新地址, 这种情况下老设备可以继续与旧地址进行通信,
3 DHCPv6
回顾DHCPv4: DHCP报文是承载于UDP上层的报文, 使用67和68端口
3.1 概述
DHCPv6针对IPv6编址方案设计,支持对客户端分配IPv6前缀、IPv6地址和其他网络配置参数,并记录这些信息,便于网络管理
DHCPv6又分为如下三种:
-
DHCPv6有状态自动配置:DHCPv6服务器自动配置IPv6地址/前缀及其他网络配置参数(DNS、NIS、SNTP服务器地址等参数)。
-
DHCPv6无状态自动配置:主机IPv6地址仍然通过路由通告方式自动生成,DHCPv6服务器只分配除IPv6地址以外的配置参数,包括DNS服务器等参数。
-
DHCPv6 PD(Prefix Delegation,前缀代理)自动配置:下层网络路由器不需要再手工指定用户侧链路的IPv6地址前缀,它只需要向上层网络路由器提出前缀分配申请,上层网络路由器便可以分配合适的地址前缀给下层路由器,下层路由器把获得的前缀(前缀一般长度小于64)进一步自动细分成64位前缀长度的子网网段,把细分的地址前缀再通过路由通告(RA)至与IPv6主机直连的用户链路上,实现主机的地址自动配置,从而完成整个IPv6网络的层次化布局。
如2001::1/64分配出2001::1/72
3.2 DHCPv6网络构成
DHCPv6基本协议架构中,主要包括以下三种角色
- DHCPv6 Clinet: DHCPv6客户端, 通过DHCP服务器进行报文交互,获取IPv6地址/前缀和其他网络配置参数,完成自身的网络配置
- DHCPv6 Server:DHCPv6服务器,负责处理来自客户端或中继的地址分配、地址续租、地址释放等请求,为客户端分配IPv6地址/前缀和其他网络配置参数
- DHCPv6 Relay: DHCPv6中继,负责转发来自客户端或服务器的DHCPv6报文, 协助DHCPv6客户端和DHCPv6服务器完成地址配置功能
3.3 DHCPv6中的常用概念
概念 | 含义 |
---|---|
Valid Lifetime,有效时间 | 地址/前缀的生命周期, 大于优选时间 |
Preferred Lifetime, 优选时间 | 用于计算续租时间和重绑定时间 |
T1 | IPv6地址的续租(Renew)时间,默认是Preferred Lifetime的0.5倍, Clinet单播寻找之前的DHCP服务器 |
T2 | IPv6地址的重绑定(Rebind)时间,默认是Preferred Lifetime的0.875倍, Clinet组播会去寻找其他DHCP服务器 |
Identity Association,IA, | 即身份联盟,是使得服务器和客户端能够识别、分组和管理一系列相关IPv6地址的结构,又分为IA_NA(非临时地址身份联盟)和IA_PD(代理前缀身份联盟)。 |
DHCP Unique Identifier,DUID | 即DHCP设备唯一标识符。用来唯一标志一台设备,每个客户端、服务器、中继都有自己的DUID |
报文类型 | Solicit、Advertise、Request、Reply、Information-Request、Renew、Rebind、Release、Confirm、Decline、Reconfigure、Relay-Forward、Relay-Reply等 |
3.4 DHCPv6有状态自动配置
3.4.1 四步交互(正常)
四步交互是指DHCPv6客户端与服务器交互四次来完成前缀/地址等参数获取的过程
- DHCPv6客户端组播发送Solicit(相当于DISCOVER)消息,请求DHCPv6服务器为其分配IPv6地址/前缀和网络配置参数
- DHCPv6服务器组播回复Advertise(相当于OFFER)消息,通知客户端可以为其分配的地址/前缀和网络配置参数
- 如果DHCPv6客户端接收到多个服务器回复的Advertise消息则根据消息接收的先后顺序、服务器优先级等,选择其中一台服务器,并向所有服务器组播发送Request消息,请求服务器确认为其分配地址/前缀和网络配置参数。
- DHCPv6服务器单播回复Reply(相当于ACK)消息,确认将地址/前缀和网络配置参数分配给客户端使用
注: Advertise报文中的网关存在优先级概念: LOW低级、中级(默认)、高级
3.4.2 两步交互(快速)
DHCPv6客户端可以在发送的Solicit消息中携带Rapid Commit选项,标识客户端希望服务器能够快速为其分配地址/前缀和网络配置参数
- DHCPv6客户端发送Solicit报文,携带Rapid Commit选项
- DHCPv6服务器接收到Solicit报文后,将会判断,如果DHCPv6服务器支持快速分配,则直接返回Reply报文, 为客户端分配IPv6地址/前缀和其他网络配置参数。如果DHCPv6服务器不支持快速分配,则将采用四步交互方式。
3.4.3 地址/前缀租约更新
DHCPv6服务器分配的IPv6地址/前缀具有有效时间。地址/前缀的租借时间超过有效时间后,DHCPv6客户端不能再使用该地址/前缀。因此,在有效时间超时之前,如果DHCPv6客户端希望继续使用该地址/前缀则需要更新地址/前缀的租约
- DHCPv6客户端在T1时刻(默认为Preferred Lifetime的1/2)发送Renew报文进行地址/前缀租约更新请求
- 如果DHCPv6客户端可以继续使用该地址/前缀,则DHCPv6服务器回应续约成功的Reply报文,通知DHCPv6客户端已经成功更新地址/前缀租约。否则,DHCPv6服务器回应续约失败的Reply报文,通知DHCPv6客户端不能获得新的租约
如果DHCPv6服务器未响应T1时刻DHCPv6客户端发出的Renew请求,则客户端会在T2(默认为Preferred Lifetime的0.8倍)向所有DHCPv6服务器组播发送Rebind请求更新租约
-
DHCPv6客户端在T1时刻发送Renew请求更新租约但是没有收到DHCPv6服务器的回应报文。
-
DHCPv6客户端在T2时刻,向所有DHCPv6服务器组播发送Rebind报文请求更新租约。
-
如果DHCPv6客户端可以继续使用该地址/前缀,则DHCPv6服务器回应续约成功的Reply报文,通知DHCPv6客户端已经成功更新地址/前缀租约。
否则DHCPv6服务器回应续约失败的Reply报文,通知DHCPv6客户端不能获得新的租约。
3.5 DHCPv6无状态自动配置
DHCPv6服务器为已经具有IPv6地址/前缀的客户端分配除地址/前缀以外的其他网络配置参数,该过程称为DHCPv6无状态自动配置
- DHCPv6客户端以组播的方式向DHCPv6服务器发送Information-request报文,该报文中携带OptionRequest选项,指定客户端需要从服务器获取的配置参数。
- 服务器收到该报文后,为客户端分配网络配置参数,并单播发送Reply报文将网络配置参数返回给客户端。客户端检查Reply报文中提供的信息,如果与Information-request报文中请求的配置参数相符,则按照Reply报文中提供的参数进行网络配置;否则,忽略该参数。
3.6 PD自动配置
在一个层次化的网络结构中,不同层次的IPv6地址配置一般是手工指定的。手工配置IPv6地址扩展性不佳,不利于IPv6地址的统一规划管理。DHCPv6 PD可以解决这个问题
- DHCPv6客户端发送Solicit报文,请求DHCPv6服务器为其分配IA_NA地址和IA_PD前缀
- DHCPv6服务器回复Advertise报文,通知客户端可以为其分配的IPv6地址和前缀
- 如果客户端接收到多个服务器回复的Advertise报文,则根据Advertise报文中的服务器优先级等参数,选择优先级最高的一台服务器(若服务器优先级一样,则选择带有该客户端需要的配置参数的Advertise报文),并向其发送Request报文,请求为其分配地址/前缀
- DHCPv6服务器回复Reply报文,确认将IPv6地址/前缀分配给DHCPv6客户端
- DHCPv6客户端在收到PD前缀后,与终端进行RS/RA报文交互,在RA报文中将携带获取到的PD前缀下发至终端
3.7 DHCPv6报文总结
报文类型 | 报文作用 |
---|---|
Solicit | DHCPv6客户端发送该消息,请求DHCPv6服务器为其分配IPv6地址/前缀和网络配置参数 |
Advertise | DHCPv6服务器发送Advertise消息,通知客户端可以为其分配的地址/前缀和网络配置参数 |
Request | 如果DHCPv6客户端接收到多个服务器回复的Advertise消息,则根据消息接收的先后顺序、服务器优先级等,选择其中一台服务器,并向该服务器发送Request消息,请求服务器确认为其分配地址/前缀和网络配置参数 |
Reply | DHCPv6服务器发送Reply消息,确认将地址/前缀和网络配置参数分配给客户端使用 |
Information-Request | 客户端向DHCPv6服务器发送Information-request报文,该报文中携带OptionRequest选项,指定客户端需要从服务器获取的配置参数 |
Renew | 地址/前缀租借时间到达时间T1时,DHCPv6客户端会向为它分配地址/前缀的DHCPv6服务器单播发送Renew报文, 以进行地址/前缀租约的更新 |
Rebind | 如果在T1时发送Renew请求更新租约,但是没有收到DHCPv6服务器的回应报文,则DHCPv6客户端会在T2时,向所有DHCPv6服务器组播发送Rebind报文请求更新租约 |
Confirm | 当有断电、掉线、漫游等情况发生时,客户端会发送Confirm报文确认自己的IP地址是否可用 |
Decline | 当客户端发现地址冲突时,发送Decline通知服务器释放分配给本机的地址 |
3.8 DHCPv6工作过程
3.8.1 地址确认过程
当客户端有断电、掉线、漫游等情况发生时,客户端会发送Confirm报文确认自己的IPv6地址是否可用。如果客户端确认的地址是合法的,则服务器回应;如果没有回应,则客户端需要重新启动地址申请流程
3.8.2 DHCPv6地址冲突检测过程
客户端完成地址申请后,会在开始使用该地址前发起DAD探测。如果DAD检测到地址存在冲突,则客户端发送Decline(释放)消息通知服务器,并不再使用该地址
3.8.3 DHCPv6中继工作过程
当服务器和客户端不在一个网段时,需要使用到DHCPv6中继来完成IPv6地址/前缀和其他网络配置参数的获取
- DHCPv6客户端向所有DHCPv6服务器和DHCPv6中继的**组播地址FF02::1:2****发送请求报文
- DHCPv6中继收到客户端的报文后,将其封装在Relay-Forward报文的中继消息选项中,并将Relay-Forward报文发送给DHCPv6服务器或下一跳中继
- DHCPv6服务器从Relay-Forward报文中解析出DHCPv6客户端的请求,为DHCPv6客户端选取IPv6地址和其他配置参数,并将Relay-Reply报文发送给DHCPv6中继
- DHCPv6中继从Relay-Reply报文中解析出DHCPv6服务器的应答,转发给DHCPv6客户端
注: Relay-Reply(中继-回复)
3.8.4 地址释放过程
当客户端不需要再使用某地址时,将发送Release消息至服务器,发起释放地址的交互流程
3.9 地址自动比较
地址配置 | 基于DHCPv6 | 基于NDP |
---|---|---|
地址管理 | 有状态。服务器端存储用户地址或前缀的分配和释放信息 | 无状态。不保存用户地址分配信息 |
部署价值 | 支持128bit地址和不同长度的前缀分配,扩展性强 | 只支持64bit前缀配置,扩展性差 |
实现难度 | 配置复杂 | 配置简单 |
安全性 | 应用层协议,安全性强 | 安全性较差 |
4 IPv6地址自动配置实现
配置命令
首先得在全局和对应接口开启ipv6
-
手工配置接口的链路本地地址
ipv6 address ipv6-address link-local
-
自动配置接口的链路本地地址
ipv6 address auto link-local
-
手工配置接口的全球单播地址
ipv6 ddress ipv6-address prefix-length | ipv6-address/prefix-length
-
自动配置接口的全球单播地址
ipv6 address auto global | dhcp
-
查看接口的IPv6信息
display ipv6 interface[interface-type interface-number | brief]
-
查看邻居表项信息
display ipv6 neighbors
-
使能接口发布RA报文功能
undo ipv6 nd ra halt
默认情况下,华为路由器接口抑制ICMPv6RA报文的发送。
配置举例
配置需求
- R1的GE0/0/0和GE0/0/1接口采用手工方式配置IPv6地址
- R2的GE0/0/0接口通过无状态地址自动配置的方式获取IPv6地址
- R3的GE0/0/0接口通过DHCPv6的方式获取IPv6地址
配置命令-静态配置
-
在R1、R2、R3使能IPv6,并且让接口自动生成链路本地地址(以R1为例)
ipv6 int g0/0/0 ipv6 enable ipv6 address auto link-local
-
在R1的接口上配置IPv6全球单播地址
int g0/0/0 ipv6 address 2001:DB8:13::164 int g0/0/1 ipv6 address 2001:DB8:12::164
配置命令-无状态自动配置
-
在R1使能发布RA报文的功能
int g0/0/1 undo ipv6 nd ra halt
-
配置R2的GE0/0/0接口自动获取IPv6地址
int g0/0/0 ipv6 address auto global
配置命令-DHCPv6
-
在R1上配置DHCPv6服务器功能
dhcp enable dhcpv6 pool pool1 address prefix 2001:DB8:13::/64 excluded-address 2001:DB8:13::1 qu g0/0/0 dhcpv6 server pool1
-
配置R3的GE0/0/0接口通过DHCPv6的方式获取IPv6地址
dhcp enable int g0/0/0 ipv6 address auto dhcp qu
结果验证
R2
display ipv6 int g0/0/0
R3
display dhcpv6 client
潘多拉的系统怎么配置ipv6
光猫能dhcp v6的公网地址,但是只有一个插孔可以用,路由器官方估计不支持,刷了潘多拉的系统后,路由器能获取到2409的v6地址,但lan口的却没有公网地址,打开v6的网站显示的ip是路由器的,这个怎么解决,用6to4的要什么安装包,设置这么调都不行,有解决方案吗
如果运营商支持ipv6而且wan接口能获取64位前缀的话,lan接口里设置IPv6 assignment length为64,路由器端会用dhcpv6(或者radvd)和ndp给你的每台主机分配一个全球单播地址。光猫能dhcp v6的公网地址,但是只有一个插孔可以用,路由器官方估计不支持,刷了潘多拉的系统后,路由器能获取到2409的v6地址,但lan口的却没有公网地址,打开v6的网站显示的ip是路由器的,这个怎么解决,用6to4的要什么安装包。RA和DHCPV6模式有:服务器模式、中继模式、混合模式,前缀分配使用服务器模式,如果运营商不支持dhcpv6-pd可使用中继方式,中继模式要将wan6的dhcp客户端设置成master,lan的dhcp相当于服务器模式、中继模式、混合模式,前缀分配使用服务器模式,如果运营商不支持dhcpv6-pd可使用中继方式,中继模式要将wan6的dhcp客户端设置成master,lan的dhcp相当于slave。潘多拉默认配置ipv6就能正常使用,由于使用虚拟机和未使用自带的firewall走了一些坑,顺便将openwrt的ipv6分配了解了下. wan6接...潘多拉默认配置ipv6就能正常使用,由于使用虚拟机和未使用自带的firewall走了一些坑,顺便将openwrt的ipv6分配了解了下。 参考技术A 如果运营商支持ipv6而且wan接口能获取64位前缀的话,lan接口里设置IPv6 assignment length为64,路由器端会用dhcpv6(或者radvd)和ndp给你的每台主机分配一个全球单播地址。如果运营商不给ipv6地址的话,
lan接口里设置IPv6 assignment length为64,之后,
省事的办法是,在路由器的网络-接 参考技术B 服务器模式、中继模式、混合模式,前缀分配使用服务器模式,如果运营商不支持dhcpv6-pd可使用中继方式,中继模式要将wan6的dhcp客户端设置成master,lan的dhcp相当于slave 参考技术C 17.09的Pandorabox可以正常配置relay,LAN端的设备可以正常获取IPv6地址,但是路由表不正确。
在路由器端,无法ping非本地IPv6地址,提示Permission Denied。但是远端可以ping通路由器v6地址。
通过LuCI查看v6路由表,LAN中设备的IPv6地址没有在wan上,而且IPv6邻居表中也没有显示。
之前的Openwrt上没有问题,对比了一下,发现众多kmod版本比我之前使用的Openwrt版本还要低,不知道是不是这个原因?
另外,我想问一下,如何自动化配置NAT66呢? 参考技术D RA和DHCPV6模式有:服务器模式、中继模式、混合模式,前缀分配使用服务器模式,如果运营商不支持dhcpv6-pd可使用中继方式,中继模式要将wan6的dhcp客户端设置成master,lan的dhcp相当于slave。
潘多拉默认配置ipv6就能正常使用,由于使用虚拟机和未使用自带的firewall走了一些坑,顺便将openwrt的ipv6分配了解了下. wan6接...潘多拉默认配置ipv6就能正常使用,由于使用虚拟机和未使用自带的firewall走了一些坑,顺便将openwrt的ipv6分配了解了下. wan6接...
应该是这样吧,我觉得没错。
以上是关于ICT应用解决方案05-IPv6地址配置的主要内容,如果未能解决你的问题,请参考以下文章
大数据学院|计算机科学与技术(与华为ICT学院校企合作)专业介绍
CIO/CTO必看系列:ICT企业数字化转型CRM方案(3600字)
润和软件鸿蒙全场景开发与教学创新解决方案赋能高校ICT人才培养