IPv6基础介绍

1.IPv6简介

        随着互联网的快速发展,IPv4地址变的越来越紧缺,即使有NAT技术来进行缓解,但是也只能缓解燃眉之急。同时,IPv4的报文头部设计的不合理,导致IPv4转发不具有安全性,头部字段太多且头部长度可变,导致转发效率低下。

IPv6有128个比特,几乎地球上的每一粒沙子都可以分配一个IPv6的地址,解决了IPv4地址不够用的问题。IPv6针对于报文头部也进行了调整优化,分为了基本头部和扩展头部。基本头部保留转发需要的必要信息,所以长度是固定的,为40个字节。剩余其他信息使用扩展头部来进行封装,提高了转发效率。

2.IPv6报文格式

        IPv6头部字段只保留了转发需要的必要信息,同时增加了一个next header字段,通过此字段来判断是否有下一个扩展头部信息。数据在进行转发的时候,只需要读取基本包头即可。

        version:版本信息

        traffic class:流分类

        flow label:流标签

        payload lenth:长度

        next header:下一个头部标识

        hop limit:相当于IPv4中的TTL

        sourece address:源IP

        destination address:目的IP

        extension header:扩展头部

3.IPv6地址的表示

        IPv6地址共有共16个字节,也就是128比特。由于位数比较长,因此是用冒号分十六进制来表示的。128个比特分为了8段,每段16个比特,每段都用十六进制来表示,各段之间用冒号分开。例如:2001:0FCE:3F00:4C02:0000:0000:0001:0002,每段的最前面的0可以省略,可以缩写为:2001:FCE:3F:4C02:0:0:1:2,连续的段为0的时候,可以缩写为::,因此这个IPv6地址最简化的表示为2001:FCE:3F:4C02::1:2。双冒号在一个地址中只能出现一次。

4.IPv6地址分类

        IPv6地址分为三大类,分别是单播、组播和任播。

        4.1 单播地址

                IPv6的单播地址又可以分为全球单播地址、链路本地地址、唯一本地地址、特殊地址等几大类,单播地址由网络前缀和接口标识组成,常见单播地址要求网络前缀和接口标识都是64位,其中::1/128为本地回环地址,::/128表示未分配地址。

                接口标识生成的方式有三种,可以手工分配、自动获取、EUI-64生成。

                EUI-64规范是指将MAC地址中间插入FFFE,并且将MAC地址的第7位即LG位变为1,例如:

        MAC地址为:00e0-fc31-6f8e

        插入FFFE:00e0-fcff-fe31-6f8e

        LG位置为1:02e0-fcff-fe31-6f8e

                全球单播地址

                全球单播地址网段是2000::/3,范围2000——3FFF。全球单播地址用来标识唯一一台终端或者接口,它的地址格式如下:

                唯一本地地址 

                 唯一本地地址是私网地址,地址段是FC00::/7,目前只是用了FD00::/8,唯一本地地址只在内网中有效,不能跨越公网,公网中没有私网的路由。地址格式如下:

                链路本地地址 

                链路本地地址的有效范围是本链路生效,不能跨越路由器,前缀为:FE80::/10。链路本地地址可用于邻居发现,自动获取等场景。这个地址可以手工配置或者系统根据EUI-64自动生成。它的地址格式如下:

        4.2 组播地址

        IPv6的组播地址可用于标识多个接口,只可用作目的地址来使用。地址格式如下:

        前8个比特固定全为1,后32比特是组播的组ID。 

        Flags:为0标识永久,为1表示临时。

        Scope:  为0是预留

                        为1表示节点

                        为2表示链路本地

                        为5表示站点本地

                        为8表示组织本地

                        为E表示全球范围

                        为F是预留

        组播中比较重要的一种是被请求节点组播地址,主要用于地址检测或者邻居发现。每个单播地址都会自动生成对应的被请求节点组播地址,并加入这个组播组。被请求节点组播地址格式如下:

        被请求节点组播地址的前104个比特是固定的,后24位根据单播地址的后24来进行填充。

        例如:全球单播地址:2001:172:16:12::1

        对应被请求节点组播地址为:FF02::1:FF00:01 

        组播中FF02::1表示所有主机,FF02::2表示所有路由器。

        4.3 任播地址

        在IPv6中没有广播的概念,但是有任播地址,它的范围和全球单播地址一致,只不过可以重复配置,用于用户访问最近的业务节点,任播地址也是只能作为目的地址使用。

5.NDP协议

        IPv6中没有ARP地址解析协议,IPv6是通过NDP邻居发现协议来进行地址冲突检测和MAC地址解析的。IPv6通过新增ICMPv6报文来承载NDP协议,ICMPv6协议通过不同type类型来区别不同的承载协议。

