IPV6
地址8个段每段16bit(16进制)
自动配置 stateless
无广播也就没有ARP(NDP邻居发现协议 替代ARP)
IPsec必须被启用(可以做到端到端的加密)包一离站就被加密
IPV6报头中没有check因为它认为可以通过底层链路保证或者通过TCP提供保证
没有分段字段通过nexthead链结到下一个协议的报头
因为没有分段了,所以如果需要分段那么就需要拓展报头模型是在IPV6的头部后加上上层协议的报头,每个报头还有一个nexthead以供链结 链结下一个报头的值
例如TCP 6 UDP 17 分段44 路由选择43 逐跳可选 0 ESP 50 AH 51 目的地可选60 没有下一个报头59
组播取消了IGMP PIM中的dense mode取消了
必须支持1280的MTU最少
对移动和QOS的支持很好(IPV6的报头有一个flow lable的字段流标签.所谓流其实在IPV4中既有体现流即为一个5元组:原目的地址原目的端口和协议ID号由于太大了容易分片的时候给切好几块去,那么就可能不是一个流了自然计算也不同,但IPV6的流实际上是3元组源目的地址和flow label)
IPv6即插即用不需要DHCP管理但是用也没毛病
地址不是点分十进制的而是通过:十六进制的
进网的PC如果启用IPV6的话会收到路由器的组播(prefix)然后+自己的MAC就能形成自己的IP
EUI地址:一般是前64位然后掰开两半中加入FFFE就能形成后64位
IPV6的traffic class = TOS + flowlable
OSPF V3不支持MD5的加密
割接问题
双栈 路由器运行两个地址族
tunnel
NAT  虽然不愿意但是还是一种解决办法
为什么不愿意用NAT因为它提供不聊端到端的安全或者其他策略应用
IPV6的NAT有transport 和network模式总的来说要比IPV4复杂
0::/32非指定地址缺省路由
0::1/32  loopback
global公网 2000-3FFF::/8 起头为0010的
linklocal 在网段上建立的不可全局路由的地址NDP用fe80::/16 起头为1111 1110 10
site local 私网 fec0-FEFF ::/8  1111 1110 11 最新的为FC00::/8 1111 1100  FD00 ::/81111 1101
FF的就是组播:ff02::1网络所有的节点 ::2是所有的路由器这个就和那个224的相同了
协议更新的组播地址也就基本一样连最后一位也都一样
还有一种写地址的方法即把前面96b都写成0后面的32b变成IPV4的16进制版不过强烈不推荐
其实前缀写对了后面的64位愿意这么写就这么写(mac的那种需要在地址后加eui则自动生成)
地址的分段一般的规律:
/23的是注册机构
/35的是ISP
/48的是按栈点划分公司时候用的
/64就等于是划子网了
如果访问的是ipv6的网页的话写法
http:://[2001:1:4f3a:206::ae14]:8080/index.html前面的大括号的作用就是吧后面的端口和前面的地址区别开
12.2T以上的IOS支持IPV6或者用域名
(config)#ipv6 unicast-routing
打开IPV6的单波功能
然后就需要包接口分配到IPV6的环境中去
接口下ipv6 enable
然后show ipv6 int 看到的就是ipv6的link-local地址
写地址 ipv6 address 2000::1/64 (eui)
link-local为什么不能随便改:
其实可以随便改,但是必须前面是fe80的前缀
1个接口可以配好多地址因为它可以自动的找寻合适的邻居
一个组播的地址:
8bit FF
4bit lifetime 至0是永久至1是暂时的
然后跟着4bit的scope  至1为node(节点) 2link 网段的相当于广播 5 site 本地的 8 organization
F  global
最后的112bit就是groupID了
anycast 如果运用在组播上就是假如两个路由器都配6.6.6.6如果在一个OSPF的环境中 这个6.6.6.6的地址被选做RP那么其他的路由器根据这个地址会根据metric找最近的设备做RP相当于load blance
单播也是类似的运用比如做网关
节点请求的组播地址:FF02::1:FF/104的这个前缀加上接口上地址的后24bit就够成了节点请求的地址
作用可以做DAD之类的(网段重复地址检测)
ICMPV6
通告地址前缀用的
RS 路由器请求包 133
RA 路由答复包   134
通告邻居身份的
NS  邻居请求包  135
NA  邻居通告    136
重定向的
REDIRECT  重定向 137(跟IPV4的差不多)
debug ipv6 pac
debug ipv6 nd  
这两个命令查stateless配置的过程和替代ARP
现象先做个重复地址检查DAD
NS包:发自己的地址到网络上如果重复就会收到恢复,和DHCP配置的时候PING 那个自动分配的地址的行为类似
发以个源为空目的为自己的节点请求组播地址  FF02::1:FF/104加后24位链路地址
如果收不到回复就证明自己的地址是唯一的
然后发个NA包说明此地址我拥有了
NA只通告一次除非收到别人发的NS那证明地址重复了,才重新发个NA证明链路上已经有这个地址了第二阶段:
向网段上发RA就是发前缀
RA只对PC起作用
默认200秒发一次
show ipv6 (有些IOS不支持)还可以看到是stateless 还是dhcp 配置成的
可以强行的指定neighbour
全局模式下
R1(config)#ipv6 neighbor fec0:: ethernet 1/0 ?
  H.H.H  48-bit hardware address
