IPv6 第 12 章
12.2 IPv6 的地址配置
IPv6 地址是网络设备或计算机主机接口的逻辑标识,IPv6 协议的一个突出特点是支持网络节 点地址自动配置,极大地简化了网络管理者的工作,本节以图 12-3 为例介绍各种情况下 IPv6 地址 的分配方法。
12.2.1 启用 IPv6 协议
我们给某个网络设备或主机的接口分配 IPv6 的地址,首先需要该设备支持 IPv6 的协议,
Windows Server 2003 和 Windows 7 及以上版本默认已经启用了 IPv6,Windows XP 默认没有启用 IPv6 协议,如图 12-4 所示。
12 Chapter
▲图 12-3 IPv6 地址分配环境
▲图 12-4 Windows XP 默认的协议栈
如果需要在 Host3 安装 IPv6 协议,在 CMD 窗口中执行 ipv6 install 命令,操作如下:
C:\Documents and Settings\Administrator>ipv6 install
在 Host3 的命令提示符下,输入 ipconfig 能够看到 IPv6 的链路本地地址,操作如下:
Ethernet adapter 本地连接:
Connection-specific DNS Suffix. :
Description . . . : VMware Accelerated AMD PCNet Adapter Physical Address. . . : 00-0C-29-7E-E2-57
Dhcp Enabled. . . : Yes Autoconfiguration Enabled . . . . : Yes
Autoconfiguration IP Address. . . : 169.254.72.231 Subnet Mask . . . : 255.255.0.0
IP Address. . . : fe80::20c:29ff:fe7e:e257%5 ---链路本地地址--- Default Gateway . . . :
DNS Servers . . . : fec0:0:0:ffff::1%1
注意:系统启用 IPv6 后所有的接口都会自动获得一个都是以“FE80::/10”为 前缀的链路本地地址,所以在使用链路本地地址进行通信时还必须指明相应的接 口名称或编号。上面的链路本地地址后面的“%5”标识系统 ID 为 5 的接口对应 的链路本地地址,其他的接口有不同的 ID 标识,这个 ID 是系统分配的,只有 本地意义。
12Chapter
Windows 7 系统已经默认启用了 IPv6 的协议,我们可以在 Host2 上查看其 IPv6 的信息。
C:\Users\Administrator>ipconfig
以太网适配器 VMware Network Adapter VMnet1:
连接特定的 DNS 后缀 . . . :
C:\Documents and Settings\Administrator>ping fe80::dad:ffb9:a9f3:d9fe%5 Pinging fe80::dad:ffb9:a9f3:d9fe%5 with 32 bytes of data:
Reply from fe80::dad:ffb9:a9f3:d9fe%5: time<1ms Reply from fe80::dad:ffb9:a9f3:d9fe%5: time<1ms Reply from fe80::dad:ffb9:a9f3:d9fe%5: time<1ms Reply from fe80::dad:ffb9:a9f3:d9fe%5: time<1ms Ping statistics for fe80::dad:ffb9:a9f3:d9fe%5:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
来自 fe80::20c:29ff:fe7e:e257%14 的回复: 时间<1ms 来自 fe80::20c:29ff:fe7e:e257%14 的回复: 时间<1ms 来自 fe80::20c:29ff:fe7e:e257%14 的回复: 时间<1ms 来自 fe80::20c:29ff:fe7e:e257%14 的回复: 时间<1ms fe80::20c:29ff:fe7e:e257%14 的 ping 统计信息:
数据包: 已发送= 4,已接收= 4,丢失= 0(0%丢失)
往返行程的估计时间(以毫秒为单位):
最短= 0ms,最长= 0ms,平均= 0ms
C:\Users\Administrator>ping fe80::20c:29ff:fe7e:e257 ---未指明接口 ID--- 正在 ping fe80::20c:29ff:fe7e:e257 具有 32 字节的数据:
来自 fe80::20c:29ff:fe7e:e257 的回复: 时间<1ms 来自 fe80::20c:29ff:fe7e:e257 的回复: 时间<1ms 来自 fe80::20c:29ff:fe7e:e257 的回复: 时间<1ms 来自 fe80::20c:29ff:fe7e:e257 的回复: 时间<1ms fe80::20c:29ff:fe7e:e257 的 ping 统计信息:
数据包: 已发送= 4,已接收= 4,丢失= 0(0%丢失)
往返行程的估计时间(以毫秒为单位):
最短= 0ms,最长= 0ms,平均= 0ms C:\Users\Administrator>
12 Chapter
fe80::dad:ffb9:a9f3:d9fe icmp6_seq=1 ttl=128 time=0.000 ms fe80::dad:ffb9:a9f3:d9fe icmp6_seq=2 ttl=128 time=0.000 ms fe80::dad:ffb9:a9f3:d9fe icmp6_seq=3 ttl=128 time=1.000 ms fe80::dad:ffb9:a9f3:d9fe icmp6_seq=4 ttl=128 time=2.000 ms fe80::dad:ffb9:a9f3:d9fe icmp6_seq=5 ttl=128 time=1.000 ms
Host1> ping fe80::20c:29ff:fe7e:e257
fe80::20c:29ff:fe7e:e257 icmp6_seq=1 ttl=128 time=135.007 ms fe80::20c:29ff:fe7e:e257 icmp6_seq=2 ttl=128 time=4.001 ms fe80::20c:29ff:fe7e:e257 icmp6_seq=3 ttl=128 time=0.000 ms fe80::20c:29ff:fe7e:e257 icmp6_seq=4 ttl=128 time=8.000 ms fe80::20c:29ff:fe7e:e257 icmp6_seq=5 ttl=128 time=4.000 ms Host1>
在思科路由器上启用 IPv6 协议,需要在全局配置模式中执行 ipv6 unicast-routing 命令,操作 如下:
GW#show ipv6 interface brief FastEthernet0/0 [up/up]
FE80::C801:9FF:FE14:0 GW#
可以在子路由器上使用命令 show ipv6 interface [brief]查看接口 IPv6 的设置情况。
GW#show ipv6 interface FastEthernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::C801:9FF:FE14:0 No global unicast address is configured
---省略部分输出---
GW#show ipv6 interface brief FastEthernet0/0 [up/up]
FE80::C801:9FF:FE14:0 GW#
如果从路由器上通过 ping 测试到 Host2 链路本地地址的连通性,需要指出相应的接口 fas0/0,
操作过程如下:
12Chapter GW#ping fe80::dad:ffb9:a9f3:d9fe ---测试到 Host2 接口链路本地地址的连通性---
Output Interface: FastEthernet0/0 ---指明出口--- Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FE80::DAD:FFB9:A9F3:D9FE, timeout is 2 seconds:
Packet sent with a source address of FE80::C801:9FF:FE14:0
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/24/28 ms GW#
12.2.2 手工配置 IPv6 地址
Windows XP 和 Windows Server 2003 没有提供图形界面配置 IPv6 的地址、网关及 DNS 等,这 些网络信息可以通过 netsh 命令设置,以 Host3 为例,设置过程如下:
C:\Documents and Settings\Administrator>netsh ---执行 netsh 命令--- netsh>interface ---进入接口视图---
接口 4:Teredo Tunneling Pseudo-Interface
地址类型 DAD 状态 有效寿命 首选寿命 地址
--- --- --- --- --- 链接 首选项 infinite infinite fe80::ffff:ffff:fffd ---省略部分输出---
netsh interface ipv6>add route ::/0 5 fec0:10::10 ---设置默认路由,相当于网关--- netsh interface ipv6>show route ---查看路由(网关)信息---
12 Chapter
索引 DNS 服务器
--- --- 1 fec0:10::11
2 fec0:10::12
netsh interface ipv6>exit ---退出 netsh---
C:\Documents and Settings\Administrator>ipconfig ---查看网络参数的设置--- Windows IP Configuration
Ethernet adapter 本地连接:
Connection-specific DNS Suffix . :
Autoconfiguration IP Address. . . :169.254.72.231 Subnet Mask . . . :255.255.0.0 IP Address. . . :fec0:10::3%1
IP Address. . . :fe80::20c:29ff:fe7e:e257%5 Default Gateway . . . :fec0:10::10%1
Windows 7 的 IPv6 信息设置和 IPv4 类似,除了使用 netsh 还可以通过窗口直接设定,以 Host2 为例,设置方式如图 12-5 所示。
▲图 12-5 Windows 7 中设置 IPv6 的相关信息 在 VPCS 中设置 IPv6 信息的方式如下(以 Host1 为例):
Host1> ip fec0:10::1/64 fec0:10::10 ---设置 IPv6 地址信息--- PC1 : fec0:10::1/64
Host1> show ---验证 IPv6 地址信息---
NAME IP/MASK GATEWAY MAC LPORT RHOST:PORT Host1 0.0.0.0/0 0.0.0.0 00:50:79:66:68:00 10000 10.8.0.100:10001 fe80::250:79ff:fe66:6800/64
fec0:10::1/64 Host1>
在路由器 GW 中手动设置接口 Fas0/0 的 IPv6 地址,操作如下:
GW(config)#interface fastEthernet 0/0 GW(config-if)#ipv6 address fec0:10::10/64 GW(config-if)#end
GW#show ipv6 interface brief
12Chapter FastEthernet0/0 [up/up]
FE80::C801:9FF:FE14:0 FEC0:10::10
GW#
从路由器使用 ping 命令测试到每个主机的连通性,操作过程如下:
GW#ping fec0:10::1 Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FEC0:10::1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 24/28/32 ms
GW#ping fec0:10::2 Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FEC0:10::2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/34/72 ms
GW#ping fec0:10::3 Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FEC0:10::3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/25/36 ms GW#
12.2.3 无状态自动配置
前面我们介绍过,一个典型的 IPv6 主机单播地址由 3 部分组成:全局路由前缀、子网 ID 和接 口 ID(64 位)。全局路由前缀用来识别分配给一个站点或企业的一个地址范围;子网 ID 也称为子 网前缀,一个子网 ID 与一个链接相关联,以识别站点中的某个链接或网段;接口 ID 用来识别链 接上的某个接口,在该链接上是唯一的,接口 ID 的配置方式有以下 3 种:
网络管理员手动配置。
通过系统软件生成。
采用扩展唯一标识符(EUI-64)格式生成。
就实用性而言,EUI-64 格式是 IPv6 生成接口 ID 最常用的方式。IEEE EUI-64 标准采用接口的 MAC 地址生成 IPv6 接口 ID。MAC 地址只有 48 位,而接口 ID 却要求 64 位。MAC 地址的前 24 位代表厂商 ID,后 24 位代表制造商分配的唯一扩展标识。MAC 地址的第七高位是一个 U/L 位,
值为 1 时表示 MAC 地址全局唯一,值为 0 时表示 MAC 地址本地唯一。在 MAC 地址向 EUI-64 格 式的转换过程中,在 MAC 地址的前 24 位和后 24 位之间插入了 16 比特的 FFFE,并将 U/L 位的值 从 0 变成了 1,这样就生成了一个 64 比特的接口 ID,且接口 ID 的值全局唯一,如图 12-6 所示。
IPv6 支持无状态地址自动配置,无需使用如 DHCP 之类的辅助协议,只要在路由器的接口配 置一个 64 位的网络前缀,该网络的每个节点即可获取该 IPv6 的前缀并结合 64 位的接口 ID 形成一 个 128 位的 IPv6 全球单播地址。
路由器发现功能是 IPv6 地址自动配置功能的基础,其工作过程如图 12-7 所示。
IPv6 地址自动配置主要通过以下两种报文实现:
RA 报文:每台路由器为了让二层网络上的主机和其他路由器知道自己的存在,定期以组
12 Chapter
播方式(FF02::1)发送携带网络配置参数的 RA 报文。
RS 报文:主机接入网络后可以主动发送 RS 报文,RS 报文是由路由器定期发送的,但是 如果主机希望能够尽快收到 RS 报文,它可以立刻主动通过组播(FF02::2)发送 RS 报文 给路由器。网络上的路由器收到该 RS 报文后会立即向相应的主机单播回应 RA 报文,告 知主机该网段的默认路由器和相关配置参数。
▲图 12-6 EUI-64 接口 ID 的形成
▲图 12-7 IPv6 地址自动配置
网关设备在给接口分配 IPv6 单播地址之前会进行重复地址检测(DAD),确认是否有其他的节点 使用了该地址,其作用和 IPv4 中的免费 ARP 类似,用于地址分配或主机连接网络时检测重复的主机 地址。如果网关收到某个其他站点回应的邻居通告(NA)报文,就证明该地址已被网络使用,节点将 不能使用它进行通信,这时网络管理员需要手动为该节点分配另外一个地址。尽管在自动配置的情况 下出现地址重复的概率非常小,但进行 DAD 检测是很必要的,尤其是在地址自动配置的时候。
在路由器 GW 上通过无状态自动配置设置接口 Fas0/0 的 IPv6 地址并验证,操作如下:
GW(config)#interface fastEthernet 0/0
GW(config-if)#ipv6 address fec0:10::/64 eui-64 GW(config-if)#no shut
GW(config-if)#end
12Chapter GW#show interface fastEthernet 0/0
FastEthernet0/0 is up, line protocol is up
Hardware is DEC21140, address is ca01.0914.0000 (bia ca01.0914.0000) ---MAC--- MTU 1500 bytes, BW 100000 Kbit/sec, DLY 100 usec,
---省略部分输出---
GW#show ipv6 interface fastEthernet 0/0 FastEthernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::C801:9FF:FE14:0 ---链路本地地址---
ICMP error messages limited to one every 100 milliseconds ICMP redirects are enabled
ND DAD is enabled, number of DAD attempts: 1 ND reachable time is 30000 milliseconds ND advertised reachable time is 0 milliseconds ND advertised retransmit interval is 0 milliseconds ND router advertisements are sent every 200 seconds ND router advertisements live for 1800 seconds
Hosts use stateless autoconfig for addresses. ---主机地址采用无状态自动配置方式---
Ethernet adapter 本地连接:
Connection-specific DNS Suffix . :
Description . . . :VMware Accelerated AMD PCNet Adapter Physical Address. . . :00-0C-29-7E-E2-57
Dhcp Enabled. . . : Yes Autoconfiguration Enabled . . . . : Yes
Autoconfiguration IP Address. . . : 169.254.72.231 Subnet Mask . . . : 255.255.0.0
12 Chapter
Windows IP 配置
以太网适配器 VMware Network Adapter VMnet8:
描述. . . :VMware Virtual Ethernet Adapter for VMnet8 Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FEC0:10::2050:79FF:FE66:6800, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 24/30/44 ms GW#ping fec0:10::b087:c227:596f:362f ---测试到 Host2 的连通性--- Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FEC0:10::B087:C227:596F:362F, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/28/40 ms
GW#ping fec0:10::20c:29ff:fe7e:e257 ---测试到 Host3 的连通性--- Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FEC0:10::20C:29FF:FE7E:E257, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 24/34/64 ms GW#
12Chapter
服务器只分配除 IPv6 地址以外的配置参数。
DHCPv6 客户端在向 DHCPv6 服务器发送请求报文之前会发送 RS 报文,在同一链路范围的路 由器接收到此报文后会回复 RA 报文,在 RA 报文中包括管理地址配置标记(M)和有状态配置标 记(O)。当 M 取值为 1 时,启用 DHCPv6 有状态地址配置,即 DHCPv6 客户端需要从 DHCPv6 服务器获取 IPv6 地址;取值为 0 时,则启用 IPv6 无状态地址自动分配方案。当 O 取值为 1 时,定 义客户端需要通过有状态的 DHCPv6 来获取其他网络配置参数,如 DNS、NIS、SNTP 服务器地址 等;取值为 0 时,则启用 IPv6 无状态地址自动分配方案。
默认情况下思科路由器发送的 RA 信息中 M=0/O=0,客户端向服务器请求地址时使用的是无 状态自动配置的方式,过程如图 12-8 所示。
▲图 12-8 DHCPv6 无状态自动配置
所以在默认情况下,IPv6 客户端如果设置成自动获取地址,不会获得 DNS 信息,如果让客户
所以在默认情况下,IPv6 客户端如果设置成自动获取地址,不会获得 DNS 信息,如果让客户