IPv6基础-进阶

简介: IPv6基础-进阶

IPv4的一些问题:

为了解决IPv4地址不够用,推出了NAT、私网地址、子网划分等。

IPv4缺乏端到端通信,比如NAT转换了地址。如果用在FTP服务器上,经过NAT转换,两端IP不一致。

IPv4存在广播,对ARP依赖。

IPv4无法适应物联网技术,传输慢,校验和,分片。因为IPv4的头部长度为20-60字节,不固定,解封以太后,需要进行读取,才能确定IP头部长度。

IPv4组播地址:

  1. 224.0.0.1 所有主机的地址
  2. 224.0.0.2 所有组播路由器的地址
  3. 224.0.0.3 不分配
  4. 224.0.0.4dvmrp(Distance Vector Multicast Routing Protocol,距离矢量组播路由协议)路由器
  5. 224.0.0.5 ospf(Open Shortest Path First,开放最短路径优先)路由器
  6. 224.0.0.6 ospf dr(Designated Router,指定路由器)
  7. 224.0.0.7 st (Shared Tree,共享树)路由器
  8. 224.0.0.8 st主机
  9. 224.0.0.9 rip-2路由器
  10. 224.0.0.10 Eigrp(Enhanced Interior Gateway Routing Protocol,增强网关内部路由线路协议)路由器 
  11. 224.0.0.11 活动代理
  12. 224.0.0.12 dhcp服务器/中继代理
  13. 224.0.0.13 所有pim (Protocol Independent Multicast,协议无关组播)路由器

IPv6基础知识

IPv4     32位      2^32个地址

IPv6     128位    2^128个地址

IPv6地址格式:IPv6地址长度为128比特,每16个比特分为一段,一共分为8段,每段由4个十六进制数表示,一个十六进制数为4个二进制数。每段用冒号隔开。

IPv6地址包括网络前缀和接口标识两部分。网络前缀为前两段,接口标识为后六段。

IPv6地址压缩简化:每一组中的前导0都可以省略,前导0最多有3个,也就是前3个。地址中包含的连续全为0的组,可以用双冒号表示。

0080   --->80

0000   --->0

0008   --->8

IPv6报文格式

IPv6快的原因:报文长度是固定的;字段少

IPv6固定长度40个字节,共有8个字段

Version:版本号,6

Traffic Class:流分类,主要用于QOS

Flow Label:流标签

Payload Length:标识上层协议数据单元

Next Header:下一个报头

Hop Limit:跳数限制,类似TTL

Source Address:源IP地址

Destination Address:目的IP地址

IPv6扩展报头:IPv6不同于IPv4扩展,扩展IPv4报头长度。而IPv6报头依然是固定的40字节,IPv6的扩展使用Next Header字段指明了下一个扩展报文的类型。并且扩展报头是可选的,只有当需要扩展时,才会添加扩展报头。(TLV架构)

IPv6扩展报文的种类:

报头类型为逐跳选项报头时,Next Header字段为0,用来表示巨型载荷的。比如一个载荷长度最多表示65535,如果有一个载荷长度超过65535,就使用该报头类型,用来表示一个巨型载荷的。放在Next Header字段中。

IPv6地址分类

单播

组播

任播

单播地址:

未指定地址:::/128,没有地址,意为IPv4中的0.0.0.0

环回地址:::1/128,IPv4位127.0.0.0/8

链路本地地址:FE80::/10,只要两台路由器连上线,就会有该地址,就可以使用该地址通信。但华为设备中,需要手动开启该功能或者配置单播地址之后,才可以。该地址不可被路由,即使宣告进路由协议也没用。只能在该广播域中使用。运行IPv6的路由器不转发目的地址为链路本地地址的IPv6报文。

全球单播地址:2000::/3,公网地址。一般是2000和3000开头的都是公网地址,但大多数都用2000开头的。

唯一本地地址:FC00::/7,私网地址。一般私网地址只存在于纯内网中使用,不想与其他公网地址通信时使用。

可聚合全球单播地址:64位代表64位网段,62位代表2^2=4个64位的网段。

链路本地地址:FE80::/10。固定的前10位+54位的0+64位的接口ID。

运行IPv6的路由器不转发目的地址为链路本地地址的IPv6报文。

接口ID使用EUI-64算法进行计算

EUI-64:通过把设备的MAC地址提取出来,在MAC地址的中间插入FFFE,即前24位和后24位的中间插入(MAC地址是48位),插入之后,在MAC地址的第7个比特位取反,得到的数值,再去还原成IPv6地址。

注:MAC地址的表示是16进制,一个16进制是4个2进制(比特位),而并非8个。

举例:

MAC地址:00e0-fc7e-5f6d

进行EUI-64算法:

1、在MAC地址的中间插入FFFE:00e0fcfffe7e5f6d

2、在第7个比特位取反:先把前两个数字转换成2进制:0000 0000--->取反:0000 0010,然后再还原成16进制:02

3、把还原的数换成IPv6地址:02e0fcfffe7e5f6d--->02e0:0fcf:fe7e:5f6d——后64位接口ID

组播地址

FF开头的就是组播地址

地址范围:FF00::/8

FF01表示设备内部通信的地址

FF02表示链路上通信的地址 (类似于广播域)

FF02::5  所有OSPF路由器的组播地址

FF02::6  所有OSPF DR路由器的组播地址

被请求节点组播组:FF02::1:FF00:0/104