前缀加接口加MAC
接口模式下通告前缀
R1(config-if)#ipv6  nd prefix FEC0::1/64 ?    存活期30天优选期7天也可以改为不通告后面也有禁止自动配置和不再链路上用的选项
  <0-4294967295>  Valid Lifetime (secs)
  at              Expire prefix at a specific time/date
  infinite        Infinite Valid Lifetime
  no-advertise    Do not advertise prefix
  no-autoconfig   Do not use prefix for autoconfiguration
  off-link        Do not use prefix for onlink determination
改发RA NA的时间:
R1(config-if)#ipv6 nd ?
  dad                  Duplicat Address Detection
  managed-config-flag  Hosts should use DHCP for address config
  ns-interval          Set advertised NS retransmission interval
  other-config-flag    Hosts should use DHCP for non-address config
  prefix               Configure IPv6 Routing Prefix Advertisement
  ra-interval          Set IPv6 Router Advertisement Interval
  ra-lifetime          Set IPv6 Router Advertisement Lifetime
  reachable-time       Set advertised reachability time
  suppress-ra          Suppress IPv6 Router Advertisements
如果网络只是为了跑路由或者根本没主机那么就写最后一条就不发RA了
IPV6的路由
rip ng 下一代的距离矢量协议
ISIS 是用地址族来与IPV4的地址路由进行区别(address family)重分布时候不会把直连接口带进去
rip ng
IPV6所有的网段路由通告都在接口上完成有点类似ISIS
接口下ipv6 rip ng(只是一个tag为了和其他的rip进程区别)enable (激活)default-in (公布缺省)1.only只公布缺省2.originate 什么都公布
清路由clear ipv route *
rip的更新端口IPV4 520  IPV6 521 组播224.0.0.9 FF02::9
全局下ipv6 router rip ng
更改通告端口为了区别不同的进程
进程下port 528 multicast-group FF02::9
接口下ipv6 rip ng enable
            ipv6 rip ng defa  通告默认路由
   show ipv  rip 
