《Cisco IPv6网络实现技术(修订版)》一2.4 在Cisco IOS软件技术上配置IPv6

本节书摘来自异步社区《Cisco IPv6网络实现技术(修订版)》一书中的第2章,第2.4节,作者【加】Régis Desmeules,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.4 在Cisco IOS软件技术上配置IPv6

Cisco IPv6网络实现技术(修订版)
路由器可用的Cisco IOS软件技术支持部署和管理IPv6网络所必需的大部分IPv6协议特征。本节考察Cisco IOS软件技术所实现的IPv6特征。这些特征为启用IPv6、在网络接口上激活IPv6和在NDP(邻居发现协议)内配置机制如ARP替代、无状态自动配置、前缀通告、DAD(重复地址检测)和前缀重新编址等功能所必需的。第3章讲解NDP、无状态自动配置、前缀通告、DAD和前缀重新编址。

本节重点是在Cisco IOS软件技术上配置和操作IPv6地址。本节也假设在您的路由器上已经成功安装了支持IPv6的Cisco IOS软件。您能够从Cisco.com下载支持IPv6的Cisco IOS软件。Cisco技术的IPv6基本信息可以在www.cisco.com/ipv6/找到。

注:要学习如何在路由器上安装支持IPv6的Cisco IOS软件,参见本章末尾的案例研究任务1。

2.4.1 在Cisco IOS软件技术上打开IPv6功能

在Cisco路由器上打开IPv6功能的第一步是激活IPv6流量转发,以便在网络接口之间转发单播IPv6数据包。默认情况下,在Cisco路由器上,IPv6流量转发是关闭的。

ipv6 unicast-routing命令用于在路由器上打开接口之间的IPv6数据包转发功能。该命令的语法如下:

Router(config)#ipv6 unicast-routing

ipv6 unicast-routing命令是在全局基础上启用的。

完成该命令后的下一步是在网络接口上激活IPv6。

在Cisco上启用CEFv6
在Cisco上,IPv6的Cisco快速转发(CEF)也是可用的。CEFv6的行为与IPv4 CEF相同。但是,命令分为CEFv6新的配置命令和CEFv6与IPv4 CEF两者都可用的通用命令。

ipv6 cef命令启用中心CEFv6模式。IPv4 CEF必须使用ip cef命令来启用。类似地,IPv4 dCEF必须在dCEFv6之前启用。ipv6 cef命令是在全局基础上启用的。

第4章详细讲述了配置和管理IPv6 CEF的通用命令和新增命令。

2.4.2 数据链路技术之上的IPv6

定义IPv6运行在几乎所有的数据链路技术之上,如以太网、FDDI、令牌环、ATM、PPP、帧中继、非广播多路接入(NBMA)和ARCnet等。下列RFC描述了在每种数据链路技术上IPv6协议的行为:

以太网——RFC 2464,在以太网络上传送IPv6数据包
FDDI——RFC 2467,在FDDI网络上传送IPv6数据包
令牌环——RFC 2470,在令牌环网络上传送IPv6数据包
ATM——RFC 2492,ATM网络之上的IPv6
PPP——RFC 2472,PPP之上的IP版本6
帧中继——RFC 2590,帧中继网络上传送IPv6数据包
NBMA——RFC 2491,非广播多路接入(NBMA)网络之上的IPv6
ARCnet——RFC 2497,在ARCnet网络上传送IPv6数据包
通用数据包隧道——RFC 2473,IPv6规范中的通用数据包隧道
IEEE-1394——RFC 3146,在IEEE 1394网络上传送IPv6数据包
有IPv6功能的Cisco IOS软件技术支持几种接口类型,如以太网、快速以太网、千兆以太网、Cisco HDLC、PPP、帧中继PVC、ATM PVC、隧道和回环。因为以太网是网络中最常用的数据链路技术,所以本书中的配置范例多数针对以太网技术。

