目录
IPv6中取消了ARP(由于ARP会导致一些安全问题),ARP的功能都通过ICMPv6来实现
ICMPv6报文格式
差错报文
Type1——目的不可达
Code0:没有到达目标设备的路由
Code1:与目标设备的通信被管理策略禁止
Code3:目的IP地址不可达
Code4:目的端口不可达
Type2——数据包过长(报文超过出接口的链路MTU)
Code字段一直为0,此数据包时Path MTU发现机制的基础
Path Mtu报文,协商最小MTU
Type3——时间超时(设备收到IPv6字段Hop Limit字段为0或自身将Hop Limit字段减为0)
Code0:在传输中超越了跳数限制
Code1:分片重组超时
Type4——参数错误(报文有效性检查出错会发送)
Code0:IPv6基本头或扩展头的某个字段有错误
Code1:IPv6基本头或扩展头的NextHeader值不可识别
Code2:扩展头中出现未知的选项
信息报文
Type128——Echo Request (Ping请求报文)
Code字段为0
Type129——Echo Reply(Ping回应报文)
Code字段为0
邻居发现协议NDP
NDP协议是IPv6协议的基础,IPv4中的ARP、DHCP协议都可以通过NDP来实现。
NDP协议依靠ICMPv6协议发送报文,其中定义的5种ICMPv6报文如下
Type133——RS报文(路由器请求)
Type134——RA报文(路由器公告)
Type135——NS报文(邻居请求)
Type136——NA报文(邻居公告)
Type137——重定向报文
NDP协议功能
地址解析(类似ARP功能,获取MAC地址)
通过发送NS和NA报文来获取对端的MAC地址
地址冲突检测DAD(类似免费ARP,检查地址是否冲突)
发送NS和NA报文
一个单播地址在分配给一个接口之后,如果此地址未通过DAD,则此地址就被称为实验地址(Tentative Address),试验地址无法进行通信
Tentative地址无法使用的两种情况
1、此设备会发送NS报文(类似免费ARP),如果收到回应的NA报文,则本端不再使用该Tentative地址,地址被标识未Duplicated状态
2、当此地址还是Tentatice地址,如果收到对方发来的DAD NS报文时,接收方(本端)不再启用该地址
邻居状态跟踪(类似ARP表项)
IPv4的ARP表项老化时间1200s到了之后不会立马撤销,会发送一个ARP请求,在等待一个延迟后如果没有收到ARP应答,才会删除此表项
邻居状态跟踪,存储ARP状态信息,为下次通信提供保障
NDP定义了5种邻居状态(未完成、可达、陈旧、延迟、探查)
未完成状态:知道对端IPv6地址,不知道对端MAC地址
可达状态:发送NS、NA报文后获取到对端MAC地址
陈旧状态:表项老化时间32s过后,一直呆在陈旧状态
延时状态:当下次使用此表项时,发送NS报文,进入延时状态。
在延时状态收到NA报文,直接进入可达状态
在延时状态,发送最多5次NS报文,如果没有收到NA报文,进入探查状态
探查状态:发送NS报文
在探查状态收到NA报文,直接进入可达状态
在探查状态,发送1次NS报文,如果没有收到NA报文,进入空状态
延时状态的NS是组播的,探查状态的NS是单播的
路由器发现——获取前缀,通过EUI-64生成IPv6地址
发送RS(目的地址-FF02::2)和RA(目的地址-FF02::1)报文来获取IPv6地址
前缀必须为64,后64接口ID通过EUI-64生成
通过接收到的RA携带的地址前缀生成IPv6地址
重定向功能——(类似ICMP重定向功能)
防止次优路径的产生,重定向报文的目的地址为单播地址
RS报文
Flags字段
M=0 表示无状态获取IPv6
M=1 表示DHCPv6获取IPv6
0=1 表示不获取DNS等其它参数
0=1 表示通过DHCPv6获取DNS等其它参数
地址前缀信息
通过下发地址前缀信息使得终端可以通过无状态获取IPv6地址
生存周期
地址状态
当终端获取到前缀并生成IPv6单播地址后,首先进入Tentavie状态
在通过DAD地址冲突检测后,进入Preferred状态(并在Preferred lifetime内保持该状态)
在Preferred lifetime超时后,进入Deprecated状态(并在Valid lifetime内保持该状态)
在Valid lifetime超时后,地址进入Invalid状态
不同状态对地址的定义
Preferred状态的地址,终端可以使用该地址正常收发报文
Deprecated状态的地址,现有的连接可以使用该地址,但是不可以使用此地址建立新的连接
Invalid状态的地址,该地址无法继续使用
IPv6地址获取方式
链路本地地址的生成方式
手动配置
自动生成——通过软件或者EUI-64
非链路本地地址的生成方式
手工配置
自动生成
无状态自动生成
通过NDP的RS、RA来生成IPv6地址,无法获取到DNS信息(可以手工配置使得RA报文携带DNS服务器地址)
int g0/0/1
ipv6 nd ra dns-server 114.114.114.114
DHCPv6有状态生成
通过DHCPv6获取IPv6地址、DNS等信息
DHCPv6无状态生成
通过NDP的RS/RA生成IPv6地址,通过DHCPv6获取DNS信息