偏移列表没有了变成偏移值:
ipv6 rip ng metric-offset 3(接口下)
debug ip rip
或者直接写 debug  ip pac 101 detail   101是个permit eq 521 的列表
这种列表在测试时很好用可以把不需要的都deny
路由表
L是 local
C是 CONNECT  对应每一个直连接口都有一个L一个C
ISIS  试验做不了,我的IOS支持IPV6的不支持ISIS 支持ISIS 的不支持IPV6
router isis
net 49.0001.0000.0000.0002.00
接口上做 ipv router isis v6
增加个loopback 0
然后进程下passive-int l0
只通告但是不发信息(其他协议是激活这个端口是只收但是不通告.ISIS与其他协议的区别,其他协议连通告都不发.它passvie了但是还是通告出去了)
ISIS 一跳默认就是10
show isis database detail
图1 图1.JPG (46.76 KB)
2008-2-17 23:50
如果database中有例如R3-01 就说明R3是DIS 相当于以太链路上OSPF的DR它拥有两个IS节点路由器一个是R3一个是R2  LEV2是把所有区域信息汇总起来所以也有LEV1的
show clns nei 查看区域邻居
重分布
router isis v6
address-family ipv6 默认分布V4的
redistribute rip ng 默认是lev 2 如果打lev 1就出现抖动路由 lev1 和 lev2也没问题
因为RIP发给ISIS ISIS 也跟自己的ISIS邻居同步数据库因为你重分布的是LEV1的所以LEV2的数据库会同步所有区域的也就包括LEV1的,那么从邻居收到的关于LEV2的同步的路由的115大于RIP的120就没R的路由了,可是RIP失效了的时候I的路由也就没用了,这就R又出来了,于是一会有一会没。解决办法通告成LEV2的,因为LEV2的是本身通告的,那么它就不可能在收回来,就不会有这种情况发生了。同时分布进1和2也行但是这个的话路由类型不是I2是I1
主要就是防止造成路由反馈
isis进rip
不需要划分地址族
注意把直连分布进去否则ping不通 ISIS不分布直连的必须redistribute connect
静态路由:
ipv6 router 2000::/64 e0/0 地址( 建议写link-local的)
OSPF V3新加入了
link-lsa
inter-area-prefix lsa (配置网段公告,在接口说明属于哪个area)
                 router
只能用ESP和AH加密 MD5用不了了

Chapter 2. IPv6 Overview

※  IPv6 Addresses
1. Address Representation
128位的IPv6地址被分为8个16位的段,用16进制数值表示,形如:
3ffe:1944:0100:000a:0000:00bc:2500:0d0b
书写IPv6地址的规则:
1.        每个段的开头的0可以被省略,例如上面的IPv6地址可以被写为:3ffe:1944:100:a:0:bc:2500:d0b;
2.        单一连续的多个段的0,可以被简写为“::”。例如:ff02:0000:0000:0000:0000:0000:0000:0005可以被简写为ff02::5(“::”在一个IPv6地址中只能存在一个,否则会出现混淆);
3.        掩码的规则是:3ffe:1944:100:a::/64
以下是部分特殊的IPv6地址:
默认路由:::/0;
unspecified地址,在NDP中使用:::/128

2. IPv6 Address Types
IPv6地址的三种类型:
1.        Unicast
2.        Anycast
3.        Multicast

IPv6地址中不存在广播地址,取而代之的是"all nodes" multicast地址(FF02::1)。
Global Unicast Addresses
全球唯一的unicast地址。
该格式在RFC 3587中定义,废弃和简化了之前将IPv6 unicast地址分为Top Level Aggregator (TLA)、Next-Level Aggregator (NLA)和其它区域的老格式。
主机部分(Host Portion)被称为Interface ID,Subnet ID包括在网络部分(Network Portion)中,global IPv6地址的Interface ID部分在大多数情况下长度为64位,Subnet ID在大多数情况下是16位。
IANA 和 Regional Internet Registries (RIRs)机构分配给Local Internet Registries (LIRs)的地址掩码通常为/32或者/35,LIR通常为大型的ISP,LIR分配的地址一般为/48,但在下列特殊情况下会有所不同(就是前面提到的大多数情况之外的情况):
1.        非常大型的客户可以分配比/48更短的掩码;
2.        有且仅有一个子网分配的时候应使用/64掩码;
3.        有且仅有一个设备分配地址的时候应使用/128 掩码;
 
 

Identifying IPv6 Address Types
 
地址的前几位决定了地址的类型:
 
Address Type
 
High-Order Bits (binary)
 
High-Order Bits (Hex)
 
Unspecified
 
00...0
 
::/128
 
Loopback
 
00...1
 
::1/128
 
Multicast
 
11111111
 
FF00::/8
 
Link-Local Unicast
 
1111111010
 
FE80::/10
 
Site-Local Unicast (Deprecated)
 
1111111011
 
FEC0::/10
 
Global Unicast (Currently allocated)
 
001
 
2xxx::/4 or 3xxx::/4
 
Reserved (Future global unicast allocations)
 
Everything else
 

 

6Bone(公共IPv6研究网络)使用的地址从3ffe开始,而RIRs使用的地址由2001开始分配。