1.以太网之上的IPv6
类似于IPv4,IPv6运行在任何以太网技术之上。但是,在承载IPv6数据包的以太网帧中指定的协议ID值不同于IPv4中的协议ID。以太网帧内的协议ID确定第3层所用的协议,如IPv4,IPv6甚至如IPX、DECnet、AppleTalk等其他协议。

如表2-27所示,IPv4的协议ID是0x0800,IPv6的协议ID是0x86DD。

《Cisco IPv6网络实现技术(修订版)》一2.4 在Cisco IOS软件技术上配置IPv6

这样,路由器、服务器和节点就能够使用以太网帧的协议ID值区分同时在网络上传输的协议。

2.Cisco上常用数据链路层之上的IPv6
就PPP链路而言,一个IPv6控制协议(IPv6CP)数据包封装在PPP数据链路层的信息字段中。对于PPP链路之上的IPv6数据包来说,IPv6CP的协议ID是0x8057。

Cisco高级数据链路控制(HDLC)是Cisco路由器上的默认串行协议,是由ISO开发的一种同步数据链路层协议。这种协议定义了同步串行链路上的一种数据封装方法。对于Cisco-HDLC之上的IPv6数据包来说,IPv6CP的协议ID是0x86|0xDD。

最后,对于ATM AAL5 SNAP之上的IPv6来说,IPv6CP的协议ID是0x86DD,与以太网上的相同。

3.以太网之上的多播映射
正如前面所提到的,IPv6协议在本地链路范围的若干机制(如ARP替代、无状态自动配置、前缀通告、DAD和前缀重新编址)中依赖多播的使用。

因此,IPv6有一个多播地址到以太网链路层地址(以太网MAC地址)的特殊映射。映射是这样构造的:多播地址的低32比特附加在前缀33:33的后面,该前缀定义为IPv6多播以太网前缀。如图2-18所示,所有节点多播地址(FF02::1)的低32比特00:00:00:01附加在多播以太网前缀33:33之后。

《Cisco IPv6网络实现技术(修订版)》一2.4 在Cisco IOS软件技术上配置IPv6

48比特地址33:33:00:00:00:01表示发送一个数据包到IPv6目的地FF02::1(所有节点多播地址)的以太网帧中用作目的地的以太网MAC地址(链路层地址)。默认情况下,本地链路上的所有IPv6节点都在侦听,并且获得在以太网MAC地址中以33:33:00:00:00:01作为目的地的任何IPv6数据包。这是所有节点多播地址的一个例子,但在“多播地址”一节中讲到的所有其他多播指定地址都采用了相同的方式。

4.IPv6地址的EUI-64格式
如RFC 2462中所定义,本地链路、本地站点和无状态自动配置机制使用EUI-64格式来构造相应的IPv6地址。无状态自动配置是一种在没有中间设备如DHCP服务器的情况下,允许网络节点自行配置IPv6地址的机制。

本地链路地址和无状态自动配置是自动将基于48比特格式的以太网地址扩展成64比特格式(EUI-64)的IPv6功能。从48比特到64比特转换是一个两步操作。

如图2-19所示,第一步包括将值FFFE插入到OUI节(厂商码)和ID节(类似于一个序列号)之间的48比特链路层地址中。这里所给出的基于48比特的原始以太网MAC地址是00:50:3E:E4:4C:00。

如图2-20所示,第二步即最后一步是设定64比特的第7比特。该比特确定48比特地址的唯一性与否。一个以太网地址可以有两种含义。地址可以被全球或本地管理。全球管理指使用如08-00-2B-xx-xx-xx(DEC模式)之类的厂商MAC地址。本地管理指使用自己的值(Sun模式)重写MAC地址。在这种情况下,第7比特指:1是本地管理,0是全球管理。但是,在EUI-64格式中,数值是反的:0是本地管理,1是全球管理。总之,使用EUI-64格式的IPv6地址,如果第7比特设为1,地址是全球唯一的;否则,是本地唯一的。

《Cisco IPv6网络实现技术(修订版)》一2.4 在Cisco IOS软件技术上配置IPv6