被请求节点组播地址通过节点的单播或任播地址生成。当一个节点有了单播或任播地址后,就会对应生成一个被请求节点组播地址,并加入这个组播组。

该地址主要用于邻居发现机制和地址重复检测功能。  类似于ARP

被请求节点组播地址固定前缀为:FF02::1:FF00:0/104和对应的IPv6地址的最后24位组成。有效范围为本地链路范围,即IPv4的广播。

组播地址的MAC地址映射:在发送组播IPv6的时候,仍需要封装以太,而目的MAC地址必须是组播MAC地址,并且与组播IPv6地址对应。

3333是专门为组播MAC预留的,在组播IPv6地址的最后48位中,前16位固定为33-33,而后32位,则从组播IPv6地址的后32位映射过来,就得到了组播MAC地址。

IPv6基础协议

ICMPv6

邻居发现协议:NDP

NDP使用ICMPv6的相关报文:

RS:路由器请求报文

RA:路由器通告报文

NS:邻居请求报文

NA:邻居通告报文

地址解析报文

地址解析用到了NS和NA报文,在设备配置IPv6地址后,会主动发送两个NS报文(类似于免费ARP),一个是链路本地地址的被请求节点组播地址,另一个是单播地址的被请求节点组播地址。

R1:2001::1 64

R2:2001::2 64

R1去访问R2时,要请求R2的MAC地址,R1发送NS报文,源地址为R1的IPv6地址,目的地址为R2的被请求节点组播组地址。源MAC为R1的MAC地址,目的MAC为2001::2对应的被请求组播组地址,通过映射得到的3333开头的组播MAC地址。然后发送出去。

R2收到后,回复NA报文,源地址为R2,目的地址为R1

邻居状态变化

重复地址检测DAD

类似于免费ARP。

使用NS和NA报文完成

地址在通过DAD检测前称为“tentative地址”,也就是测试地址。未通过前地址暂时不能使用。

节点向该测试地址所在的组播组地址发送一个NS,如果收到了NA,代表有其他节点回应,该地址已经被使用了,不能继续使用。

接口在使用任何一个单播IPv6地址前都需要进行DAD,包括链路本地地址。

IPv6无状态地址自动配置-SLAAC

  • PC机生成链路本地地址后,先进行DAD检测。
  • PC机使用链路本地地址向所有路由器发送RS报文(源地址为PC机链路本地地址,目的地址为FF02::2,所有路由器组播地址)
  • 然后路由器收到后回复RA报文,该报文携带了网络前缀
  • PC机收到网络前缀后,根据EUI-64算法生成IPv6单播地址
  • 然后发送DAD检测等等

RA:路由器通告,路由器收到主机发送的RS回复的,只回复网络前缀。然后主机根据EUI-64计算。

RS:路由器请求,主机发送的。用来获取IPv6单播地址的。

在存在以下情况时,PC机会忽略RA发送的网络前缀:

  • RA报文选下中的“auto”未置位
  • 前缀与已有的地址前缀重复,包括链路本地地址
  • RA报文中的优选地址时间大于有效生存时间
  • 前缀长度与接口ID长度的和不够128位

RA消息中的flags字段

Cur Hop Limit:PC如果要用RA携带的网络前缀,PC机发送的IPv6报文跳数必须为64。

M位:默认为0,表示主机是无状态地址分配的。为1,表示有状态,PC机需要使用DHCPv6服务器的地址。ipv6 ndautoconfig managed-address-flag 可设置m位为1

O位:表示是否还有其他消息需要传达,如果有,则值为1。没有,值为0。这些消息代表,DNS等。因为通过无状态或有状态只能分配网络前缀,DNS等等无法分配。   有O位,必定有M位

Router Lifetime:单位是秒,表示PC机可以用多久的时间,把这台路由器当做网关设备。

地址生存时间

优选地址可以发送和接收消息

反对地址不能发送消息,但可以接受消息

但一台设备可以配置多个地址,A不能发送,但B地址可以发送,所以无需考虑这点。

重定向报文

当网关路由器知道更好的转发路径时,会以重定向报文的方式告知主机

PMTU

防止数据包过大,中间设备支持的MTU值太小,导致的数据包传送不过去。

源节点的数据包发送过去之后,不支持太大MTU的路由器设备会返回一个错误消息,告知源节点MTU太大,并告诉源节点自己所支持的MTU最大为多少,然后发送出去,源节点再进行切片。以此类推。

PMTU最小为1280bytes(IPv6要求链路层所支持的MTU最小为1280)。

相关文章
|
5天前
|
网络协议 安全 网络性能优化
|
网络协议 安全 网络安全
第一章 ipv6是什么?
第一章 ipv6是什么?
135 0
|
网络协议 物联网 网络架构
带你读《互联网协议第六版 (IPv 6)》第一章概述1.1IPv6的概念
《互联网协议第六版 (IPv 6)》第一章概述1.1IPv6的概念
|
传感器 网络协议 物联网
带你读《互联网协议第六版 (IPv 6)》第一章概述1.2IPv6 出现的必然性
《互联网协议第六版 (IPv 6)》第一章概述1.2IPv6 出现的必然性
|
网络协议
IPv6系列(一)—快速入门
预计到2020年,国内IPv6的活跃用户数将达到五亿,为了跟上发展的节奏,IPv6入门,了解下。
2176 0
|
网络协议
|
网络协议 安全