IPv6包由IPv6包头(40字节固定长度)、扩展包头和上层协议数据单元三部分组成。
  IPv6包扩展包头中的分段包头(下文详述)中指名了IPv6包的分段情况。其中不可分段部分包括:IPv6包头、Hop-by-Hop选项包头、目的地选项包头(适用于中转路由器)和路由包头;可分段部分包括:认证包头、ESP协议包头、目的地选项包头(适用于最终目的地)和上层协议数据单元。但是需要注意的是,在IPv6中,只有源节点才能对负载进行分段,并且IPv6超大包不能使用该项服务。
  下文还将简述IPv6寻址、路由以及自动配置的相关内容。
IPv6包头长度固定为40字节,去掉了IPv4中一切可选项,只包括8个必要的字段,因此尽管IPv6地址长度为IPv4的四倍,IPv6包头长度仅为IPv4包头长度的两倍。
  其中的各个字段分别为:
  Version(版本号):4位,IP协议版本号,值= 6。
  Traffice Class(通信类别):8位,指示IPv6数据流通信类别或优先级。功能类似于IPv4的服务类型(TOS)字段。  
  Flow Label(流标记):20位,IPv6新增字段,标记需要IPv6路由器特殊处理的数据流。该字段用于某些对连接的服务质量有特殊要求的通信,诸如音频或视频等实时数据传输。在IPv6中,同一信源和信宿之间可以有多种不同的数据流,彼此之间以非“0”流标记区分。如果不要求路由器做特殊处理,则该字段值置为“0”。
  Payload Length(负载长度):16位负载长度。负载长度包括扩展头和上层PDU,16位最多可表示65,535字节负载长度。超过这一字节数的负载,该字段值置为“0”,使用扩展头逐个跳段(Hop-by-Hop)选项中的巨量负载(Jumbo Payload)选项。
  Next Header(下一包头):8位,识别紧跟IPv6头后的包头类型,如扩展头(有的话)或某个传输层协议头(诸如TCP,UDP或着ICMPv6)。 
  Hop Limit(跳段数限制):8位,类似于IPv4的TTL(生命期)字段。与IPv4用时间来限定包的生命期不同,IPv6用包在路由器之间的转发次数来限定包的生命期。包每经过一次转发,该字段减1,减到0时就把这个包丢弃。
  Source Address(源地址):128位,发送方主机地址。  
  Destination Address(目的地址):128位,在大多数情况下,目的地址即信宿地址。但如果存在路由扩展头的话,目的地址可能是发送方路由表中下一个路由器接口。
IPv6包头设计中对原IPv4包头所做的一项重要改进就是将所有可选字段移出IPv6包头,置于扩展头中。由于除Hop-by-Hop选项扩展头外,其他扩展头不受中转路由器检查或处理,这样就能提高路由器处理包含选项的IPv6分组的性能。
  通常,一个典型的IPv6包,没有扩展头。仅当需要路由器或目的节点做某些特殊处理时,才由发送方添加一个或多个扩展头。与IPv4不同,IPv6扩展头长度任意,不受40字节限制,以便于日后扩充新增选项,这一特征加上选项的处理方式使得IPv6选项能得以真正的利用。 但是为了提高处理选项头和传输层协议的性能,扩展头总是8字节长度的整数倍。
  目前,RFC 2460中定义了以下6个IPv6扩展头:Hop-by-Hop(逐个跳段)选项包头、目的地选项包头、路由包头、分段包头、认证包头和ESP协议包头:
  
  (一)Hop-by-Hop选项包头包含分组传送过程中,每个路由器都必须检查和处理的特殊参数选项。其中的选项描述一个分组的某些特性或用于提供填充。这些选项有:
  Pad1选项(选项类型为0),填充单字节。
  PadN选项(选项类型为1),填充2个以上字节。
  Jumbo Payload选项(选项类型为194),用于传送超大分组。使用Jumbo Payload选项,分组有效载荷长度最大可达4,294,967,295字节。负载长度超过65,535字节的IPv6包称为“超大包”。
  路由器警告选项(选项类型为5),提醒路由器分组内容需要做特殊处理。路由器警告选项用于组播收听者发现和RSVP(资源预定)协议。
  (二)目的地选项包头指名需要被中间目的地或最终目的地检查的信息。有两种用法:
  如果存在路由扩展头,则每一个中转路由器都要处理这些选项。
  如果没有路由扩展头,则只有最终目的节点需要处理这些选项。
  
  (三)路由包头
  类似于IPv4的松散源路由。IPv6的源节点可以利用路由扩展包头指定一个松散源路由,即分组从信源到信宿需要经过的中转路由器列表。
  
  (四)分段包头
  提供分段和重装服务。当分组大于链路最大传输单元(MTU)时,源节点负责对分组进行分段,并在分段扩展包头中提供重装信息。
  
  (五)认证包头
  提供数据源认证、数据完整性检查和反重播保护。认证包头不提供数据加密服务,需要加密服务的数据包,可以结合使用ESP协议。
  
  (六)ESP协议包头
  提供加密服务。

