IPv6学习笔记

IPv6学习笔记

IPV6优点

1、更大地址空间:128位的地址空间可以满足星球上每个人

2、无需NAT:保障端到端通信

3、没有广播地址:包括单播、多播、任意播

4、支持移动性和安全性:有助于确保遵循移动IP标准和Ipsec标准

5、更简单的报文提高了路由器的效率

6、接口标识:从接口的数据链路层 

IPV6新特性

1、每个接口多个地址

2、链路本地地址:交换路由更新时,IGP将link-local地址作为下一跳地址

3、无状态自动配置:一个IPV6设备根据本身分配一个独特link-local IPV6的地址

4、独立或不独立于提供商的编址 

IPV6地址

1、IPV6地址由128位组成,使用8个16位段来表示,每个16位段使用十六进制数字表示即每4个十六进制为一组,之间使用英文冒号:分开

2、格式为:x:x:x:x:x:x:x:x   x代表4个十六进制位,举例:2035:0001:2BC5:0000:0000:087C:0000:000A

3、IPV6地址包括两部分:前缀+本地标识

4、前缀:通过在IPV6地址后面加一个斜线/,再跟一个十进制的数字来标识一个IPV6地址的起始位由多少位是前缀位,一般前缀为64位,如:3ffe:1994:100:a::/64 

5、接口标识:从接口的数据链路层地址直接派生出接口标识,该标识是全局唯一。长度为64位,根据MAC地址动态创建。

6、特殊的IPV6地址如下表:

 

  IPV6地址

                     描述                                                  

 ::/0

  •  缺省路由
  • 等同于IPV4   0.0.0.0         

::/128

  • 未指定地址
  • 不能分配给真实的网络接口

::1/128

  • 本地的环回地址
  • 等同于IPV4的127.0.0.1

 FE80::/10

  • 链路本地单播地址
  • 等同于Windows自动配置的IP地址169.254.x.x

  FF00::/8

  • 组播地址

  其他地址

  • 全局单播地址
  • 001(当前分配的)即:2xxx::/4或者3xxx::/4
  • 其余的为未分配的全球单播地址

IPV6地址简写规则:

1、在4个十六进制位组成的字段中,可以省略前导0;如:09C0=9C0   0000=0

2、在每个地址中,可使用一对冒号(::)来表示任意数量的连续的0,;如:ff02:0000:0000:0000:0000:0000:0000:0005=ff02::5

注:一个地址中只能出现一对冒号,否则无法唯一确定地址

IPV6地址类型

地址类型 

                              描述  

  

   单播

  •  一个地址标识单个接口
  • 发送给单播地址的分组将传输到该地址标识接口

   多播

  • 一个多播地址标识位于不同设备上的一组接口
  • 发送给多播地址的分组将传输到该地址标识的所有接口
  • 多播地址不会作为源地址出现

  任意播

  • 一个地址分配给多个接口
  • 这些接口代表不同的节点
  • 将分组发送到任意播组中最近接口(第一个邻居),其他情况根据路由协议的度量值确定
  1. 全球单播地址格式:  网络部分提供一台设备到下行专用数据链路的定位,主机部分提供这条数据链路上该设备的标识 。16位的子网ID字段可以提供65536(216)个不同的子网

全球路由选择前缀(48)

子网ID(16)

           接口ID  (64)                                  

                        

  1. 本地单播地址:使用范围限定在单条链路上的地址。唯一性只在所在的链路有效,相同的地址也可能存在于另一条链路上,因此此地址离开所在的链路是不可路由的。链路本地单播地址的起始10位是1111111010(FE80::/10)
  2. IPV6单播地址分配方法:

 

说明:每个接口只能有一个链路本地地址

        仅仅配置一个全局单播地址也会在接口上创建一个链路本地地址(EUI-64)

        接口上可以配置多个IPV6地址。IPV4和IPV6地址可以同时配置

        以太网的接口ID是基于接口的48位MAC地址中间插入16位的0XFFFE

 

  1. 多播地址格式

多播前缀:8位

