IPv6和IPv4的对比
IPv6产生原因:IPv4地址空间已经消耗殆尽,近乎无限的地址空间是IPv6的最大优势
IPv6的基本报头在IPv4报头的基础上,增加了流标签域,去除了一些冗余字段,使报文头的处理更为简单、高效
扩展报头提供报文转发信息,并不会被路径上所有路由器解析,一般只会被目的路由器解析处理 除了逐条选项扩展头之外,其余扩展头在传输路径中不被路由器查看这种机制保证了路由器只查看和选路相关的基本字段,保证了转发数据的高效。
网络层一般要限制每次发送数据帧的最大长度。任何时候IP层接收到一份要发送的IP数据时,它要判断向本地哪个接口发送数据,并查询该接口获得其MTU。IP层把MTU与要发送的数据包长度进行比较,如果数据包的长度比MTU值大,那么IP层就需要进行分片,分片后的数据可以小于等于MTU
IPV4中,分片,假设PC1流出来的报文为1500的,在R1分成2片最后一跳由PC2把他重组起来,中间路由器负责分片,由目标主机负责重组,中间路由负责分片,也会引入额外的开销
IPv6中,中间的IPV6路由器不负责分片 PC1发一个1500的数据包的时候,由于R1的MTU,R1就会把包drop掉会给源端回一个ICMPV6的差错控制,同时会在里面加上去MTU=1400 PC机再往下发包的时候,就按1200发包,PC1会先分好片,然后发送出来
IPv6的地址格式
IPv6地址长度为128比特,每16比特划分为一段,每段由4个十六进制数表示,并用冒号隔开(简称冒号分16进制)
IPv6地址包括网络前缀和接口标识两部分
1111:2222:3333:4444:aaaa:bbbb:cccc:dddd 64 冒号分16进制
十六进制 0 1 2 3 4 5 6 7 8 9 a b c d e f
16进制 二进制
1 -----0001
a -----1010
f -----1111
e -----1110
1111 -----0001000100010001
网络前缀---网络位 接口标识---主机位 前缀长度---掩码
1111:2222:3333:4444:aaaa:bbbb:cccc:dddd 64
IPV6地址 掩码
IPV6地址地址优化
规定1:每一组中的前导0都可以省略。
规定2:地址中包含的连续全为0的组,可以用双冒号::来代替。
需要注意的是,在一个IPv6地址中只能使用一次双冒号::
把IPV6的地址每一组中(一共有8组)前面前导的0可以省略
0002:3030:0000:2000:acb4:0000:0000:1000
2:3030:0:2000:acb4:0:0:1000
IPV6地址当中可以把连续全为0的组用我们双冒号代替(::)这个::只能在IPv6地址当中出现一次
0002:3030:0000:2000:acb4:0000:0000:1000
2:3030:0:2000:acb4::1000
2019::1 也就是
2019:0000:0000:0000:0000:0000:0000:0001
2019::1
2001:0DB8:0000:0000:0000:0000:032A:2D70此IPv6地址压缩到最短是多少?
答案:2001:DB8::32A:2D70
什么是EUI_64
将FFFE插入MAC地址的前24位与后24位之间,并将第7位的0改为1或者1改为0(把第七位进行反转)即可生成接口ID。
接口ID可以由EUI-64方式获得
举例:MAC地址:00e0-fcf4-14bc
第一步:00e0-fc FFFE f4-14bc
0000 0000 第七比特就是0 反转后就是0000 0010 就是我们的02
第二步:生成eui-64的地址:02eo-fcff-fef4-14bc
IPv6地址的分类
IPv4支持单播、组播、广播地址
IPv6支持单播、组播、任播地址
单播地址
2开头IPV6地址
全球单播地址带有固定前缀,类似于IPv4中的公网地址
配置IPv6单播地址
FE80IPV6地址
链路本地单播地址前缀为FE80::/10,类似于IPv4中的私有地址。链路本地地址只能在连接到同一本地链路的节点之间使用。它使用了特定的本地链路前缀FE80::/10(最高10位值为1111111010),接口ID使用EUI-64自动生成,也可以使用手动配置
当一个节点启动IPv6协议栈时,启动时节点的每个接口会自动配置一个链路本地地址(其固定的前缀+EUI-64规则形成的接口标识)。这种机制使得两个连接到同一链路的IPv6节点不需要做任何配置就可以通信。所以链路本地地址广泛应用于邻居发现,无状态地址配置等应用。同时,OSPFv3,RIPng等协议都工作在该地址上。以链路本地地址为源地址或目的地址的IPv6报文不会被路由设备转发到其他链路
Link-local怎么ping?
善于利用百度寻找答案
查看自己电脑的link-local地址
唯一本地地址
唯一本地地址的作用类似于IPv4中的私网地址,任何没有申请到提供商分配的全球单播地址的组织机构都可以使用唯一本地地址。唯一本地地址只能在本地网络内部被路由转发而不会在全球网络中被路由转发
Prefix:前缀;固定为FC00::/7。
L:L标志位;值为1代表该地址为在本地网络范围内使用的地址;值为0被保留,用于以后扩展。
Global ID:全球唯一前缀;通过伪随机方式产生。
Subnet ID:子网ID;划分子网使用。
Interface ID:接口标识。
唯一本地地址具有如下特点:
具有全球唯一的前缀(虽然随机方式产生,但是冲突概率很低)
可以进行网络之间的私有连接,而不必担心地址冲突等问题
具有知名前缀(FC00::/7),方便边缘设备进行路由过滤
组播地址
IPv6的组播与IPv4相同,用来标识一组接口,一般这些接口属于不同的节点
前缀:IPv6组播地址的前缀是FF00::/8
标志字段(Flag):长度4bit,目前只使用了最后一个比特(前三位必须置0),当该位值为0时,表示当前的组播地址是由IANA所分配的一个永久分配地址;当该值为1时,表示当前的组播地址是一个临时组播地址(非永久分配地址)
范围字段(Scope):长度4bit,用来限制组播数据流在网络中发送的范围
组播组ID(Group ID):长度112bit,用以标识组播组。目前,RFC2373并没有将所有的112位都定义成组标识,而是建议仅使用该112位的最低32位作为组播组ID,将剩余的80位都置0 这样每个组播组ID都映射到一个唯一的以太网组播MAC地址
常见的组播地址
所有IPv6组播地址都以FF开始 IPv6为需要使用组播发送数据的协议预留了一些组播组
被请求节点组播地址
被请求节点组播地址通过节点的单播或任播地址生成。当一个节点具有了单播或任播地址,就会对应生成一个被请求节点组播地址,该地址主要用于邻居发现机制和地址重复检测功能
IPv6中没有广播地址,也不使用ARP。但是仍然需要从IP地址解析到MAC地址的功能。在IPv6中,这个功能通过邻居请求NS(Neighbor Solicitation)报文完成。当一个节点需要解析某个IPv6地址对应的MAC地址时,会发送NS报文,该报文的目的IP就是需要解析的IPv6地址对应的被请求节点组播地址;只有具有该组播地址的节点会检查处理。
被请求节点组播地址由前缀FF02::1:FF00:0/104和单播地址的最后24位组成
查看如下接口的配置
interface GigabitEthernet0/0/0
ipv6 enable
ipv6 address 2019::1/64
#
[R2]display ipv6 interface GigabitEthernet 0/0/0
GigabitEthernet0/0/0 current state : UP
IPv6 protocol current state : UP
IPv6 is enabled, link-local address is FE80::2E0:FCFF:FE8E:302A
Global unicast address(es):
2019::1, subnet is 2019::/64
Joined group address(es):
FF02::1:FF00:1
FF02::2
FF02::1
FF02::1:FF8E:302A
MTU is 1500 bytes
ND DAD is enabled, number of DAD attempts: 1
ND reachable time is 30000 milliseconds
ND retransmit interval is 1000 milliseconds
Hosts use stateless autoconfig for addresses
任播地址
任播地址用来标识一组网络接口,在给多个主机或者节点提供相同服务时提供冗余和负载分担
配置IPv6任播地址
特殊地址
::/128 未指定地址
::1/128 环回地址