IPv6数据包:上层协议数据单元
  上层数据单元即PDU,全称为Protocol Data Unit。  
  PDU由传输头及其负载(如ICMPv6消息、或UDP消息等)组成。而IPv6包有效负载则包括IPv6扩展头和PDU,通常所能允许的最大字节数为65535字节,大于该字节数的负载可通过使用扩展头中的Jumbo Payload(见上文)选项进行发送。
在 Internet 协议版本 6 (IPv6) 中,地址的长度是 128 位。地址空间如此大的一个原因是将可用地址细分为反映 Internet 的拓扑的路由域的层次结构。另一个原因是映射将设备连接到网络的网络适配器(或接口)的地址。IPv6 提供了内在的功能,可以在其最低层(在网络接口层)解析地址,并且还具有自动配置功能。
  文本表示形式
  以下是用来将 IPv6 地址表示为文本字符串的三种常规形式:
  
  (一)冒号十六进制形式。
  这是首选形式 n:n:n:n:n:n:n:n。每个 n 都表示八个 16 位地址元素之一的十六进制值。例如:
    3FFE:FFFF:7654:FEDA:1245:BA98:3210:4562.
  
  (二)压缩形式。
  由于地址长度要求,地址包含由零组成的长字符串的情况十分常见。为了简化对这些地址的写入,可以使用压缩形式,在这一压缩形式中,多个 0 块的单个连续序列由双冒号符号 (::) 表示。此符号只能在地址中出现一次。例如,多路广播地址 FFED:0:0:0:0:BA98:3210:4562 的压缩形式为 FFED::BA98:3210:4562。单播地址 3FFE:FFFF:0:0:8:800:20C4:0 的压缩形式为 3FFE:FFFF::8:800:20C4:0。环回地址 0:0:0:0:0:0:0:1 的压缩形式为 ::1。未指定的地址 0:0:0:0:0:0:0:0 的压缩形式为 ::。
  
  (三)混合形式。
  此形式组合 IPv4 和 IPv6 地址。在此情况下,地址格式为 n:n:n:n:n:n:d.d.d.d,其中每个 n 都表示六个 IPv6 高序位 16 位地址元素之一的十六进制值,每个 d 都表示 IPv4 地址的十进制值。
  地址类型
  地址中的前导位定义特定的 IPv6 地址类型。包含这些前导位的变长字段称作格式前缀 (FP)。
  IPv6 单播地址被划分为两部分。第一部分包含地址前缀,第二部分包含接口标识符。表示 IPv6 地址/前缀组合的简明方式如下所示:ipv6 地址/前缀长度。
  以下是具有 64 位前缀的地址的示例。
    3FFE:FFFF:0:CD30:0:0:0:0/64.
  此示例中的前缀是 3FFE:FFFF:0:CD30。该地址还可以以压缩形式写入,如 3FFE:FFFF:0:CD30::/64。
  
  IPv6 定义以下地址类型:
  
  单播地址。用于单个接口的标识符。发送到此地址的数据包被传递给标识的接口。通过高序位八位字节的值来将单播地址与多路广播地址区分开来。多路广播地址的高序列八位字节具有十六进制值 FF。此八位字节的任何其他值都标识单播地址。
  以下是不同类型的单播地址:
  链路-本地地址。这些地址用于单个链路并且具有以下形式:FE80::InterfaceID。链路-本地地址用在链路上的各节点之间,用于自动地址配置、邻居发现或未提供路由器的情况。链路-本地地址主要用于启动时以及系统尚未获取较大范围的地址之时。
  站点-本地地址。这些地址用于单个站点并具有以下格式:FEC0::SubnetID:InterfaceID。站点-本地地址用于不需要全局前缀的站点内的寻址。
  全局 IPv6 单播地址。这些地址可用在 Internet 上并具有以下格式:010(FP,3 位)TLA ID(13 位)Reserved(8 位)NLA ID(24 位)SLA ID(16 位)InterfaceID(64 位)。
  
  多路广播地址。一组接口的标识符(通常属于不同的节点)。发送到此地址的数据包被传递给该地址标识的所有接口。多路广播地址类型代替 IPv4 广播地址。
