防火墙导致 SNMP 故障示例
2013-05-16 by dongnan
问题描述
某服务器配置snmpd
,但是 zabbix
接收不到数据,使用 snmpwalk
测试返回 No Response
:
snmpwalk -v2c -c balaba#$%snmp IP
Timeout: No Response from IP
正常使用 snmpwalk
命令会得到一大坨数据:
snmpwalk -v2c -c balaba#$%snmp IP
SNMPv2-MIB::sysDescr.0 = STRING:xxx
#...省略
排错过程
使用tcpdump
抓包发现,没有返回的包:
tcpdump -vvn port 161
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
09:14:25.675651 IP (tos 0x0, ttl 47, id 0, offset 0, flags [DF], proto: UDP (17), length: 73) 1.1.1.1.6542 > 2.2.2.2.snmp: [udp sum ok] { SNMPv2c C=caonimasnmp { GetNextRequest(25) R=115589201 .1.3.6.1.2.1 } }
09:14:26.676387 IP (tos 0x0, ttl 47, id 0, offset 0, flags [DF], proto: UDP (17), length: 73) 1.1.1.1.6542 > 2.2.2.2.snmp: [udp sum ok] { SNMPv2c C=caonimasnmp { GetNextRequest(25) R=115589201 .1.3.6.1.2.1 } }
09:14:27.676649 IP (tos 0x0, ttl 47, id 0, offset 0, flags [DF], proto: UDP (17), length: 73) 1.1.1.1.6542 > 2.2.2.2.snmp: [udp sum ok] { SNMPv2c C=caonimasnmp { GetNextRequest(25) R=115589201 .1.3.6.1.2.1 } }
检查 iptables
规则,发现默认策略DROP
问题找到了:
iptables -L -nv
解决方法
添加一条 iptables
规则:
iptables -A INPUT -s 1.1.1.1 -p udp -d 2.2.2.2 --dport 161 -j ACCEPT
小结
SNMP协议使用UDP
协议161
端口,使用防火墙时记得添加相应的规则。