ICMPv6 type类型代表协议
type=133RS报文:路由请求
type=134RA报文:路由通告
type=135NS报文:邻居请求
type=136NA报文:邻居通告
type=136重定向

        5.1 IPv6的DAD(地址冲突检测) 

        IPv4是通过免费ARP来进行地址冲突检测的,IPv6根据NS报文来进行DAD检测,如果没有收到NA的应答,则表示地址没有冲突,收到NA的回复,则表示地址冲突,不可用。

        DAD的原理:当接口第一次获取到IPv6单播地址时,会发送一个NS报文,NS的格式如下:

        ICMPv6头部IPv6头部以太帧头部
target address:要检测的IPv6地址

源:::

目的:检测IP的被请求节点地址

源:本端MAC

目的:组播MAC

组播MAC地址前16为固定为33-33,后32为取被请求节点地址的后32位组成。

例如:被请求节点地址为FF02::1:FF00:1

          组播MAC地址为:33-33-FF-00-00-01

        没有收到NA的应答,则表示地址不冲突,一旦地址冲突,收到的NA应答报文格式如下: 

        ICMPv6头部IPv6头部以太帧头部

target address:冲突的IPv6地址

link-layer address:本端MAC地址

源:本端接口IPv6地址

目的:FF02::1

源:本端MAC

目的:组播MAC

         5.2 IPv6的ping通原理

        R1 ping R2

        1.R1查看路由表,没有则不发包。

        2.R1有R2的路由,进行ICMPv6的封装,封装到二层,不知道目的MAC地址。

        3.查看IPv6邻居表项,有邻居则拿出邻居的MAC进行封装,没有,则发送NS请求。

        ICMPv6头部IPv6头部以太帧头部
target addres:2001::2

源:2001::1

目的:FF02::1:FF00:2

源:本端MAC

目的:33-33-FF-00-00-02

        4.R2收到R1的NS报文,侦听目的组播MAC地址,接收解封装,产看目的IP是自己,则回复NA报文,同时把R1的MAC地址和IP加入自己的IPv6邻居表。

        ICMPv6头部IPv6头部以太帧头部

target addres:2001::2

link-layer address:本端MAC地址

源:2001::2

目的:2001::1

源:本端MAC

目的:R1的MAC

         5.R1收到R2的NA响应,把R2的MAC地址和IP加入自己的IPv6邻居表,完成ICMPv6的封装,按路由表转发数据。

6.自动获取

        IPv6支持有状态自动获取和无状态自动获取两种,IPv4只有有状态的自动获取。

        6.1 无状态自动获取

                IPv6地址具有即插即用的快捷方便性,此机制通过无状态获取来实现。服务端开启RA功能,周期性的向所有主机发送RA报文,发送的周期在600秒和200秒之间随机,但是一旦收到客户端发来的RS请求,则会立即响应一次RA。RA报文中包含本端接口地址的前缀信息,客户端根据服务端的前缀加上自己的EUI-64组成自己的接口地址。

服务端开启RA功能命令:接口下undo ipv6 nd ra halt

客户端获取命令:接口下ipv add auto global default------获取地址的同时产生默认路由

        RS报文格式如下:

        ICMPv6头部IPv6头部以太帧头部

link-layer address:本端MAC地址

源:本端的连接本地地址

目的:FF02::1

源:本端MAC

目的:组播MAC

        RA报文格式如下:

        ICMPv6头部IPv6头部以太帧头部

link-layer address:本端MAC地址

IP前缀信息

源:本端的连接本地地址

目的:FF02::1

源:本端MAC

目的:组播MAC

        6.2 IPv6的有状态自动获取 

        IPv6的有状态获取是通过DHCPv6获取的,可分为4-way模式和2-way模式,默认是4-way模式,也就是有四种报文交互。

        4-way模式:

        1.首先由客户端发起solicit请求,寻找全网的DHCPv6服务端,包含本端MAC地址等信息,以组播的形式发送。

        2.服务端回复advertise回复给客户端,包含网络前缀,客户端MAC、服务端MAC等信息,以单播形式发送。

        3.客户端发起request请求地址是否可用,包含请求使用的IPv6地址,客户端MAC、服务端MAC等信息,以组播形式发送。

        4.服务端回复reply给客户端,包含对方请求使用的IPv6地址,客户端MAC、服务端MAC等信息,以单播形式发送。

        2-way模式:

        当网络中只有一个DHCPv6服务端时,可以配置快速分配模式。

        1.DHCPv6客户端在发送的Solicit报文中携带Rapid Commit选项,标识客户端希望服务器能够快速为其分配地址和网络配置参数。

        2.DHCPv6服务器接收到Solicit报文后,将进行如下处理:

          如果DHCPv6服务器支持快速分配地址,则直接返回Reply报文,为客户端分配IPv6地址和其他网络配置参数,Reply报文中也携带Rapid Commit选项。

         如果DHCPv6服务器不支持快速分配过程,则采用四步交互方式为客户端分配IPv6地址/前缀和其他网络配置参数。

        快速获取地址配置方式:

