IPv6
2023-09-06 17:40:42 0 举报
AI智能生成
IPv6基础,包括ICMPv6 ,NDP
作者其他创作
大纲/内容
为什么需要IPv6
IPv4地址紧缺
2017年底及2018年中,中央办公厅,国务院办公厅及工信部连续发文<<推进互联网协议第六版(IPv6)规模部署行动计划>>,
内容中明确要求大型互联网企业,数据中心,运营商推进IPv6规模化部署。 在发文中要求到2020年末,各大型数据中心运营
企业都要完成IPv6改造。
内容中明确要求大型互联网企业,数据中心,运营商推进IPv6规模化部署。 在发文中要求到2020年末,各大型数据中心运营
企业都要完成IPv6改造。
什么是IPv6
IPv6(Internet Protocol Version 6). 也被称为IPng(IP Next Generation), 是IPv4的升级版本
IPv6地址结构
IPv4地址
IPv4地址总长度32bit,每8bit为一组,点分十进制
IPv4地址分为网络部分,主机位部分
例如: 192.168.1.1/24
IPv6地址
IPv6 地址总长度128bit, 每16bit为一组,分8组,冒号十六进制表示法
IPv6地址由网络前缀,接口标记组成
例如: FC00:0000:130F:0000:0000:09C0:876A:130B/64
书写方便,IPv6提供了压缩格式
每组的前导0都可以省略
FC00:0:130F:0:0:9C0:876A:130B
地址中包含的连续两个或多个均为0的组,可以用双冒号"::"来代替
FC00:0:130F::9C0:876A:130B
在一个IPv6地址中只能使用一次双冒号
IPv6接口生成的方法
手工配置,系统通过软件自动生成或IEEE EUI-64规范生成
EUI-64规范生成步骤
EUI-64规范是将接口的MAC地址转换为IPv6接口标识的过程
第一步是将FFFE插入MAC地址中间,第二步将从高位第七位取反
IPv6地址分类
IPv6地址
单播地址
特殊地址
0:0:0:0:0:0:0:0/128 或者::/128, 未知地址, 表示某个接口或者节点还没有IP地址
0:0:0:0:0:0:0:1/128 或者::1/128,IPv6环回地址,类似IPv4 127.0.0.1/8,主要用于设备给自己发送报文
全球单播地址
类似IPv4的公有地址[花钱,全球唯一],在Internet上传播,全球唯一的。
固定前3位为001,所以前缀为2000::/3
唯一本地地址
类似IPv4的私有地址
固定前7位为1111110, 所以前缀为FC00::/7
唯一本地地址只能在本地网络内部被路由抓发而不会在全球网络中被路由抓发。
作用:IPv6中有时需要进行VPN的私有连接
作用:IPv6中有时需要进行VPN的私有连接
站点本地地址(被唯一本地地址替代)
链路本地地址(Link-Local Address)
启用IPv6的节点的每个接口会自动生成链路本地地址
链路本地顾名思义,只在同一个二层内传播,不会被路由器转发
固定前10位是1111111010, 所以前缀是FE80::/10, 接口标识(64bit)通过使用EUI-64或手工配置
作用:
1. 当接口没有分配IPv6地址的时候, 可以临时通信用
2. 邻居发现协议(例如邻居状态,无状态自动地址分配)
3. 路由协议(建立邻居关系, 路由下一跳地址)
1. 当接口没有分配IPv6地址的时候, 可以临时通信用
2. 邻居发现协议(例如邻居状态,无状态自动地址分配)
3. 路由协议(建立邻居关系, 路由下一跳地址)
组播地址
IPv6组播地址的前缀是FF00::/8
组播
D类 224
224.0.0.1 代表所有设备
224.0.0.2 代表所有路由器
224.0.0.5 代表OSPF的DRother
224.0.0.6 代表OSPF的DR/BDR
224.0.0.9 代表启用RIP的接口
Well-known组播地址
被请求节点组播地址
由前缀FF02::1:FF/104 和 IPv6单播地址的最后24位组成
例如:IPv6地址是FC00::1, 被请求节点组播地址: FF02::1:FF00:0:0:0:1
IPv6没有广播,只有多播, IPv6中请求MAC地址的时候目的地为被请求节点地址。IPv4中用ARP做地址解析,ARP是基于广播的
每生成一个IPv6地址,都会对应生成一个被请求节点多播地址
IPv6组播MAC地址
固定前缀33:33+组播地址后32bit
例如:
FF02::1 ---> 3333:0000:0001
FF02::FFAB:CDEF --> 3333:FFAB:CDEF
IPv4 组播地址: 规定IPv4 组播MAC地址的高24位为 01-00-5e, 第25位为0, 低23位为IPv4组播地址的低23位
例如:
例如:
任意播地址
1. 一个任意播地址表示的是某种服务,他可能是多台设备,只有最近的节点接受IPv6数据包
2. IPv6中没有为任意播规定单独的地址空间,任意播地址和单播地址使用相同的地址空间
3. 只有一个节点(路由最近的节点)接受IPv6数据包
4. 使用任意播地址的好处是冗余及提高访问速率
2. IPv6中没有为任意播规定单独的地址空间,任意播地址和单播地址使用相同的地址空间
3. 只有一个节点(路由最近的节点)接受IPv6数据包
4. 使用任意播地址的好处是冗余及提高访问速率
注意: IPv6任播地址仅可以被分配给路由设备,不能应用于主机。任播地址不能作为IPv6报文的源地址
适用场景比如 DNS, HTTP
IPv6地址配置
华为
思科
邻居发现协议(NDP)
NS请求
拓扑图
ICMPv6
ICMPv6(Internet Control Message Protocol version 6),即互联网控制信息协议版本六。ICMPv6为了与IPv6配套使用而开发的互联网控制信息协议。与IPv4一样,IPv6也需要使用ICMP,旧版本的ICMP不能满足IPv6全部要求,因此开发了新版本的ICMP,称为ICMPv6。
互联网控制信息协议是IP协议的一个重要组成部分。ICMPv6向源节点报告关于目的地址传输IPv6包的错误和信息,具有差错报告、网络诊断、邻节点发现和多播实现等功能。在IPv6中,ICMPv6实现IPv4中ICMP、ARP和IGMP的功能。
ICMPv6 错误报文
用于报告在转发IPv6数据包过程中出现的错误。 例如: 目标不可达错误报文
ICMPv6 消息报文
用于: 1. ping 2. 邻居发现
邻居发现协议(NDP)中的ICMPv6类型
ND协议适用ICMPv6报文实现其功能
IPv6 MAC地址解析
目的: 保证数据链路层正确封装MAC地址, 类似IPv4的地址解析
ICMPv6类型
NS(Neighbor Solicitation)报文, Type=135, 在地址解析中的作用类似于IPv4中的ARP请求报文
NA(Neighbor Advertisement)报文, Type=136,在地址解析中的作用类似于IPv4中的ARP响应报文
工作过程(HostA 访问HostB)
HostA 发送一个NS报文,请求Host B的MAC地址
NS 报文:
SIP=HostA 的IPv6 address
DIP=HostB的被请求节点地址(由前缀FF02::1:FF00:0/104和HostB单播地址的最后24位组成)
Data=HostA的MAC地址,请求目的HostB的MAC地址
SIP=HostA 的IPv6 address
DIP=HostB的被请求节点地址(由前缀FF02::1:FF00:0/104和HostB单播地址的最后24位组成)
Data=HostA的MAC地址,请求目的HostB的MAC地址
HostB收到NS报文后, 看到Target add为自己,将对端的IP地址和mac地址绑定到自己的邻居表并回应NA报文
HostA 收到NA后将对应IPv6地址和MAC地址绑定到自己的邻居表中,完成解析
华为
Display ipv6 neighbors 查看IPv6地址对应的MAC地址
reset ipv6 neighbors all 清除邻居相关信息表项
思科
show ipv6 neighbors
clear ipv6 neighbors
跟踪邻居状态(邻居可达性性检测
目的:了使邻居之间能够建立一种双向可信的连接,维护IPv6和MAC的对应关系
邻居状态
EMPTY 空
reset ipv6 neighbors all 清除邻居相关信息表项
调用此命令后的状态
调用此命令后的状态
Incomplete 未完成
刚刚发送NS, 还没收到NA报文
reachable 可达
收到NA, 进入此状态
已经得到MAC地址
如果没有回应, 连续发送三次NS报文(每隔1s), 即删除表项(Incomolete->Empty)
stale 陈旧
如果一直没有通信,30s后进入陈旧状态
或者在Reachable状态下,收到邻居发送的报文, MAC地址不一致, 马上进入Stale
Delay 延迟
如果发送数据, 需要进行测试, 发送一个报文给邻居测试是否可达
有收到NA回应,状态回到reachable
没有回应(默认5S), 进入Probe
Probe 探查
进行三次解析(每1S发送NS), 等待对方回复
如果在3s内收到NA报文回复,进入 reachable
没有收到回应, 邻居表删除这个邻居
Empty:初始化阶段,当开始发送NS包了,那么就进入下一状态
Incom:发送NS来请求MAC地址,并生成缓存表项。发送NS的后,邻居关系变成Incom。超时时间为:
关于Incom阶段,需要说明的是,发送地址为发送接口的全球地址,而请求的地址为被请求的地址的被请求组播组地址。
关于Incom阶段,需要说明的是,发送地址为发送接口的全球地址,而请求的地址为被请求的地址的被请求组播组地址。
Reach:当收到NA回应,并把v6地址和mac地址做好对应关系后。就到达此阶段。
Reach是稳定的阶段
注意:如果在Incom阶段没有收到回应NA,将在固定时间后,状态由Incom变为Emp,即删除表项。
Reach是稳定的阶段
注意:如果在Incom阶段没有收到回应NA,将在固定时间后,状态由Incom变为Emp,即删除表项。
当Reach老化计时器过期后,将会进入Stale阶段,即未知是否可达。
如果在Reach阶段,A收到B的非请求NA报文,且报文中所携带的B的链路层地址和表项中不同,则邻居状态马上变为Stale
如果在Reach阶段,A收到B的非请求NA报文,且报文中所携带的B的链路层地址和表项中不同,则邻居状态马上变为Stale
Stale:在此阶段,表明邻接关系还存在,v6和mac地址映射依旧记录,但因为时间过长。需要发送NS,对方回应NA确认,才能继续让此表项可用,如果想要发送NS请求了,邻居状态将由Stale变为Delay。
Del:在Del计时器过期前,能够收到NA,那么状态将会变回稳定Reach。
如果没有收到对方回应的NA。那么将会进入下一状态Probe。
如果没有收到对方回应的NA。那么将会进入下一状态Probe。
Probe:在Pro状态中,会周期性发送NS,并等待回应。对端回应了NA,则进入稳定Rea。没有回应,且发送固定次数后,,回到Empty,即删除表项。
重复地址检测 DAD
目的: 避免IPv6地址冲突, 类似IPv4的免费ARP
ICMPv6类型
NS (Neighbor Solicitation)报文, Type=135
NA (Neighbor Advertisement)报文, type=136
试验地址(Tentative Address): 通过DAD之前的地址
工作原理
发送一个icmpv6 135的NS报文, 请求自身设置的IPv6地址的被请求节点组播地址
收到NA
地址冲突
路由器发现
无状态地址自动配置
目的: 主动自动获取IPv6地址的前缀, 然后主机自己生成接口标识, 从而自动获取IPv6地址
ICMPv6 报文类型
RA(Router Advertisement), 路由器通告报文, type=134. RA发送网络前缀, 网关等信息
RS(Router Solicitation), 路由器请求报文, type=133, 主机请求报文
工作原理
根据接口标识产生链路本地地址
发出邻居请求,进行重复地址检测
如果地址冲突,则停止自动配置, 需要手工配置i
如果不冲突, 链路本地地址生效,节点具备本地链路通信能力
主机会发送RS报文(或接收到设备定期发送的RA报文)
根据RA报文中的前缀信息和接口标识得到IPv6地址
华为配置
思科配置
ipv6 unicast-routing //此条命令一定要开启,否则主机侧无法获取IP地址
interface FastEthernet0/0
ipv6 enable
ipv6 address 2001::2/64
no shutdown
ipv6 nd ra suppress // 路由器关闭RA报文功能, 思科默认开启
interface FastEthernet0/0
ipv6 enable
ipv6 address 2001::2/64
no shutdown
ipv6 nd ra suppress // 路由器关闭RA报文功能, 思科默认开启
interface FastEthernet0/0
ipv6 enable
ipv6 address atutoconfig default
no shutdown //主机侧开启无状态自动汇总
ipv6 enable
ipv6 address atutoconfig default
no shutdown //主机侧开启无状态自动汇总
注意:
理论RS报文的目的地址为FF02::2(代表所有路由器), 但华为模拟器抓出的报文目的地址为FF02::1, 思科没错
理论RS报文的目的地址为FF02::2(代表所有路由器), 但华为模拟器抓出的报文目的地址为FF02::1, 思科没错
重定向
类似IPv4重定向
当PC去往一个网段需要经过网关设备,网关需要将报文转发给同网段的某个路由器时触发
ICMPv6类型
Redirect,type=137
网关设备发送重定向消息给PC, PC将去往这个目的的下一跳地址改为重定向报文中的更优先下一跳
思科模拟器 IPv6 重定向抓不到对应报文, IPv4可正常抓取。华为用tracert跟踪可以抓到对应报文
0 条评论
下一页