When running on *nix platforms, Firefly uses a built-in mDNS responder or avahi not bonjour.
As you can access Firefly with the java client, Firefly is running & you clearly have a service discovery problem.
I’m not a ubuntu expert so i can’t help you much more than that
If the router doesn’t handle multicast properly then it isn’t alone. The DIR-655 doesn’t either.