2.4.3 在网络接口上启用IPv6

在路由器上启用IPv6转发之后,下一步是给接口指定一个IPv6地址。在Cisco路由器上配置IPv6地址有不同的方法。本节教您在Cisco IOS软件技术上配置IPv6地址的不同方法。

1.静态地址配置
如表2-28所示,ipv6 address命令可以用来在网络接口上配置本地链路地址(FE80::/10)、本地站点(FEC0::/10)地址或可聚合全球单播地址(2000::/3)。这种方法类似于静态地址配置(指在IPv4中),因此,必须提供完整的IPv6地址,同时必须有如本章前面给出的一个合法表示。

《Cisco IPv6网络实现技术(修订版)》一2.4 在Cisco IOS软件技术上配置IPv6

注:在一台Cisco路由器上,一旦为某个网络接口配置了本地站点或可聚合全球单播IPv6地址以及相应的前缀长度,结果就是在路由器的本地接口上通告指定的前缀。参见第3章以了解前缀通告和无状态自动配置的详细信息。

注:能够为每个接口配置多个本地站点和可聚合全球单播IPv6地址,但只允许一个本地链路地址。而且,在现在的Cisco IOS软件发行版中,本地站点地址是按可聚合全球单播地址来处理的。

注:如RFC 2373所描述的,指定给子网的IPv6前缀的推荐长度是64比特。

2.配置回环接口
使用ipv6 address命令,能够在回环接口上配置本地站点或可聚合全球单播地址。在下面的例子中,选定的是接口loopback0:

RouterA(config)#interface loopback0

在下面的例子中,为接口loopback0指定的是地址fec0:0:0:9::1/128:

RouterA(config-if)#ipv6 address fec0:0:0:9::1/128

3.使用EUI-64格式配置静态地址
在这种方法中,使用ipv6 address命令,能够在接口上使用本章前面讨论过的EUI-64格式配置地址。重要的是指定地址的高64比特(IPv6前缀)。然后路由器使用EUI-64格式自动完成低64比特。

下面的例子为接口指定了前缀和前缀长度:

Router(config-if)#ipv6 address ipv6-prefix/prefix-length eui-64

路由器使用EUI-64格式完成低64比特。该命令完成之后,自动配置本地链路地址。

在下面的例子中,可聚合全球单播前缀2001:0410:0:1::/64用来配置地址。可聚合全球单播和本地链路地址就自动配置好了:

RouterA(config-if)#ipv6 address 2001:0410:0:1::/64 eui-64

在下面的例子中,本地站点前缀FEC0:0:0:1::/64用来配置地址。本地站点和本地链路地址就自动配置好了:

RouterA(config-if)# ipv6 address FEC0:0:0:1::/64 eui-64

注:能够使用这个命令指定多个本地站点和可聚合全球单播IPv6地址。

4.在一个网络接口上仅启用IPv6
也可以使用ipv6 enable命令在一个接口上仅启用IPv6,而不指定可聚合全球单播或本地站点地址,如下:

Router(config-if)#ipv6 enable

该命令在接口上也自动配置本地链路地址。默认情况下,该命令不可用。

5.配置无编号接口
当从无编号接口产生数据包时,使用命令ipv6 unnumbered,令该接口使用另一个接口的可聚合全球单播地址作为源地址,如下所示:

Router(config-if)#ipv6 unnumbered interface

注:所指定接口必须至少有一个使用ipv6 address命令配置的可聚合全球单播地址。

6.在接口上配置MTU
在Cisco路由器上,以太网(10Mbit/s)和快速以太网(100Mbit/s)的默认MTU值预置为1500个八位字节。但是,能够使用ipv6 mtu命令修改此值:

Router(config-if)# ipv6 mtu bytes

下面是在网络接口上配置MTU值为1492的例子:

RouterA(config-if)# ipv6 mtu 1492

