IPv6是IETF(互联网工程任务组,Internet Engineering Task Force)设计的用于替代现行版本IP协议(IPv4)的下一代IP协议。
一、IPV6的地址:
IPv6 地址共 128位,通过 8 个十六进制的地址块格式来表示,用冒号隔开。如
2012 : aacc :efad : abcd : 1234 : 78ad : adbc : 2012
两种简略规则:
1:任意一个16位组中的起始的0不必写出来,认为每一个16位组(每4位用16进制表示出来如0001 0010 1111 1001 表示为12f9)不足4位那么在不足之处补0即可。
2:任意一个由全0组成的16位组,都可用单个0表示,且如果是连续的16位组可以只写成::但这种表示方式只能使用一次::,为了避免出现歧义。
IPv6 地址有三种类型:单播、任意播和组播,在每种地址中又有一种或者多种类型的地址;没有广播地址!
1.全球单播地址:
是用来表示单台设备的地址,指这个单播地址是全球唯一的。
IPv6的地址是层级分配的:
标准的全单播地址段,全球路由选择前缀,48位,子网ID16位,接口iD64位。
如果有一个且仅有一个子网需要编址,那么可以分配一个长度为/64的前缀。
如果有一台并且仅有一台设备需要编址,那么可以分配一个长度为/128的前缀。
全球单播地址地址为 2000::/3 即前三位为 001 范围是从 2000:到 3FFF:目前只有
2001::/16的地址正在被分配使用,而使它如2002::/16地址被用于6到4的通道.
2.本地单播地址:
每个 IPv6 接口下都会自动产生一个链路本地地址,此地址前 10 位永远是1111111010 (FE80::/10).链路本地地址仅对单独一条链路上有效用于自动配置,邻居发现;链路本地地址的包是不会被转发到别的接口的,所以链路本地地址是可以重复的,只要是在不同的接口上即可。其相当于IPv4上的169.254.0.0/16,使用链路本地地址作为源目的地址的包一般都是路由器控制平面上的协议.
3.ULA地址
ULA地址(即唯一本地单播地址)前缀为FC00::/7。在RFC 4193定义,它取代了早期IPv6定义的站点本地地址FEC0::/10。
ULA地址被认为是私有的地址,它不能在公网上被路由,ULA只可在一群网站中绕送。这地址包含一个伪随机数,以减少当网站合并或分组误传到网络时碰撞的风险。
格式:
FC00 (7 bits) + Unique ID (41 bits) + Link ID (16 bits) + Interface (64 bits)
ULA地址除了地址格式和范围以外,不具有其的唯一行为
4.任意播地址
任意播地址的描述更像是一种服务,而非一台设备。使用任意播的好处就是,路由总是选择最近的,或者代价最低的服务器路由。
5.多播地址(multicast)
只要前缀是FF的IPv6地址,都是组播地址。一个多播组数据包通常包含一个单播地址作为他的源地址,一个多播地址作为他的目的地址。FF00 : : /8 IPv6组播地址范围。
6.嵌入的IPV4地址
即把ipV4地址做为ipv6的最后的32位。该地址用于自动隧道技术,在双栈模式下,将IPv6数据包自动封装到IPv4数据包中,经IPv4网络传输IPv6数据。
7. 可聚合全球单播地址
IANA 分配IPv6 寻址空间中的一个IPv6 地址前缀作为可聚合全球单播地址。
8 回环地址
单播地址0:0:0:0:0:0:0:1 称为回环地址。节点用它来向自身发送IPv6 包。它不能分配给任何物理接口。
9. 不确定地址
单播地址0:0:0:0:0:0:0:0 称为不确定地址。它不能分配给任何节点
cisco路由器上IPv6配置方式:
1. 手动配置 Router(config-if)#ipv6 address 2012::2/64
2.半自动配置Router(config-if)#ipv6 address 2012::/64 eui-64
3. 全自动配置Router(config-if)#ipv6 address autoconfig
注:1.使用eui-64参数之后,IOS会将硬件中的48位MAC地址拿出来自动创建IPv6地址中的64位的接口ID。具体就是换掉MAC地址中最前7位U/L位,再在中间填充16位的FFEE组成一个IPv6地址
3. 当ipv6开启ICMPv6 ND协议,此协议会自动发送路由器通告(RA),从而学习到一个网段的IPv6前缀完成自动配置。发送RA的功能在以太的接口上是默认开启的。
可以配置ra发送间隔:ipv6ndra-interval
IPv6地址的时效时长:ipv6ndra-lifetime
定义ra中所携带的前缀:ipv6nd prefix
默认下,所有的前缀都被包括
可以让路由器不进行自动配置:no-autoconfig
二、IPV6下的路由协议
Ipv6下的路由协议有很多,在此我们仅讨论以下几种:
1.静态路由:
IPv6静态路由与IPv4静态路由类似,配置命令为:Ipv6 route 目的地址 出口地址/接口若指定的目的地址为::/0,认为是配置默认路由:ipv6 route ::/0 接口
2.ripng:
RIPng是rip第三版,基本工作原理同RIPV2是一样的。RIPng缺省管理距离120,负载均衡缺省路径数为16,最大为64。所有RIPng路由器使用组播地址FF02::9,作为RIP更新的目标地址。
RIPng的配置只需在全局下用ipv6 router rip 定义后,再在相应接口上用ipv6 rip enable开启就行了,进程名只具有本地意义。 如果在同一个接口上同时运行两个进程,那么这两个RIPng进程不能使用相同的UDP端口号,需要使用命令 ipv6 router ripprocess-name port number multicast address修改。
所有运行更改UDP端口号的RIPng进程的路由器和主机都必须使用相同的UDP端口号。
所有运行同一个RIPng进程的路由器都必须使用同样的计时器值。
Show ipv6 rip可以显示出每一个进程的信息。
例:R1(config)#ipv6 unicast-routing
R1(config)#ipv6 router rip cisco //启动IPv6 RIPng进程
R1(config-rtr)#split-horizon //启用水平分割
R1(config-rtr)#poison-reverse //启用毒化反转
R1(config)#interface Loopback0
R1(config-if)#ipv6 address 2006:1111::1/64
R1(config-if)#ipv6 rip cisco enable //在接口上启用RIPng
常用命令:
1:ipv6 rip process-name metric-offset number
通过在路由器相对应的接口上配置希望增加的跳数值来增加通过这个接口所通告的每一个前缀的度量值
2:ipv6 rip process-name summary-address ipv6address
对路由进行汇总。配置汇总路由后,具体的路由前缀将被自动抑制
3:ipv6 rip cisco default-information only
向IPv6 RIPng区域注入一条默认路由,但是该命令只从该接口发送默认的IPv6 路由,而该接口其它的IPv6 的RIPng路由都被抑制。
在NBMA下运行ripng协议可能会带来两个问题:
1:没有链路本地地址的映射,于是路由更新无法完成
2:部分互联的接连关系会让某些节点收不到更新
可以通过在全局下关掉水平分割功能的方法来解决。
3.ospfv3:
OSPFv3是OSPF(Open Shortest Path First,开放式最短路径优先)版本3的简称,主要提供对IPv6的支持,遵循的标准为RFC 2740(OSPF for IPv6)。
OSPFv3和OSPFv2在很多方面是相同的:
Router ID,Area ID仍然是32位的。
相同类型的报文:Hello报文,DD报文,LSR报文,LSU报文和LSAck报文。
相同的邻居发现机制和邻接形成机制。
相同的LSA扩散机制和老化机制。
OSPFv3和OSPFv2的不同主要有:
OSPFv3是基于链路(Link)运行,OSPFv2是基于网段(Network)运行。
OSPFv3在同一条链路上可以运行多个实例。
OSPFv3是通过Router ID来标识邻接的邻居。OSPFv2则是通过IP地址来标识邻接的邻居。
注:1.OSPFv3上如果配置IPv4地址了,router-ID的选举规则与IPv4一样,如果没有配置IPv4地址,需要在OSPF进程启动前,使用命令router-id手动配置路由器ID
2. ospfV3的报文其长度只有16字节,且没有认证字段,它使用IPv6的认证。另外就是多了一个Instance ID字段,用来支持在同一条链路上运行多个实例。OSPFv3路由器使用它们的链路本地地址作为Hello数据包的源地址,在Hello数据包中没有包含IPv6前缀的信息.OSPFv3的Hello数据包包含了一个实例ID,这个实例ID可以用来把运行在同一个LAN上的两个OSPF进程分开,缺省的实例ID号为0,更改实例的命令是:接口模式下ipv6 ospfnumber area number instance number
LSA类型:
LSA——链路状态通告,是OSPFv3协议计算和维护路由信息的主要来源。在RFC2740中定义了七类LSA,描述如下:
Router-LSA:由每个路由器生成,描述本路由器的链路状态和开销,只在路由器所处区域内传播。
Network-LSA:由广播网络和NBMA网络的DR生成,描述本网段接口的链路状态,只在DR所处区域内传播。
Inter-Area-Prefix-LSA:和OSPFv2中的Type-3 LSA类似,该LSA由ABR生成,在与该LSA相关的区域内传播。每一条 Inter-Area-Prefix-LSA描述了一条到达本自治系统内其他区域的IPv6地址前缀的路由。
Inter-Area-Router-LSA:和OSPFv2中的Type-4 LSA类似,该LSA由ABR生成,在与该LSA相关的区域内传播。每条Inter-Area-Router-LSA描述了一条到达本自治系统内的ASBR的路由。
AS-external-LSA:由ASBR生成,描述到达其它AS的路由,传播到整个AS(Stub区域除外)。缺省路由也可以用AS-external-LSA来描述。
Link-LSA:路由器为每一条链路生成一个 Link-LSA,在本地链路范围内传播。每一个Link-LSA描述了该链路上所连接的IPv6地址前缀及路由器的Link-local地址。
Intra-Area-Prefix-LSA:每个Intra-Area-Prefix-LSA包含路由器上的IPv6前缀信息,Stub区域信息或Transit Area的网段信息,该LSA在区域内传播。由于Router-LSA和Network-LSA不再包含地址信息,导致了Intra-Area-Prefix-LSA的引入。
在RFC 5187中定义了第十一类LSA,Grace-LSA。Grace-LSA由Restarter在重启时候生成的,在本地链路范围内传播。这个LSA描述了重启设备的重启原因和重启时间间隔,目的是通知邻居本设备将进入GR(Graceful Restart,平滑重启)。
注:1.OSPFv3的路由器LSA和网络LSA都不携带IP地址,并且取消了通告前缀的功能
2.link-LSA只有用于两个直接相连的邻居之间的信息通信才是有意义的,且它属于链路本地扩散的范围
命令配置:
Ospfv3的配置和OSPFv2基本类似,可以用完全相同的方式利用area stub、area nssa和area stub no-summary命令来支持和配置末梢、NSSA和完全末梢等区域。
1. 启用OSPFv3命令,Ipv6 router ospf <进程名>
2. 定义router-id (可选,但最好手工定义)
3. 接口模式下ipv6 ospf number area number需要在每一个运行OSPFv3协议的接口上配置
这条命令,一个接口上所有的IPv6地址都属于该接口上创建的OSPF进程。
注:虽然在一台路由器上可以运行多个OSPFv3进程,但是在一个接口上只能运行单个实例检查命令: show ipv6 protocol
例:R1(config)#ipv6 unicast-routing
R1(config)#ipv6 router ospf 1 //启动OSPFv3 路由进程
R1(config-rtr)#router-id 1.1.1.1 //定义路由器ID
R1(config-rtr)#default-information originate metric 30 metric-type 2
//向OSPFv3 网络注入一条默认路由
R1(config)#interface Serial0/0/0
R1(config-if)#ipv6 address 2007:12::1/64
R1(config-if)#ipv6 ospf 1 area 1 //在接口上启用OSPFv3,并声明接口所在区域
R1(config-if)#no shutdown
在NBMA网络上配置OSPFv3:
方法一:手工指定
(1)手动映射对方IPv6地址到本地DLCI frame-relay map ipv6 ip address dlci
(2)手动指定邻居 ipv6 ospf neighbor ip-address priority
方法二:动态的发现邻居
(1)使用ipv6 ospf network broadcast命令将一个OSPF网络定义成广播网络
(2)在frame-relay map语句使用关键字broadcast指出在PVC电路上进行广播转发
注:1.OSPFv3使用链路本地地址进行包交换,所以在使用frame-relay map映射时必须映射链路本地地址而不是全局地址
2.可以使用命令ipv6 ospf priority可以手动调整影响DR选举的优先级
3.如果想要避免DR/BDR的选举,可以将OSPF网络的类型改为点到多点的网络类型ipv6ospf network point-to-multipoint,但点到多点的Hello数据包是每30s发送一次,而广播型网络上的Hello数据包是每10s发送一次
4.察看链路本地地址的命令是show ipv6 interface 接口
Ripng和ospfv3都不向下兼容v2的版本,可以在路由器上同时运行两种版本不会互相影响,但不能互相重分布。