必须用ping+traceroute组合验证私网连通性:先ping -s 1500 -c 10测mtu一致性与丢包,再traceroute -n确认双向路由对称;禁用icmp redirect,检查rx_errors/tx_dropped,关闭网卡offload,用nc -u测udp端口互通,并确保cluvfy comp peer加-pubnocheck参数精准聚焦私网。

私有网络连通性必须用 ping + traceroute 组合验证,不能只看 ping 通不通
Oracle RAC 私网要求低延迟、无丢包、双向对称路由,ping 成功只是基础,常掩盖路由不对称或中间设备限速问题。实际部署中,很多“安装中途失败”或“CRS 启动卡在 ora.cssd”都源于此。
实操建议:
- 在每个节点执行:
ping -s 1500 -c 10(强制 1500 字节 MTU,模拟真实心跳包大小) - 紧接着跑:
traceroute -n,确认路径是否双向一致(比如 node1→node2 走 eth2,但 node2→node1 却走 eth3,这就是典型隐患) - 禁用所有私网接口的
ICMP redirect(Linux 下检查/proc/sys/net/ipv4/conf/*/send_redirects是否为 0)
ifconfig 和 ip link 必须显示私网网卡状态为 UP 且无 ERROR/DROP 计数增长
RAC 私网流量不走公网协议栈,网卡底层异常不会报错到 CRS 日志里,但会持续丢包。常见现象是 ocrcheck 成功、cluvfy comp peer 却报 “Node connectivity check failed”。
实操建议:
- 逐节点运行:
ip -s link show <priv_if></priv_if>,重点关注rx_errors、tx_dropped、rx_fifo_errors—— 非零值需立即排查物理链路或驱动 - 确认私网网卡未启用 offload 功能:
ethtool -k <priv_if> | grep "offload.*on"</priv_if>,若存在,用ethtool -K <priv_if> tx off rx off sg off tso off gso off</priv_if>关闭(尤其 Mellanox/Intel 多队列网卡易出问题) - 避免使用虚拟网桥、Docker 网络或 NetworkManager 管理私网接口
用 nc 或 telnet 验证 UDP 端口互通比查 TCP 更关键
RAC 私网通信主要走 UDP(如 CSSD 心跳、GSD 控制),而 telnet <ip><port></port></ip> 默认测 TCP,完全无效。很多环境防火墙放行了 TCP 但默默 DROP UDP 包,导致 OCR Voting Disk 注册失败。
实操建议:
- 在 node1 上监听:
nc -u -l -p 12345(注意-u参数) - 在 node2 上发包:
echo "test" | nc -u <node1_priv_ip> 12345</node1_priv_ip> - 观察 node1 终端是否收到输出;失败时抓包确认:
tcpdump -i <priv_if> udp port 12345 -nn</priv_if>,看是否有 inbound 包但无 reply - Oracle 官方推荐私网 UDP 端口范围是 12000–12999,建议提前在所有节点开放该范围(而非只开单个端口)
cluvfy comp peer 报 “failed to connect to scan ip” 不代表私网问题,要先过滤掉 SCAN 和公网干扰
这个错误常误导人去调私网,其实 cluvfy comp peer 默认会尝试通过 SCAN 名解析并连接——而 SCAN 是公网 VIP,跟私网无关。真正验证私网要用明确指定私网参数的方式。
实操建议:
- 强制限定只测私网:
cluvfy comp peer -n all -refnode <node1> -orainv <oinstall_group> -osdba <asmdba_group> -verbose -pubnocheck -prvnocopy</asmdba_group></oinstall_group></node1> - 其中
-pubnocheck跳过公网检测,-prvnocopy跳过远程文件复制测试(避免因 SSH 配置误报) - 若仍失败,直接查看
$GRID_HOME/log/<node>/cvu/cvu_*.log</node>,搜索 “private interface” 和 “UDP test” 相关行,比命令输出更准