注:如前所述,IPv6的最小MTU值是1280个八位字节,而推荐的最小MTU值是1500个八位字节。

7.验证接口的IPv6配置
图2-21显示了一个基本IPv6网络拓扑的例子,其中路由器A有一个快速以太网接口连接到一条本地链路。在本例中,网络管理员给这条本地链路指定了两个前缀:

《Cisco IPv6网络实现技术(修订版)》一2.4 在Cisco IOS软件技术上配置IPv6

可聚合全球单播前缀2001:410:0:1::/64
本地站点前缀FEC0:0:0:1::/64
在路由器A上启用IPv6之前,使用show interface命令显示链路层地址(以太网MAC地址)和快速以太网0/0接口的MTU值。 例2-1显示了快速以太网0/0接口的链路层地址是00:50:3E: E4:4C:00,MTU值是1500字节。

例2-1 使用show interface命令显示接口的链路层地址和MTU值

RouterA#show interface fastEthernet 0/0

FastEthernet0/0 is up, line protocol is up
  Hardware is AmdFE, address is 0050.3ee4.4c00 (bia 0050.3ee4.4c00)
  MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec,
<output omitted>

然后就可以在路由器A上启用IPv6并为快速以太网0/0接口配置一个地址。如例2-2所示,命令ipv6 address 2001:410:0:1::/64 eui-64强制路由器利用接口的链路层地址(以太网MAC地址)完成地址的低64比特。本例中所用的以太网MAC地址是00:50:3E:E4:4C:00。

例2-2 在路由器上启用IPv6并使用ipv6 address命令在快速以太网0/0接口上配置两个地址

RouterA#configure terminal
RouterA(config)#ipv6 unicast-routing
RouterA(config)#int fastethernet 0/0
RouterA(config-if)#ipv6 address 2001:410:0:1::/64 eui-64
RouterA(config-if)#ipv6 address FEC0::1:0:0:1:1/64
RouterA(config-if)#exit
RouterA(config)#exit

最后,命令show ipv6 interface允许显示某个特定接口的IPv6配置相关参数。

在例2-3中,一旦在这个接口上启用了IPv6,本地链路地址FE80::250:3EFF:FEE4:4C00就自动生效。ipv6 address命令的EUI-64选项令路由器在可聚合前缀2001:410:0:1::/64的后面附加低64比特250:3EFF:FEE4:4C00。但是,本地站点地址FEC0::1:0:0:1:1是静态配置的。注意,虽然有两个单播地址,但只有一个本地链路地址是有效的。

例2-3 show ipv6 interface显示接口FastEthernet 0/0的相关参数

RouterA#show ipv6 interface fastEthernet 0/0
FastEthernet0/0 is up, line protocol is up 
  IPv6 is enabled, link-local address is FE80::250:3EFF:FEE4:4C00
  Global unicast address(es):
    2001:410:0:1:250:3EFF:FEE4:4C00, subnet is 2001:410:0:1::/64
    FEC0::1:0:0:1:1, subnet is FEC0:0:0:1::/64
  Joined group address(es):
    FF02::1
    FF02::2
    FF02::1:FF01:1
    FF02::1:FFE4:4C00
  MTU is 1500 bytes
<output omitted>

如例2-3所示,接口自动加入了几个多播指定地址。下面是每个多播指定地址的含义:

FF02::1——表示本地链路上的所有节点和路由器。
FF02::2——表示本地链路上的所有路由器。
FF02::1:FF01:1——用于替换ARP机制的被请求节点多播地址。DAD也使用这个地址。接口上配置的每个单播地址都有一个被请求节点多播地址。因此,这个地址是与单播地址FEC0::1:0:0:1:1相关的被请求节点多播地址。
FF02::1:FFE4:4C00——与单播地址2001:410:0:1:250:3EFF:FEE4:4C00相关的被请求节点多播地址。
注:替换ARP的机制在第3章详细讲解。

上一篇:《数据科学:R语言实现》——3.6 过滤数据


下一篇:owi性能分析工具