3. Comware IPv6基础配置
在H3C Comware平台上,IPv6不是“打开一个全局开关”就能自动跑起来的协议栈。它需要先在接口上使能IPv6转发能力,再为接口分配地址,随后依赖邻居发现(ND)完成链路层地址解析与路由器发现,依赖路径MTU发现(PMTU)避免分片,最后用一组基础命令验证“地址是否生效、邻居是否可达、路径是否通畅”。本节围绕这条最小可用链路展开,所有示例均以Comware V7语法为准,设备型号与地址仅作教学假设。
一、接口IPv6使能与地址配置
Comware接口默认不处理IPv6报文,必须在接口视图下执行 ipv6 enable 才能开启IPv6协议栈。使能后接口会自动生成链路本地地址(LLA),前缀固定为 FE80::/10,接口标识通常由EUI-64或稳定隐私地址生成。若需要三层互通,还需配置全球单播地址(GUA)。Comware支持三种常见方式:手工配置、无状态自动配置(SLAAC)、DHCPv6。工程中最常用的是手工配置与SLAAC。
system-view
interface GigabitEthernet1/0/1
ipv6 enable
ipv6 address 2001:DB8:10:1::1 64
ipv6 address auto link-local
quit
interface GigabitEthernet1/0/2
ipv6 enable
ipv6 address auto
quit
上述配置中,GE1/0/1使用手工GUA,GE1/0/2使用 ipv6 address auto 通过RA获取前缀并生成地址。需要特别注意:ipv6 address auto 依赖对端发送RA,若对端未开启 undo ipv6 nd ra halt,接口只能得到LLA,无法形成GUA。配置完成后可用 display ipv6 interface brief 查看接口状态与地址,用 display ipv6 interface GigabitEthernet1/0/1 查看详细参数,包括MTU、ND参数、加入的组播组等。
二、邻居发现ND的工作过程
IPv6没有ARP,地址解析由ND承担。ND基于ICMPv6,包含五类报文:路由器请求(RS)、路由器通告(RA)、邻居请求(NS)、邻居通告(NA)、重定向(Redirect)。当主机要发送报文到 2001:DB8:10:1::2 时,若邻居缓存中没有对应表项,会向被请求节点组播地址 FF02::1:FF00:2 发送NS,目标主机以NA单播回应,其中携带自己的MAC地址。Comware用 display ipv6 neighbors 查看邻居缓存,用 reset ipv6 neighbors 清除表项触发重新解析。
RA则用于路由器发现与地址自动配置。接口默认抑制RA发送,需执行 undo ipv6 nd ra halt 才能周期性发送。RA中携带前缀、前缀长度、默认网关、MTU、跳数限制等参数。若RA的M位为1,主机应通过DHCPv6获取地址;若O位为1,则通过DHCPv6获取其他配置。Comware可用 display ipv6 nd ra 查看RA相关参数,用 display ipv6 nd ra prefix 查看发布的前缀。
三、路径MTU发现与分片
IPv6路由器不再对报文分片,分片只能由源端完成。因此源端必须知道路径上的最小MTU,这就是PMTU发现。其过程是:源端先按接口MTU发送报文,若中间链路MTU较小,路由器回送ICMPv6“Packet Too Big”报文并携带该链路MTU,源端据此调小后续报文长度。Comware接口默认MTU为1500字节,可用 mtu 命令调整。若中间设备过滤了ICMPv6,PMTU发现会失败,表现为大包不通、小包正常,这是IPv6排错中的典型现象。
interface GigabitEthernet1/0/1
mtu 1400
ipv6 mtu 1400
quit
display ipv6 interface GigabitEthernet1/0/1 | include MTU
需要区分接口MTU与IPv6 MTU:前者影响链路层帧,后者影响IPv6报文长度。Comware中 ipv6 mtu 用于设置接口发送IPv6报文的最大长度,通常与接口MTU保持一致或略小。若隧道场景下需要额外封装开销,应主动调小IPv6 MTU,避免依赖PMTU发现。
四、基础连通性验证与排错路径
配置完成后,按“接口→地址→邻居→路由→端到端”的顺序验证。常用命令包括:display ipv6 interface brief 看接口与地址是否UP;display ipv6 neighbors 看邻居是否解析成功;display ipv6 routing-table 看路由是否存在;ping ipv6 与 tracert ipv6 做端到端测试。Comware的ping支持指定源地址与报文长度,便于验证PMTU:
ping ipv6 2001:DB8:10:1::2
ping ipv6 -s 2001:DB8:10:1::1 2001:DB8:20:1::2
ping ipv6 -s 2001:DB8:10:1::1 -c 5 -l 1400 2001:DB8:20:1::2
tracert ipv6 2001:DB8:20:1::2
若ping不通,先确认接口是否 ipv6 enable,再确认地址是否冲突或前缀错误,然后检查邻居表项是否 REACH。若邻居为空,检查对端是否使能IPv6、是否在同一链路、是否被ACL或ND抑制策略拦截。若小包通、大包不通,重点检查PMTU与ICMPv6过滤。若跨网段不通,检查路由表与RA默认网关是否下发。排错时建议用 terminal monitor 与 terminal debugging 打开日志,配合 debugging ipv6 nd 观察ND交互,但生产环境慎用debug。
五、典型故障与判断依据
实际工程中,IPv6基础配置的故障往往集中在四类。第一类是接口未使能IPv6,表现为 display ipv6 interface brief 中接口无IPv6地址、状态为down。第二类是地址前缀不一致,例如一端配置 /64,另一端误配 /48,此时邻居可能解析成功但路由不可达。第三类是RA被抑制,SLAAC主机拿不到默认网关,只能同链路互通。第四类是ICMPv6被ACL过滤,导致ND或PMTU失败。判断依据可以归纳为:接口UP且地址正确是前提,邻居REACH是二层可达的证据,路由表存在目标前缀是三层可达的证据,ping大包成功是PMTU正常的证据。
ipv6 address auto 与 ipv6 address auto link-local 含义不同:前者通过RA生成GUA,后者仅生成LLA。若接口需要稳定GUA,建议手工配置或配合DHCPv6,避免依赖RA导致地址漂移。