必须加host过滤,否则tcpdump会混入public网段、loopback及本机进程流量导致误判;RAC私网UDP流量仅走cluster_interconnect网段且协议固定为UDP,正确命令需指定两个节点HAIP地址并使用-n参数。
tcpdump抓RAC私网UDP包必须加host过滤
不加 host 过滤的 tcpdump 会混入public网段、loopback甚至本机进程通信流量,导致误判。rac interconnect 流量只走 cluster_interconnect 网段(如 192.168.1.0/24),且协议固定为 udp。
正确命令示例(假设私网网卡是 bond1,子网是 192.168.1.0/24):
tcpdump -i bond1 -n udp and host 192.168.1.11 and host 192.168.1.12 -w rac_ic_udp.pcap
说明:
-
-n避免 DNS 反查拖慢捕获,也防止干扰时间戳 - 必须同时指定两个节点 IP(
host A and host B),否则会漏掉单向流量 - 不要用
port 1521过滤——RAC GC 流量走的是动态端口,不是监听端口 - 若用
portrange,范围太宽(如1024-65535)会引入大量无关 UDP 包,增大分析负担
iptraf-ng比原版iptraf更适配RAC私网监控
原版 iptraf 在 CentOS 6/RHEL 6 上已停止维护,对 bonding 接口支持差,统计不准;iptraf-ng 是其活跃分支,能正确识别 bond1 下的物理口(ens2f0/ens2f1)并聚合显示。
启动方式(以交互式界面查看实时 UDP 流量):
iptraf-ng -i bond1 -t 10 -B
关键参数说明:
-
-i bond1:明确指定绑定接口,避免误选lo或eth0 -
-t 10:每 10 秒刷新一次统计,太短(如 1s)会导致界面抖动、数值跳变失真 -
-B:后台模式运行,适合配合nohup长期采集,日志自动写入/var/log/iptraf/ - 进入界面后按
U键切换到 UDP 协议视图,重点看 “Packets/sec” 和 “Bytes/sec” 列
注意:iptraf-ng 不显示包内容,只做流量基线比对——比如某次 GC 操作前后的 UDP 包速率突增 3 倍,就值得结合 AWR 的 gc cr blocks received 进一步确认。
tcpdump输出里看不到Oracle GC包?检查HAIP和MTU
RAC 11.2.0.2+ 默认启用 HAIP(169.254.x.x),所有 GC 流量实际走的是这个虚拟地址,不是你配置的静态私网 IP。直接抓 192.168.1.x 会一无所获。
验证方法:
- 查当前 HAIP:
oifcfg getif输出中带cluster_interconnect标记的网段,再执行ifconfig | grep 169.254 - 抓包命令要改成:
tcpdump -i bond1 -n udp and host 169.254.23.37 and host 169.254.23.38 - 若仍无包,检查 MTU:私网 MTU 必须一致(通常设为 9000),
ifconfig bond1 | grep mtu查两端,不一致会导致 UDP 分片丢失,tcpdump只能看到不完整的首片 - 某些网卡驱动(如
hinic)在 jumbo frame 下需显式开启 offload:ethtool -K bond1 tso on gso on
别把tcpdump当长期监控工具
tcpdump 是排障利器,但不适合 24×7 监控:它不压缩、不轮转、不聚合,1 小时就能生成数 GB 的 .pcap 文件,磁盘很快打满,且 Oracle 进程无法直接读取分析。
真正可持续的方案是分层组合:
- 日常基线:用
network_traffic.sh脚本或dstat -n每秒采样/proc/net/dev的 RX/TX 字节数,存入 Zabbix 或 Prometheus - 异常定位:当发现
ifconfig bond1中dropped上涨,或 AWR 中gc cr block lost> 0.1%,再临时启tcpdump抓 60 秒 - 深度分析:把
.pcap拷到本地用 Wireshark 过滤udp.port == 32768-65535,看是否有重复 seq、乱序、超大包(>8KB)
最易被忽略的一点:tcpdump 抓到的包,若在接收端 netstat -su | grep UdpInOverflows 同步上涨,说明丢包发生在 socket 层,和网络本身无关——该调 net.core.rmem_max,而不是换光纤。











