PA-3220:SFP+ 接口一直连不上,sys.s1.p13.state 显示 board_port_sfp_invalid_0
正在把一台 PA-3220 到新核心交换机的 10G 上联口接起来。模块插进了防火墙上一个空闲的插槽,交换机侧已经配置好在等待,接口就是死活起不来。端口指示灯在闪,这让我以为模块至少是通电的。
- Palo Alto PA-3220,模块插在端口 13
- 通用 10G SFP+ 光模块,双工 LC
- 同款光模块在那条光纤的另一对纤芯上,两台交换机之间能以 10G 正常连通
- HA 一对设备,这是当前的 active 单元
state tree 对这个端口的报告:
show system state filter-pretty sys.s1.p13.state
board_port_sfp_invalid_0
sys.s1.p13.status 报告链路是 down。日志里什么都没有,接口就是死的。
已经尝试过:
- 重新插拔模块,清洁了接头
- 换了第二个同型号的光模块
- 用交换机对交换机那对纤芯验证过光纤本身,能以 10G 正常连通
- 检查了接口配置,就是一个位于正确 zone 里的普通三层接口
board_port_sfp_invalid_0 在这里到底是什么意思,是模块的问题还是防火墙的问题?
Comments 3
这个状态是防火墙在拒绝那个插槽里的模块,而原因绝大多数时候是机械层面的,不是电气层面的。这些插槽从正面看起来完全一样,光模块也能严丝合缝地插进去,但一个从未按 10G 布线的槽位,不管插的光模块多健康,都不会让 10G 起来。
所以先从端口分布图入手,而不是从模块入手。
show system info能确定具体型号,然后查这个型号对应的硬件参考手册,看看哪些插槽才是真正的 SFP+。在 PA-3220 上,这一块是端口 17-20,端口 13 从来就不是候选项。先把光模块挪到那边去。插到真正的 SFP+ 插槽之后,按下面的顺序查 state tree(下面用端口 17 举例,替换成你实际挪过去的端口):
.phy说明介质有没有被读取到:一个插在正常插槽里的 10G 光模块应该返回 SFP-Plus-Fiber。.status是链路状态。.state就是你现在看到的这个无效模块状态出现的地方,一旦模块换到正确的区块,这个状态应该会消失。有一点在 HA 对里要注意:检查的是 active 单元上的端口。在 passive 单元上,除非把 passive link state 配置为 up,否则接口默认就是 down 的。
就是这个问题。把光模块挪到端口 17 之后,
.phy现在返回 SFP-Plus-Fiber,链路立刻以 10G 起来了,交换机那边完全没动过。我之前以为这些插槽是可以互换的,因为它们从正面看起来完全一样。硬件参考手册确实明确写了这个型号是 17-20,我只是之前从来没打开看过,白白浪费了一个晚上折腾模块和跳线。
结果不错,这个普遍教训也值得记住:一个长得像 SFP+ 的插槽,并不代表它背后真的是那么回事。
别的地方也有同一类坑。一块 QLogic QLE2562 在
lspci里显示为一块 8Gb 光纤通道 HBA,它的插槽能插进那些看起来跟以太网光模块一模一样的模块,但ifconfig里永远不会出现对应的接口,因为这块卡只会说 FC,别的什么都不会。在跑 OPX 的 Dell S4048-ON 和 S6010-ON 上,一个带 407-BBOU SFP+ 的 407-BBRO QSA 转接头会停在 Operational State: DOWN,Operating Speed 显示 0,而配置的速率却写着 10000,原因是平台配置从来就没有把那个 QSFP 端口设成 10G 模式。如果插槽是对的,端口还是起不来,那就该看模块类型本身了。一台跑 Comware 的 HPE 5940(JH390A),插上正牌的 813874-B21 10GBASE-T SFP+ 模块之后端口一直是 DOWN,并记录 IF_LOCAL_FAULT,而同样的端口插 1G 铜口 SFP 却能正常工作。那边的临时解决办法是在接口上用
port up-mode,副作用是端口之后会被永久报告为 up,真正的断线也就不再能被检测到了。