Reputation: 1628
I have a problem with an app that is submitted to Apple, and Apple is claiming that it is due to the app failing when run on an ipv6-only network.
From the javascript inside the app I am using XmlHttpRequest to fetch data from a third party server, and I think the problem might be that the third party server is not properly handling requests coming from an ipv6 network.
What Apple is telling me is to make sure that I handle it correctly on my side, and that the server is supporting ipv6 requests. The problem is that I am not in control of the third party server that we use to fetch data. I tried running an online ipv6 compatibility test towards the server, and that showed me something that might be the cause: The first DNS server is returning an AAAA record, while the other one is not. As I understand this may cause the client to think that the server supports ipv6 even though it is actually not. Does this seem like a plausible reason why requests are failing?
Next question is if there is something I can do on the client side to force the communication to be carried through on ipv4 even if the client network is running on ipv6. Here is my code, it is very simple:
var xhr = new XMLHttpRequest();
xhr.responseType = "document";
xhr.addEventListener("load", function() {
callback(xhr.responseXML);
}, false);
xhr.open("GET", url, true);
xhr.send();
Hope someone can help me shed some light on this whole ipv6 headache, as networking is not my field of expertise. I just need to get these requests working, so the app can be accepted by Apple.
Upvotes: 1
Views: 1529
Reputation: 9978
If the server isn't reachable over IPv6 there MUST NOT (using RFC 2119 wording) be an AAAA record in DNS. If there is then requests from networks with IPv6 will fail. Because of the way that the Apple NAT64 emulation works this might not be notable when using their test setup, but it will break on real NAT64 networks.
Or worded the other way around: if AAAA records exist then they must contain a valid address and connections to that address must work.
Upvotes: 2