跳转至

防火墙导致 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端口,使用防火墙时记得添加相应的规则。

回到页面顶部