标记:4位

范围:4位

组ID:112

说明:标记位:前3位保留为0,第4位:0-永久的公认的地址;1-暂时的地址

        范围:包括:节点本地-0X1、链路本地-0X2、地区本地-0X5、组织本地-0X8、全球-0XE、保留-0XF 0X0

        组ID:前面80位设置为0,只使用后面的32位

        常见的公认IPV6多播地址:都属于永久的链路本地的范围;

           地址                

               多播组

 FF02::1

所有的节点

 FF02::2

所有的路由器

 FF02::5

OSPFv3路由器

 FF02::6

OSPFv3指定路由器

 FF02::9

RIPng路由器

 FF02::A

EIGRP路由器

 FF02::B

移动代理

 FF02::C

DHCP服务器/中继代理

 FF02::D

所有的PIM路由器

IPV6包头格式

 

 

 

说明:

  1. 版本:4位,0110表明版本6
  2. 流量类别:8位,类似于IPV4中的TOS字段
  3. 流标签:20位,设置目的是允许为特定的业务流打上标签,可以提供更精细的服务类别区分的颗粒,在平衡业务流量通过多条路径时可以确保属于同一流的数据包能够总是转发到相同路径上,在发起一个数据包时,加上合适的流标签字段,路由器能够识别一条流,而不必一 一查找数据包头部,目前路由器忽略此字段
  4. 有效载荷长度:用来封装数据包所封装的有效载荷长度,IPV6数据包头部长度为40字节
  5. 下一报头:指出IPV6数据包头部后面的报头,与IPV4包中的协议字段类似
  6. 跳数限制:类似于IPV4中的TTL字段,衡量一个数据包到达目的地的路径中所能跨越的最大路由器跳数的工具
  7. 源地址和目的地址:128位长度
  8. 可选项:包含拓展报头,提供可选功能,如:分段、源路由选择或认证、目的地可选项、TCP/IP协议等,在下一个报文字段中是否有扩展报头

IPV6报头

路由选择扩展报头

分段扩展报头

认证扩展报头

上层协议报头

数据

参考地址:https://www.cnblogs.com/zhaoyujiao/p/4963654.html

 

 

 

地址结构

Pv6地址是由128位分为8个16位的块。每个块,然后转换成由冒号分隔的4位十六进制数。

例如,下面是表示以二进制格式,并分成8个16位的块128比特的IPv6地址:

0010000000000001 0000000000000000 0011001000110100 1101111111100001 0000000001100011 0000000000000000 0000000000000000 1111111011111011

每个块,然后转换成十六进制和以':'符号:

2001:0000:3238:DFE1:0063:0000:0000:FEFB

即使在转换成十六进制格式,IPv6地址仍然漫长。 IPv6提供了一些规则来缩短地址。这些规则是:

规则1:丢弃前导零(ES):

在第5块,0063,前面的两个0可以省略,如(第5块):

2001:0000:3238:DFE1:63:0000:0000:FEFB

规则2:如果两个以上的块包含连续的零,忽略所有这些,并换上双冒号::迹象,如(第6和第7块):

2001:0000:3238:DFE1:63::FEFB

零的连续的块可以被替换为仅一次::所以如果仍有为零的块中的地址也可以是缩小到单个零,如(第二块):

2001:0:3238:DFE1:63::FEFB

接口ID

IPv6有三种不同类型的单播地址格式。地址(最后64位)的后半部分总是用于接口ID。的系统的MAC地址是由48位并以十六进制表示。 MAC地址被认为是唯一分配全球范围内。接口ID采用此MAC地址的唯一性的优势。通过使用IEEE的扩展唯一标识符(EUI-64)格式的主机可以自动配置其接口ID。首先,主机会将其自己的MAC地址分为两个24位半。那么16位十六进制值0xFFFE的被夹到MAC地址的那两半,导致64位接口ID。

 

 

 

全球单播地址

这种地址类型是等同于IPv4公网地址。在IPv6全球单播地址是全球识别和独特的寻址。

