地址
前缀+子网+主机位
PI法则=3.14
前缀:3个16位
子网:1个16位
接口ID:4个16位
地址分类
未指定地址
::/128 ,类似于0.0.0.0
本地回环地址
::1/128 ,用于本地测试,类似于127.0.0.1
本地链路地址(lionk-local address ,LLA)
FE80::/10 (1111 1110 10) 局限于本地链路,使运行了IPV6协议的链路两端,天生具有三层通讯能力,无需像ipv4接口一样必须配置ipv4地址才可以。
产生方式:
1.动态产生,接口使能ipv6后,用eui-64产生
2.接口上手动配置:ipv6 address fe80::2 link-local
用途:
ripng、ospfv3使用该地址作为协议报文的源地址,路由表的下一条也是该地址。
可聚合全球地址
2000::/3 ~ 3FFF:FF... 前3位是001
2001::/16 IANA开始分配的
2002::/16 6to4隧道
3FFE::/16 公共ipv6研究所,已被废除
本地站点地址
FEC0::/10 已被废除!
唯一本地地址
FC00::/7 相当于ipv4的私网地址,只能在本地网络内部转发
组播地址
FF00::/8
-
预定义组播地址
Node-local
FF01::1所有节点的组播地址
FF01::2所有路由器的组播地址
Link-local 保留了一部分ipv4的味道
FF02::1 所有节点的组播地址 224.0.0.1
FF02::2 所有路由器的组播地址 224.0.0.2
FF02::1:FFXX:XXXX Solicited-Node组播地址 被请求节点的组播地址
FF02::5 所有ospf路由器地址 224.0.0.5
FF02::6 所有ospf的DR路由器地址 224.0.0.5
FF02::D 所有PIM路由器组播地址
组播地址与mac地址的映射
33-33-组播ipv6地址的后32bit
当一个接口配置了一个ipv6单播地址后,会自动加入到一个被请求节点的组播地址中,该地址主要用于邻居发现和重复地址检测。
FF02::1:FF00:0/104 前104位固定,后24位复制单播地址的后24位
用人话解释一下什么叫做被请求节点的组播地址:
ipv6取消了ARP报文和广播,要想拿到目的主机的mac地址,只有到处发送组播报文了。只有和目的主机后24位相同的才能收到这个组播报文,其他设备收到这个组播帧时在网卡层面就被丢弃。
任播地址
纸上谈兵阶段,可以把单播地址配置成任播地址,允许多台服务器配置相同的ip地址,提供相同的服务,以就近访问。
邻居发现协议NDP 使用icmpv6报文
RS路由器请求 133类型的icmpv6报文
请求ipv6地址
RA路由器通告 134类型的icmpv6报文
周期发送ipv6地址
发送间隔由最大发送间隔和最小发送间隔同时控制。
最小发送间隔默认200s,最大发送间隔默认600s
RA消息的flag字段
M:Managed address configuration 默认为0,表示用SLAAC配置ip地址。如果为1,用DHCPv6配置ip地址
O:Other-Config-Flag,默认为0,表示除了ip地址,不用DHCPv6配置其他参数。如果为1,需用DHCPv6配置其他信息。
P:Default Router Preference,产生默认路由的优先级,默认为00,medium。
前缀Option里的flag字段
L:On-Link Flag,默认为1,当前缀option中on-link=1时,接收主机除了产生ipv6地址之外,还会产生一条该前缀的直连路由。置0时只会根据前缀产生ipv6地址。
A:Autonomous Addr-conf FLag,默认为1,表示可以用该前缀进行无状态自动配置
NS 邻居请求 135类型的icmpv6报文 类似于ARP请求
目的mac地址是组播mac地址
目的ip是被请求节点的组播地址
地址解析在三层完成,可以使用三层安全机制(如ipsec)避免地址解析攻击。
NA 邻居通告 136类型的icmpv6报文 类似于ARP响应
Redirect 重定向 137类型的icmpv6报文
ipv6邻居表
display ipv6 neighbors
相当于ipv4的arp表
win用命令 netsh interface ipv6 show neighbors
邻居状态追踪,邻居不可达检测(Neighbor Unreachable Detection,NUD)
邻居状态
Empty,空,没有通讯之前
Incomplete,正在进行地址请求,已发送NS,还没收到NA
reachable,已收到NA报文,认为这个地址可达。如果NA报文没有指定Reachable Time,默认可达30s
stale,陈旧,无法确定到邻居的可达性。陈旧状态默认停留1200s
1.Reachable Time这段时间内没有流量通过
2.收到了邻居发来的非请求NA报文(这个NA报文不是我问了邻居之后邻居给我的,如链路层地址改变,ipv6地址改变),这时邻居可以到达本机,但本机不一定能到达邻居
delay,延迟,当设备访问stale节点时,在这个状态停留5秒
如果5秒内收到邻居可达性的确认,进入Reachable状态
邻居可达性的确认:一去一回的证明
1.针对NS收到NA
2.收到上层协议的hints,如tcp的ack
如果5秒未收到确认,进入probe状态
probe,探查,delay的5s后,每隔1s发送单播NS,发送MAX_Unicast_Solicit(3次)个请求后,再等1s
有应答,reachable
无应答,empty,删除表项
ipv6邻居关系优于ipv4的arp,ipv6可以确保双向可达,但ipv4只能等老化
DAD 重复地址检测
一个地址在通过DAD检测前,叫做试验性地址(tentative地址),接口还不能用这个地址来正常通讯,但会加入被请求节点的组播地址组(FF02::1::FF00:FFFF)
加入被请求节点的组播地址后,发送一个NS报文。如果组中有地址相同的,会响应一个NA,就证明该地址已被使用,节点将不能用。
所有单播ipv6地址都要进行DAD,包括LLA
类似于ipv4的免费arp
DHCPv6 有状态地址自动配置
SLAAC (StateLess Address Auto Configuration)无状态地址自动配置
什么是无状态:如dhcp服务器,分配ipv4地址后,产生租约信息,这是有状态。无状态是无需保存客户端和ip地址直接的映射关系。
无需服务器,更加轻量
配置
AR1 [AR1-GigabitEthernet0/0/0]undo ipv6 nd ra halt //关掉抑制ipv6路由通告,周期发送ra消息
AR3
如果配置多个全球单播地址,发送的RA消息就会有多个前缀,收到RA消息的也会配置多个全球单播地址
存在以下情况时忽略RA发送的前缀:
RA报文中的“auto”(地址自动配置位)未置位
前缀与已有地址前缀重复(包括LLA)
RA报文的优选生存期(preferred lifetime)> 有效生存期(valid lifetime)
前缀长度与接口id长度之和不等于128位
相关时间参数
preferred lifetime 发起新通讯的有效时间
valid lifetime 原有通讯的有效时间
主机周期性收到RA报文,并据此报文来更新自己的时间参数。
生存时间
DAD→preferred lifetime(7天,优选生存期)→deprecated(不优选生存期)→无效
preferred lifetime + deprecated = valid lifetime (30天)
重定向
Redirect报文告知主机,更好的转发路径。
PMTU发现
PMTU路径上接口的最小接口MTU。
探测路径上最小的MTU,按这个MTU分片。优化整体传输效率。
PMTU最小为1280B
MTU = 源主机路径上MTU
while(没到目的主机){
MTU构建一个报文,发送给下一跳..直到有更小MTU的路径,回送给主机icmp错误消息packet too bigMTU = 更小的MTU}
ipv6过渡技术
双栈Dual Stack
设备支持双栈,同时配置ipv4和ipv6地址。优先ipv6。
6 over 4 手动隧道
解决ipv6孤岛:站点是v6,网络是v4
6 over 4 GRE隧道
可以开启gre对隧道存活的检测,或者一些基本认证
6 to 4 隧道
采用6to4专用地址 2002:ipv4::/48
ISATAP(Intra-Site Automatic Tunnel Addressing Protocol)隧道
6 over 4 自动隧道的一种,采用ISATAP专用地址
人话:将ISATAP路由器配置成网关,所有ipv6访问都走这里。
NAT64
转换网关连接ipv4网络和ipv6网络,互相转换ip包头