任一广播地址。一组接口的标识符(通常属于不同的节点)。发送到此地址的数据包被传递给该地址标识的唯一一个接口。这是按路由标准标识的最近的接口。任一广播地址取自单播地址空间,而且在语法上不能与其他地址区别开来。寻址的接口依据其配置确定单播和任一广播地址之间的差别。
通常,节点始终具有链路-本地地址。它可以具有站点-本地地址和一个或多个全局地址。
  
IPv6路由
  IPv6 的优点之一就是提供灵活的路由机制。由于分配 IPv4 网络 ID 所用的方式,要求位于 Internet 中枢上的路由器维护大型路由表。这些路由器必须知道所有的路由,以便转发可能定向到 Internet 上的任何节点的数据包。通过其聚合地址能力,IPv6 支持灵活的寻址方式,大大减小了路由表的规模。在这一新的寻址结构中,中间路由器必须只跟踪其网络的本地部分,以便适当地转发消息。
  
  邻居发现
  邻居发现提供以下一些功能:
  
  路由器发现。这允许主机标识本地路由器。
  地址解析。这允许节点为相应的下一跃点地址解析链路层地址(替代地址解析协议 [ARP])。
  地址自动配置。这允许主机自动配置站点-本地地址和全局地址。
  
  邻居发现将 Internet 控制消息协议用于 IPv6 (ICMPv6) 消息,这些消息包括:
  
  路由器广告。在伪定期的基础上或响应路由器请求由路由器发送。IPv6 路由器使用路由器广告来公布其可用性、地址前缀和其他参数。
  路由器请求。由主机发送,用于请求链路上的路由器立即发送路由器广告。
  邻居请求。由节点发送,以用于地址解析、重复地址检测,或用于确认邻居是否仍可访问。
  邻居广告。由节点发送,以响应邻居请求或通知邻居链路层地址中发生了更改。
  重定向。由路由器发送,从而为某一发送节点指示指向特定目标的更好的下一跃点地址。
  
IPv6自动配置
  IPv6 的一个重要目标是支持节点即插即用。也就是说,应该能够将节点插入 IPv6 网络并且不需要任何人为干预即可自动配置它。
  
  自动配置的类型
  IPv6 支持以下类型的自动配置:
  
  全状态自动配置。此类型的配置需要某种程度的人为干预,因为它需要动态主机配置协议来用于 IPv6 (DHCPv6) 服务器,以便用于节点的安装和管理。DHCPv6 服务器保留它为之提供配置信息的节点的列表。它还维护状态信息,以便服务器知道每个在使用中的地址的使用时间长度以及该地址何时可供重新分配。
  无状态自动配置。此类型配置适合于小型组织和个体。在此情况下,每一主机根据接收的路由器广告的内容确定其地址。通过使用 IEEE EUI-64 标准来定义地址的网络 ID 部分,可以合理假定该主机地址在链路上是唯一的。
  
  不管地址是采用何种方式确定的,节点都必须确认其可能地址对于本地链路是唯一的。这是通过将邻居请求消息发送到可能的地址来实现的。如果节点接收到任何响应,它就知道该地址已在使用中并且必须确定其他地址。
  IPv6 移动性
  移动设备的迅速普及带来了一项新的要求:设备必须能够在 IPv6 Internet 上随意更改位置但仍维持现有连接。为提供此功能,需要给移动节点分配一个本地地址,通过此地址总可以访问到它。在移动节点位于本地时,它连接到本地链路并使用其本地地址。在移动节点远离本地时,本地代理(通常是路由器)在该移动节点和正与其进行通信的节点之间传递消息。
此处插入介绍。