[Image: Global Unicast Address]

全球路由前缀:最显著的48位被指定为全球路由前缀被分配到特定的自治系统。全球路由前缀的三个最显著位始终设置为001。

链路本地地址

自动配置的IPv6地址被称为链路本地地址。这个地址总是以FE80开头。链路本地地址的前16位总是被设置为1111 11101000 0000(FE80)。接下来的48位都设置为0,因此:

[Image: Link-Local Address]

链路本地地址用于在链路(广播业务)只有IPv6主机之间的通信。这些地址是不可路由的这么一个路由器永远的链接外转发这些地址。

独特的本地地址

这种类型的IPv6地址是虽然全局唯一的,但应该在本地通信中使用。此地址接口ID和上半部分是其中的前缀,本地位,全球ID和子网ID划分的下半部分。

[Image: Unique-Local Address]

前缀始终设置为1111110。 L位,这是设置为1,如果该地址是本地分配。到目前为止,L位为0的意思是没有定义。因此,唯一的本地IPv6地址总是从“FD”。

参考网址:https://www.yiibai.com/ipv6/ipv6_address_types.html

 

IPv6 link-local和site-local address

学习IPV6的时候涉及到一个概念,link-local address, 中文叫“链路本地地址”,它的前缀是
FE80::/64
一个link-local address的范例:
FE80::713e:a426:d167:37ab

实际上,这个概念类似于ipv4中,当DHCP分配失败时自动生成的169.254.XXX.XXX这样的地址,凡是源地址或目的地址中含有link-local address的报文,路由器都不应当转发它。这样的报文只能在一个LAN中互通。

<IPV6的地址类型>
可分为三大类:
1、单播地址
2、组播地址
3、任意播地址
单播--Unicast : one to one
·单播地址用于一对一的连接
·IPv6单播地址有以下六种类型:

 1-Aggregate Global Unicast Address   2xxx:xxxxx/3 - 3FFF: :FFFF
                                       2001::/16 IPV6因特网地址
                                       2002::/16 6to4过渡地址
2-Link Local Address              FE80::/10   (前10位以FE80开头)
3-Site Local Address (Private)       FEC0::/10
4-Unspecified Address              0:0:0:0:0:0:0:0/128 => ::/128
5-Loopback Address                0:0:0:0:0:0:0:1/128 => ::1/128
6-IPv4 Compatible Address            ::192.168.30.1 => ::C0A8:1E01
以下是一些单播地址的具体说明:
1、可聚合全球单播地址Aggregate global unicast address
由IANA分配的可在全球路由的公网IP地址
目前已分配的前缀:2000::/3     占用了12.5%的IPV6地址空间
2000:0000:0000:0000:0000:0000:0000:0000--3FFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
这个前缀中总共包含8192个/16的前缀
目前实际用于IPV6因特网运作的前缀:2001::/16
2002::/16 为使用6-TO-4过渡机制的节点保留
3ffe::/16 用于6bone测试目的的前缀
2、本地链路地址:link-local address
当在一个节点启用IPV6,启动时节点的每个接口自动生成一个link-local address
其前缀64位为标准指定的,其后64位按EUI-64格式来构造
注意:在本链路上,路由表中看到的下一跳都是对端的Link Local地址,不是公网IP地址
前缀:FE80::/10
范围:只能在本地链路使用,不能在子网间路由
为何需要link-local--在一个接口可以配置很多IPv6地址,所以学习路由就有可能出现很多下一跳。
所以出现Link Local地址唯一标识一个节点。在本地链路看到下一跳都是对端的Link Local地址。
在网络重新编址过程中,节点和路由器的Link Local地址不会发生变化,可以很容易地做一个修改,不用担心网络不可达。
R1(config-if)#ipv6 address FE80:0:0:0:0123:0456:0789:0abc link-local   手工指定link-local地址
3、本地站点地址:site-local address
IPV6的私网地址,就像IPV4中的私网保留地址一样
只占用到整个IPV6地址空间的0.1%
前缀:FEC0::/10 其后的54比特用于子网ID 最后64位用于主机ID
范围:只能在本站点内使用,不能在公网上使用
例如:在本地分配十个子网
1、FEC0:0:0:0001::/64
2、FEC0:0:0:0002::/64
3、FEC0:0:0:0003::/64
10、FEC0:0:0:000A::/64
本地站点地址被设计用于永远不会与全球IPV6因特网进行通信的设备,比如:打印机、内部网服务器、网络交换机等
4、未指定地址Unspecified address
形式:0:0:0:0:0:0:0:0 
表示地址未指定,或者在写默认路由时代表所有路由
5、回环地址Loopack address
形式:0:0:0:0:0:0:0:1
同IPV4中127.0.0.1地址的含义一样,表示节点自已
6、内嵌IPV4地址的IPV6地址 IPv4 Compatible Address 
1、IPV4兼容的IPV6地址--用于在IPV4网络上建立自动隧道,以传输IPV6数据包。
   其中高96bit设为0,后面跟32bit的IPV4地址
   0000:0000:0000:0000:0000:0000:206.123.31.2
   0000:0000:0000:0000:0000:0000:ce7b:1f01
   由于这种机制不太好,现在已经不再使用,转而采用更好的过渡机制
