When Zabbix goes to perform an SNMP poll, it is binding the receive port to this virtual IP, as it should. However, when it sends the request to the switch, the request is being sent using the hosts primary IP, instead of the virtual IP specified in SourceIP. Thus, the request gets to the switch, and the switch responds, but zabbix never hears the response.
tcpdump output:
16:51:19.090918 IP 172.29.252.2.38208 > 192.168.255.240.snmp: C=gxtro GetRequest(28) .1.3.6.1.2.1.1.2.0
16:51:19.092339 IP 192.168.255.240.snmp > 172.29.252.2.38208: C=gxtro GetResponse(37) .1.3.6.1.2.1.1.2.0=.1.3.6.1.4.1.9.1.896
16:51:19.092357 IP 172.29.252.2 > 192.168.255.240: ICMP 172.29.252.2 udp port 38208 unreachable, length 87
strace of zabbix_server process doing poll:
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 6
getsockopt(6, SOL_SOCKET, SO_SNDBUF, [25769930752], [4]) = 0
getsockopt(6, SOL_SOCKET, SO_RCVBUF, [25769930752], [4]) = 0
bind(6, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("172.29.252.1")}, 16) = 0
sendmsg(6, {msg_name(16)={sa_family=AF_INET, sin_port=htons(161), sin_addr=inet_addr("192.168.255.240")},....) = 42
select(7, [6], NULL, NULL, {0, 999996}) = 0 (Timeout)
Is anyone else successfully using SNMP with a configuration using SourceIP?
Zabbix version 1.6
net-snmp-config --version
5.3.1
tcpdump output:
16:51:19.090918 IP 172.29.252.2.38208 > 192.168.255.240.snmp: C=gxtro GetRequest(28) .1.3.6.1.2.1.1.2.0
16:51:19.092339 IP 192.168.255.240.snmp > 172.29.252.2.38208: C=gxtro GetResponse(37) .1.3.6.1.2.1.1.2.0=.1.3.6.1.4.1.9.1.896
16:51:19.092357 IP 172.29.252.2 > 192.168.255.240: ICMP 172.29.252.2 udp port 38208 unreachable, length 87
strace of zabbix_server process doing poll:
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 6
getsockopt(6, SOL_SOCKET, SO_SNDBUF, [25769930752], [4]) = 0
getsockopt(6, SOL_SOCKET, SO_RCVBUF, [25769930752], [4]) = 0
bind(6, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("172.29.252.1")}, 16) = 0
sendmsg(6, {msg_name(16)={sa_family=AF_INET, sin_port=htons(161), sin_addr=inet_addr("192.168.255.240")},....) = 42
select(7, [6], NULL, NULL, {0, 999996}) = 0 (Timeout)
Is anyone else successfully using SNMP with a configuration using SourceIP?
Zabbix version 1.6
net-snmp-config --version
5.3.1
Comment