Zabbix reports a host (in our case, router) down, when the response comes from the link-local address, instead of the global address.
From logs with debug info:
12457:20150911:064636.737 /usr/bin/fping -C3 -t2000 2>&1 </tmp/zabbix_server_12457.pinger;/usr/bin/fping6 -C3 -t2000 2>&1 </tmp/zabbix_server_12457.pinger;
12457:20150911:064636.739 read line [2001:db8:1::1 address not found]
12457:20150911:064636.741 read line [ [<- fe80::226:aff:fe24:f780]2001:db8:1::1 : , 76 bytes, 0.59 ms (0.59 avg, 0% loss)]
12459:20150911:064636.752 read line [2001:db8:1:2:7aac:c0ff:fedc:c200 : , 76 bytes, 0.38 ms (0.44 avg, 0% loss)]
Checking the code brought me to this:
It seems zabbix is ignoring the result because the address is not the same.
Note that we are already using IPv6 extensively without problem, just in this case it's a problem.
Also tested setting the interface for icmpping to the link-local address, where the host is shown as online now.