2、映射IPV4的IPV6地址--仅用于拥有IPV4和IPV6双协议栈节点的本地范围
   其中高80bit设为0,后16bit设为1,再跟IPV4地址
   0000:0000:0000:0000:0000:ffff:206.123.31.2
   0000:0000:0000:0000:0000:ffff:ce7b:1f01
EUI-64格式:扩展惟一标识符
在IPV6中,无状态自动配置机制使用EUI-64格式来自动配置IPV6地址
所谓无状态自动配置是指在网络中没有DHCP服务器的情况下,允许节点自行配置IPV6地址的机制。
EUI-64的构造规则--根据接口的MAC地址再加上固定的前缀来生成一个IPV6的地址
工作原理:自动将48bit的以太网MAC地址扩展成64bit,再挂在一个64bit的前缀后面,组成一个IPV6地址

一、将48位的MAC地址从中间分开,插入一个固定数值FFFE
    0050:3EE4:4C00-->0050:3EFF:FEE4:4C00
二、将第7个比特位反转,如果原来是0,就变为1,如果原来是1,就变为0
    0050:3EFF:FEE4:4C00-->0250:3EFF:FEE4:4C00
三、加上前缀--FE80::0250:3EFF:FEE4:4C00 这就是一个完整的IPV6地址
反转的原因:
  在MAC地址中,第7比特为1表示本地管理,为0表示全球管理
  在EUI-64格式中,第7位为1表示全球惟一,为0表示本地惟一
组播地址Multicast
在IPV6中没有广播,用组播来代替
前缀:FF00::/8   占用了0.38%的IPV6地址空间
          
      1111    1111    4bit       4bit
     |→固定值←||→标志←| |→范围←|
标志位为0000表示是永久保留的组播地址,分配给各种技术使用
标志位为0001表示是用户可使用的临时组播地址
范围段定义了组播地址的范围,其定义如下:
二进制    十六进制    范围类型
0001          1       本地接口范围
0010          2       本地链路范围
0011          3       本地子网范围
0100          4       本地管理范围
0101          5       本地站点范围    类似组播的私网地址
1000          8       组织机构范围
1110          E       全球范围        类似组播的公网地址
下面是一些组播指定地址:
FF02::1    all nodes   在本地链路范围的所有节点
FF02::2    all routers 在本地链路范围的所有路由器
FF02::5    all ospf routers
FF02::9    all rip routers 所有运行RIP的路由器
FF02::A    all eigrp routers 所有运行eigrp的路由器
FF05::2                在一个站点范围内的所有路由器
 

