Currently a modcluster advertise UDP datagram is sent with a ttl (time to live) of 1, the default setting.
Apache httpd mod_cluster uses a hard coded value of 10 (defined as MA_ADVERTISE_HOPS in mod_cluster-1.3.7.Final/native/advertise/mod_advertise.h).
The ttl is reduced by every router on the route to its destination. If the ttl reaches zero before the datagram arrives at its destination, the datagram is discarded.
This means that, with a ttl of 1, the advertise UDP datagram never reaches any modcluster listeners that are located behind a router.
Two possible ways to resolve the issue:
- add option to allow the modcluster advertise ttl to be set
- use a hard coded advertise ttl value of 10 (match Apache httpd mod_cluster behaviour)
I have the changes ready to be submitted, let me know which option and default ttl value you prefer.