Print
知

GRE over IPv6 隧道配置 Keepalive 后协议状态无法 UP 故障排查

W1
2026-04-28 发表

组网及说明

本端设备(Device A) <====== IPv6 承载网 ======> 对端设备(Device B)

ICG2000,R9160P36

问题描述

隧道类型:GRE over IPv6

故障现象:开启 keepalive 后,display interface tunnel显示协议状态持续为DOWN。

过程分析

故障的根本原因在于设备底层转发引擎的“入接口协议检查”机制导致Keepalive报文被丢弃。具体逻辑如下:

1、报文重入转发:对端回应的Keepalive报文解封装后,会以本端的Tunnel接口作为“入接口”重新进入底层转发流程。

2、入接口协议检查机制:设备的底层转发原则是:如果入接口对应的网络层协议未UP,报文将被直接丢弃。

3、丢包根因: 本案例中,Tunnel 接口下仅指定了隧道的源/目地址,但没有配置自身的IPv6地址(或开启 IPv6 转发能力),导致该接口的IPv6协议状态实际处于DOWN状态。

4、最终结果: 重入转发的Keepalive响应报文一进入Tunnel接口,就因为“接口IPv6协议未UP”被底层直接丢弃。本端持续收不到响应,最终导致隧道协议状态 DOWN。

解决方法

方法一:在隧道口下配置具体的IPv6地址(推荐)
为主机Tunnel接口分配一个合法的IPv6地址,从而激活该接口的IPv6协议栈。

<Sysname>system-view
[Sysname]interface Tunnel 1 mode gre ipv6
[Sysname-Tunnel1] ipv6 address 2001:DB8:1::1 64 //配置一个具体的IPv6地址
[Sysname-Tunnel1] keepalive 10 3

方法二:在隧道口下直接开启 IPv6 转发功能
如果不希望浪费IPv6地址资源,可以直接在Tunnel接口下开启无状态的IPv6转发功能(使能接口的IPv6能力)。

<Sysname> system-view
[Sysname] interface Tunnel 1 mode gre ipv6
[Sysname-Tunnel1] ipv6 forwarding //激活接口的IPv6报文处理及转发能力
[Sysname-Tunnel1] keepalive 10 3