被请求节点的组播地址solicited-node multicast address--重要的东东
一种特殊的组播地址,对于节点或路由器的接口上配置的每个单播和任意播地址,都会自动生成一个对应的被请求节点组播地址。注意link-local address也会生成一个被请求节点的组播地址。
工作范围:只在本地链路上有效
特点:1、在本地链路上,被请求节点的组播地址组中通常只包含一个用户
      2、只要知道一个节点的IPV6地址,就能计算出它的被请求节点的组播地址
作用:1、在IPV6中,没有ARP。ICMP代替了ARP的功能,被请求节点的组播地址被节点用来获得相同本地链路上邻居节点的链路层地址
      2、用于重复地址检测DAD,在使用无状态自动配置将某个地址配置为自已的IPV6地址之前,节点利用DAD
         验证在其本地链路上该地址是否已经被使用。
前缀:FF02:0000:0000:0000:0000:0001:FFxx:xxxx/104
      FF02::1:FFxx:xxxx/104
如何产生:被请求节点组播地址的前104位固定,将IP地址的后24位移下来填充到后面就可以了
   例如:IPv6---2001::1234:5678/64
   被请求节点组播地址---FF02::1:FF34:5678/104
   其中FF02::1:FF为固定部分,共104位
组播IP地址到MAC地址的映射:
映射规则:组播MAC地址的前16位固定为0x3333,将组播IPV6地址的后32位直接映射到组播MAC地址的后32位就可以了。
例:IPV6地址为--FF12::1234:5678/64
    对应的组播MAC地址为--3333:1234:5678
    0x3333为固定前缀
例:所有节点的组播地址:FF02::0001
    对应的组播MAC地址:3333:0000:0001
任意播地址Anycast address
应用在one-to-nearest(一到近)模式
任意播是多个设备共享一个地址.分配IPv6单播(unicast)地址给拥有相同功用的一些设备.发送方发送一个以任意播为目标地址的包,当路由器接受到这个包以后,就转发给具有这个地址的离它最近的设备.单播地址用来分配任意播地址.对于那些没有配备任意播的的地址就是单播地址;但是当一个单播地址分配给不止一个接口的时候,单播地址就成了任意播地址。
例如:Mobile方面的特性,移动设备漫游到其他区域,不必接入原始的接入点,只需要找到最近的即可。
必须的IPV6地址:
一旦节点启用IPV6,那么接口就会自动生成下列地址
1、本地链路地址
2、回环地址
3、所有节点多播地址FF02::1
4、如果是路由器,还会有FF02::2
5、被请求节点的组播地址
如果接口配了一个IPV6的单播地址,还会产生被请求节点的组播地址
《如何在帧中继中写MAP》
注意:必须写两条MAP,一条是所配IPV6地址的MAP,一条是link-local地址的MAP
否则会由于没有MAP映射导致无法PING通。
<IPV6的基本命令>
R1(config)#ipv6 unicast-routing    在路由器上开启IPV6路由功能
R1(config-if)#ipv6 enable        在接口下启用IPV6,会自动生成一个link-local地址
R1(config-if)#ipv6 address 2001::1/64   指定一个IP地址,配置后会自动生成一个link-local地址
R1(config-if)#ipv6 address FE80:0:0:0:0123:0456:0789:0abc link-local   手工指定link-local地址
R1(config-if)#ipv6 address 2001:0410:0:1::/64 eui-64 使用eui-64格式自动生成IPV6地址的低64位
R1(config-if)#ipv6 unnumbered   让本接口使用另一个接口的MAC地址生成源地址
R1(config-if)#ipv6 mtu 1500    配置接口的MTU值
R1(config-if)#ipv6 nd suppress-ra    关闭自动下发前缀
R2(config-rtr)#no split-horizon 关闭水平分割 注意IPV6的水平分割是在进程下关闭,不是在接口下
show ipv6 interface e0    显示IPV6接口的信息,包括IPV6地址,link-local地址,加入的组播地址及被请求节点组播地址
注意:串口和loopback口会借用以太口的MAC地址来生成link-local地址。

参考网址:https://blog.csdn.net/dolphin98629/article/details/43965819

posted @ 2020-06-05 11:26  创世哥  阅读(1551)  评论(0编辑  收藏  举报