🤔 I doubt that has anything to do with IPv4/IPv6. If the ZeroTier node on the other end has both IPv4 and IPv6, the appropriate mode is chosen automatically depending on the available connectivity options on the source side. Also, just cause it displays the IPv6 address on the ZeroTier UI, doesn't mean that path is chosen by each node. Each peer to peer connection would use the best available mode always, if it can establish a direct connectivity over IPv4 between peer A and peer B, then it uses that. However if the best path between peer B and peer C is over IPv6, then that is used.
Which connection do you have on the source side? One end is JIo 4G. The poor ping was because it wasn't able to establish direct connectivity and hence was making use of a ZeroTier relay node. If you have Jio 4G on both sides of the link, they you might have challenges, however if one side has good non CG-NAT based connectivity options it improves things.
This is a comparison between direct and via ZeroTier, note that this is not on Jio and the other end has a public IP address
Code:
root@varkey:~# ping -c 4 172.22.1.200
PING 172.22.1.200 (172.22.1.200): 56 data bytes
64 bytes from 172.22.1.200: seq=0 ttl=64 time=149.855 ms
64 bytes from 172.22.1.200: seq=1 ttl=64 time=153.211 ms
64 bytes from 172.22.1.200: seq=2 ttl=64 time=152.443 ms
64 bytes from 172.22.1.200: seq=3 ttl=64 time=149.765 ms
--- 172.22.1.200 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 149.765/151.318/153.211 ms
root@varkey:~# ping -c 4 159.69.86.136
PING 159.69.86.136 (159.69.86.136): 56 data bytes
64 bytes from 159.69.86.136: seq=0 ttl=39 time=149.486 ms
64 bytes from 159.69.86.136: seq=1 ttl=39 time=149.246 ms
64 bytes from 159.69.86.136: seq=2 ttl=39 time=149.089 ms
64 bytes from 159.69.86.136: seq=3 ttl=39 time=149.315 ms
--- 159.69.86.136 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 149.089/149.284/149.486 ms
root@varkey:~#