2

I'm experiencing a problem that seems to be identical to the one described here: https://forums.openvpn.net/topic17851.html - namely I have a home OpenVPN server set-up that I can successfully connect to with my Linux machines and with Android Kitkat, but when I tried to connect under Android Lollipop (trying various Android OpenVPN apps), it doesn't work - I remain connected to my local network.

Most of the OpenVPN apps I try, including OpenVPN Connect (the official app) just report successful connection (but then don't show any up/down activity beyond an initial blip) - even though they aren't really connecting me properly to the VPN. However, 'OpenVPN for Android' app additionally reports:

 Route rejected by Android224.0.0.0/3 Bad LinkAddress params /224.0.0.0/3

Which is mentioned in the forum post linked above. I tried the solution suggested in the OpenVPN post mentioned above --- though, in fact my client-side .conf didn't have any "topology" entry - so I tried adding "topology net30" --- but it didn't help.

All of my other devices (Android Kitkat, Linux machines) can connect to the VPN without any difficulties or complaints. Is this some sort of Lollipop-specific glitch and is there any way round it?

emacsomancer
  • 597
  • 1
  • 5
  • 14

1 Answers1

1

since lollipop, multicast address can't add to route, 224.0.0.0 is a multicast base address, refer to android source code:

https://github.com/android/platform_frameworks_base/blob/master/core/java/android/net/LinkAddress.java#L114-L127

 /**
 * Utility function for the constructors.
 */
private void init(InetAddress address, int prefixLength, int flags, int scope) {
    if (address == null ||
            **address.isMulticastAddress() ||**
            prefixLength < 0 ||
            ((address instanceof Inet4Address) && prefixLength > 32) ||
            (prefixLength > 128)) {
        throw new IllegalArgumentException("Bad LinkAddress params " + address +
                "/" + prefixLength);
    }
    this.address = address;
    this.prefixLength = prefixLength;
    this.flags = flags;
    this.scope = scope;
}
xjdrew
  • 373
  • 4
  • 13