演示目标:在思科的路由器上配置IPv6的本地链路地址。
演示环境:如下图12.43所示。
演示背景:在该环境中一台思科支持IPv6的路由器直接连接一台IPv6的计算机,请分别配置基于思科路由器与微软Windows XP/vista/2008操作系统上IPv6的本地链路地址,并根据所显示的配置结果,结合理论思考地址生成的原理。
演示步骤:
第一步:首先配置路由器的本地链路地址,在路由器的全局配置模式下通过ipv6 unicast-routing指令启动路由器的IPv6功能。然后进入ethernet 1/0接口模式,通过ipv6 enable启动该接口下的IPv6功能,路由器将使用该接口的接口标识符自动生成一个如下图12.44所示的地址。配置完成后,可通过show ipv6 interface e1/0查看路由器产生本地链路地址的结果FE80::C800:FFEA0:1C就是路由器R1的E1/0接口的IPv6本地链路地址。
关于启动IPv6后自动生成本地链路地址:
r1(config)#ipv6 unicast-routing
r1(config)#interface ethernet 1/0
r1(config-if)#ipv6 enable
第二步:求证该地址生成的原理,通过前面的小节关于IPv6的地址类型所描述的IPv6本地链路地址,IPv6本地链路地址的构成:以FE80+54个bit默认的0+64位的MAC地址填充地址,构成IPv6的本地链路地址。可以通过在路由器上执行show inte e1/0指令查看路由器R1的e1/0接口的MAC地址为ca00.0fa0.001c,如下图12.45所示。根据IPv6基于EUI-64地址接口标识符的配置的理论来将48位的MAC地址填充成64位的MAC地址,首先在ca00.0f与a0.001c之间插入FFFE,此时48位的MAC地址就变成ca00.0fff.fea0.001c;然后将该64位MAC地址从左向右的前两个十六进制位ca转换成二进制:11001010,在转换而成的这串二进制数中,从左向右的第七位“1”取反变为0;的此时的这串二进数就为11001000,然后再将二进制数转换成十六进制为c8。经过上述变换,最后得到64位MAC地址c800.0fff.fea0.001c,再加上IPv6本地链路地址固定位FE80和54bit默认位就得到地址FE80::C800.0FFF.FEA0.001C,再经过零压缩法的输写得到:FE80::C800.FFF.FEA0.1C,这与图12.44路由器上自动生成的本地链路地址所输出的结果一致。
第三步:在完成基于路由器的E1/0接口的IPv6本地链路地址配置后,接下来是演示在计算机上完成IPv6本地链路地址的配置,选择“本地连接”中安装“Microsoft TCP/IP版本6”,如下图12.46所示。计算机就会产生一个IPv6的本地链路地址。如下图12.47计算机所产生的IPv6所示,可知该计算机的IPv6地址为fe80::250:56ff:fec0:1%5。
现在读者可能会产生一个疑问?在这个IPv6地址fe80::250:56ff:fec0:1%5中的fe80::250:56ff:fec0:1的生成过程应该很明白,这与第二步中路由器接口的本地链路地址一样是通过MAC地址扩充到64而得到,关键是该地址后面有一个“%5”,这表示什么意思,它是如何产生的?这是微软公司操作系统一种特殊的表达方式,表示一个区域ID(zoneid),区域ID 是代表区域的整数值。区域 ID 的值是根据主机来定义的。因此,不同的主机可能会有不同的区域 ID 值,确定相同的物理区域。譬如,主机 A 可能选择数字 3 来代表一个附加链路的区域,而主机 B 可能会选择数字 4 来代表相同的链路区域。事实上区域ID就是一个IPv6站点编号,它的产生来源于具体网卡的索引号,如下图12.47所示,通过在计算机上执行Netsh interfaceipv6 show interface得到本地链路地址fe80::250:56ff:fec0:1%5中的“%5”是索引号为5的网卡(VMwareNetwork Adapter VMnet1)所产生。该值在不同的计算机上产生时可能会产生不同的区域编号,这和操作系统的网卡数量有关。