6 votes

Le téléphone Gingerbread ne recherche que les enregistrements AAAA ?

Depuis hier, j'ai (en plus de l'IPv4 normal) l'IPv6 dans mon réseau local à la maison (l'IPv6 natif est fourni par mon ISP).

J'ai des ordinateurs de bureau Windows XP, Windows 7 et Linux et une tablette Android 3.1 (Asus Transformer 101) qui fonctionnent tous bien. Ils peuvent accéder aux sites web IPv4 et IPv6 sur l'internet.

Le problème se pose avec mon Samsung Galaxy S2 (Android 2.3.3). Le système obtient une adresse IPv6 publique et une adresse IPv4 interne.

Lorsque je tape l'URL d'un site compatible IPv6 (comme google.com ou xs4all.nl), je vois le site sans problème. Lorsque je saisis l'URL d'un site uniquement IPv4 (comme Android.stackexchange.com), j'obtiens une erreur indiquant que le site ne peut être atteint. Lorsque j'entre l'adresse IPv4, je PEUX atteindre le site mentionné avec ce téléphone.

J'ai donc activé le débogage sur mon serveur DNS (dnsmasq) et j'ai remarqué que

  • tous les clients qui travaillent font une demande pour l'enregistrement AAAA et si et si ça échoue, ils essaient l'enregistrement A.
  • le téléphone Android 2.3.3 fait SEULEMENT une demande l'enregistrement AAAA et si cela échoue, tout échoue.

Tous les clients (y compris le téléphone) obtiennent les mêmes paramètres réseau.

Comment puis-je réparer cela ?

4voto

mercutio Points 5828

Vous pourriez signaler le bogue aux développeurs d'Android, ou vote sur un bogue existant s'il y en a déjà un d'ouvert. Celui-là ressemble un peu au problème dont vous parlez.

Assurez-vous d'expliquer exactement ce qui se passe, et comment ils peuvent reproduire le problème.

2voto

pdavis Points 2497

Cela m'a demandé beaucoup d'efforts, mais j'ai trouvé une solution efficace à mon problème.

J'ai d'abord mis à jour mon téléphone avec la dernière version Android 2.3.6 disponible et cela n'a pas résolu mon problème. J'ai donc installé une application qui me donne plus de détails sur la configuration réseau de mon téléphone. Et après quelques recherches, j'ai remarqué ce qui n'allait pas :

Mon téléphone n'avait pas de route IPv4 par défaut.

Comment cela est-il arrivé ? Dans le DHCP je pousse une route par défaut (dhcp option 3) !

J'ai réalisé que lorsque je n'avais que le lien IPv6 (qui fait partie d'une toute nouvelle connexion internet), mon téléphone se connectait à l'internet à la fois avec IPv4 et IPv6. J'ai donc recréé la configuration originale et j'ai constaté que dans ce scénario, cela fonctionne effectivement. Quelle est donc la différence ?

Il m'a fallu deux nuits avec Wireshark pour trouver le coupable.

La vraie raison s'avère être que j'ai une route statique pour ma DMZ qui est poussée par mon serveur DHCP IPv4 (dhcp option 121).

Lorsque je fais cela, le téléphone Android affiche uniquement une route pour le sous-réseau local et la route supplémentaire que j'ai poussée. La route par défaut est perdue, donc le trafic IPv4 est faussé. Apparemment, Android n'essaie même plus de faire des requêtes DNS IPv4 (ce qui est le problème avec lequel j'ai commencé).

Tous mes autres systèmes (Windows {XP,7}, Linux, Android 3.x) ne font pas cela et conservent toutes les routes poussées et la route par défaut.

Une fois que j'ai compris quel était le problème, j'ai pu chercher plus efficacement sur Google et j'ai trouvé ce rapport de bogue : http://code.google.com/p/Android/issues/detail?id=17525 Ce qui a conduit à une solution de contournement qui fonctionne réellement !

Citation de http://forum.xda-developers.com/archive/index.php/t-635489.html

So as a "band aid fix it" i added the default gw to the static routes list... 
So the line in dnsmasq looks like:

dhcp-option=121,<network>,<route>,0/0,192.168.1.254

Ainsi, en regardant le paquet DHCP ACK, vous verrez la route par défaut deux fois : sous l'option 3 et 121.

C'est une solution de contournement inattendue... mais elle fonctionne pour moi.


Il s'avère que le comportement d'Android est correct :

https://www.rfc-editor.org/rfc/rfc3442#page-5

"If the DHCP server returns both a Classless Static Routes option and
a Router option, the DHCP client MUST ignore the Router option."

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X