服务端:接口下dhcpv6 server A rapid-commit  

客户端:接口下ipv6 address auto dhcp rapid-commit

        无状态获取只能获取到IP前缀信息,获取不到其他一系列的参数,例如DNS等,当无状态需要向有状态迁移时,可以配置flag位中的M位和O位置为1。

服务端:ipv6 nd autoconfig managed-address-flag----M位置为1

              ipv6 nd autoconfig other-flag------O位置为1           

7.IPv6基础实验

拓扑:

 描述:R1和R2手动配置,R2作为DHCPv6服务器,R3采用有状态的获取方式,R4采用无状态的获取方式并都能生成缺省路由,在R1上配置静态路由,使能全网通。

基本信息:

设备接口IP地址前缀
R1G0/0/02001::164
R2G0/0/02001::264
G0/0/12003::264
G0/0/22004::264
R3G0/0/0有状态获取
R4G0/0/0无状态获取

 R1配置:

#
ipv6 
#
interface GigabitEthernet0/0/0
 ipv6 enable 
 ipv6 address 2001::1/64 
#
ipv6 route-static 2003:: 64 2001::2 
ipv6 route-static 2004:: 64 2001::2 

R2配置:

#
ipv6 
#
dhcp enable
#
dhcpv6 pool A
 address prefix 2003::/64
 excluded-address 2003::1 to 2003::2
#
interface GigabitEthernet0/0/0
 ipv6 enable 
 ipv6 address 2001::2/64 
#
interface GigabitEthernet0/0/1
 ipv6 enable 
 ipv6 address 2003::2/64 
 undo ipv6 nd ra halt
 ipv6 nd autoconfig managed-address-flag
 ipv6 nd autoconfig other-flag
 dhcpv6 server A
#
interface GigabitEthernet0/0/2
 ipv6 enable 
 ipv6 address 2004::2/64 
 undo ipv6 nd ra halt

R3配置:

#
ipv6
#
dhcp enable
#
interface GigabitEthernet0/0/0
 ipv6 enable 
 ipv6 address auto link-local
 ipv6 address auto global default
 ipv6 address auto dhcp

R4配置:

#
ipv6 
#
interface GigabitEthernet0/0/0
 ipv6 enable 
 ipv6 address auto global default

查看R1接口的DAD报文:

查看R1pingR2的NS和NA报文:

 查看R4无状态获取的报文信息:

 查看R3有状态获取的报文信息:

R1上ping测试 :

         

  • 16
    点赞
  • 132
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
IPv6(Internet Protocol Version 6)是Internet协议的下一代版本。IPv6的主要目的是解决IPv4所面临的地址耗尽问题以及提供更好的网络安全和可拓展性。与IPv4相比,IPv6具有更大的地址空间、更好的路由功能和更好的支持移动设备等特点。 RFC(Request for Comments)是Internet标准化过程中的一种文件形式。RFC文档是由各类工作组和专家组根据需要提出或更新的,用于描述特定的协议、协议标准、实践经验以及网络架构等。 IPv6 RFC相关文档是指与IPv6协议有关的RFC文件。这些文件对于IPv6协议的功能、实现、扩展以及与其他网络协议的关系等方面提供了详细的说明和指导。 一些重要的IPv6 RFC文档包括: 1. RFC 2460:IPv6协议的规范文档,定义了IPv6数据报格式、地址表示法、寻址机制、路由选择和邻居发现等基本概念和协议。 2. RFC 4291:IPv6地址架构的规范文档,定义了IPv6地址的格式、类型和分配策略等,包括全球单播地址、唯一本地地址、站点本地地址和链路本地地址等。 3. RFC 4861:IPv6邻居发现协议的规范文档,描述了IPv6网络中节点如何实现邻居发现、自动配置和路由器重定向等功能。 4. RFC 3775:移动IPv6的规范文档,介绍了支持移动设备的IPv6扩展,包括移动节点的注册、移动路由器的功能和移动IPv6的路由优化等。 通过研读这些IPv6 RFC相关文档,可以深入了解IPv6协议的细节、原理和实现方法,为IPv6网络的部署和管理提供指导,并帮助解决IPv6部署过程中遇到的问题。同时,这些文档也为延伸和优化IPv6协议提供了参考和基础
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值