Пряничный телефон только запросы для записи AAAA? -- 2.3-gingerbread поле с участием ipv6 поле с участием dns пол android Связанный проблема

Gingerbread phone only queries for AAAA records?


6
vote

проблема

русский

С вчерашнего дня у меня есть (в дополнение к обычному IPv4) IPv6 в моей локальной сети дома (нативный IPv6 предоставляется моим ISP).

У меня есть Windows XP, Windows 7 и Desktors Linux и планшет Android 3.1 (Asus Transformer 101), что все работает нормально. Они могут получить доступ к веб-сайтам IPv4 и IPv6 в Интернете.

Проблема с моей Samsung Galaxy S2 (Android 2.3.3). Система получает публичный адрес IPv6 и внутренний адрес IPv4.

При наборе URL-адреса IPv6 включен сайт (например, Google.com или XS4All.nl), я посмотрю на сайт просто в порядке. При набрании URL-адреса сайта только IPv4 (например, Android.Stackexchange.com) я получаю ошибку, указав сайт не может быть достигнут. Когда я ввожу IPv4 IP-адрес, я могу добраться до упомянутого сайта с этим телефоном.

Так что я включил отладку на моем DNS (dnsmasq), и я заметил, что

    .
  • Все клиенты, которые работают, сделают запрос на запись AAAA и если Это не удается, они пытаются рекорд.
  • телефон Android 2.3.3 только делает Запрос на запись AAAA и если это не удается, все это не удается.

Все клиенты (включая телефон) Получите те же настройки сети.

Как я это исправить?

Английский оригинал

Since yesterday I have (in addition to the regular IPv4) IPv6 in my LAN at home (native IPv6 is provided by my ISP).

I have Windows XP, Windows 7 and Linux desktops and an Android 3.1 tablet (Asus Transformer 101) that all work fine. They can access IPv4 and IPv6 websites on the internet.

The problem is with my Samsung Galaxy S2 (Android 2.3.3). The system gets a public IPv6 address and an internal IPv4 address.

When typing the URL of an IPv6 enabled site (like google.com or xs4all.nl) I get to see the site just fine. When typing the URL of an IPv4 only site (like android.stackexchange.com) I get an error stating the site cannot be reached. When I enter the IPv4 IP address I CAN reach the mentioned site with this phone.

So I enabled debugging on my DNS (dnsmasq) server and I noticed that

  • all the clients that work do a request for the AAAA record and if that fails they try the A record.
  • the Android 2.3.3 phone ONLY does a request for the AAAA record and if that fails the whole thing fails.

All clients (including the phone) get the same network settings.

How do I fix this?

        

Список ответов

4
 
vote

Вы можете Сообщить об ошибке для разработчиков Android, или Этот один выглядит немного похоже на вопрос, о которой вы говорите.

Убедитесь, что вы точно объясните, что происходит, и как они могут воспроизвести проблему.

 

You could report the bug to the Android developers, or vote on an existing bug, if there already is one open. This one looks a bit like the issue you are talking about.

Make sure you explain exactly what is happening, and how they can reproduce the issue.

 
 
 
 
2
 
vote
vote
Лучший ответ
 

Это потребовало много усилий, но я действительно нашел рабочее решение для моей проблемы.

Я впервые обновил свой телефон к последней доступности Android версии 2.3.6 и что не решил мою проблему. Поэтому я установил приложение, которое показывает мне более подробную информацию о настройке сети моего телефона. И после того, как некоторые копались вокруг, я заметил, что было неправильно:

у моего телефона не было маршрута IPv4 по умолчанию.

Как это случилось? В DHCP я нажимаю маршрут по умолчанию (опция DHCP 3)!

Я понял, что когда я только что имел ссылку IPv6 (которая является частью совершенно нового подключения к Интернету), мой телефон подключался к Интернету как IPv4, так и IPv6. Поэтому я воссоздал оригинальную установку и обнаружил, что в этом сценарии действительно это работает. Так что же отличается?

Мне потребовалось две ночи с Wireshark, чтобы отслеживать виновник.

Реальная причина оказывается, что у меня есть статический маршрут для моего DMZ, который выдвинут мой DHCP-сервер IPv4 (опция 121 DHCP).

Когда я делаю, что телефон Android показывает только маршрут для локальной подсети и дополнительный маршрут, который я толкнул. Маршрут по умолчанию теряется, поэтому трафик IPv4 искажен. Видимо, Android даже больше не пытается сделать запросы IPv4 DNS (что является проблемой, с которой я начал).

Все мои другие системы (Windows {XP, 7}, Linux, Android 3.x) не делают этого, и они держат все нажатые маршруты и маршрут по умолчанию.

Как только я выяснил, какая проблема, которую я мог бы Google более эффективно, и я нашел этот отчет об ошибке: http://code.google.com/p / android/issues/detail ? ID = 17525 Который, в свою очередь, привел к обходной путь, который на самом деле работает !!

Цитата из 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   

Поэтому при рассмотрении пакета DHCP ACK вы увидите маршрут по умолчанию в два раза: при варианте 3 и 121.

Довольно неожиданный обходной путь ... но это работает для меня.


Оказывается, поведение Android правильно:

http://tools.ietf.org/html/rfc3442#page-5 / a>

 <код> "If the DHCP server returns both a Classless Static Routes option and a Router option, the DHCP client MUST ignore the Router option."   
 

It took a lot of effort but I actually found a working solution to my problem.

I first updated my phone to latest available Android version 2.3.6 and that did not solve my problem. So I installed an App that shows me more details about the network setup of my phone. And after some digging around I noticed what was wrong:

My phone didn't have a default IPv4 route.

How did that happen? In the DHCP I push a default route (dhcp option 3)!

I realized that when I just had the IPv6 link (which is part of a whole new internet connection) my phone DID connect to the internet with both IPv4 and IPv6. So I recreated the original setup and found that in that scenario indeed it does work. So what is different?

It took me two nights with wireshark to track the culprit down.

The real reason turns out to be that I have a static route for my DMZ which is pushed by my IPv4 DHCP server (dhcp option 121).

When I do that the Android phone only shows a route for the local subnet and the additional route I pushed. The default route is lost, hence IPv4 traffic is distorted. Apparently Android even no longer tries to do IPv4 DNS requests (which is the problem I started with).

All of my other systems (Windows {XP,7}, Linux, Android 3.x) do not do this and they keep all of the pushed routes and the default route.

Once I figured out what the problem was I could Google more effectively and I found this bug report: http://code.google.com/p/android/issues/detail?id=17525 Which in turn led to a workaround that actually works!!

Quote from 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 

So when looking at the DHCP ACK packet you'll see the default route in there twice: under option 3 and 121.

Quite an unexpected workaround ... but it works for me.


It turns out the Android behaviour is correct:

http://tools.ietf.org/html/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." 
 
 

Связанный проблема

6  Могу ли я переопределить настройки DNS по умолчанию на HTC EVO без доступа к корню?  ( Can i override the default dns settings on an htc evo without root access ) 
Есть ли способ переопределить Sprint DNS-сервер (S), используемый по умолчанию на подключении HTC EVO, работает Froyo без корневого доступа? Причина, по кот...

0  Драйвер Android сбрасывает DNS на моем хосте Win7  ( Android driver resets dns on my win7 host ) 
Несколько дней назад я подключил свой телефон Android (HTC1) на мой автомат Win7, который никогда не имел никаких проблем с сетью. Когда я подключил, я такж...

8  Android WiFi говорит «подключен, нет интернета», но Интернет работает просто хорошо  ( Android wifi says connected no internet but internet works just fine ) 
Это странная вещь, которая начала происходить с сетью WiFi на моей работе. Android-устройства, подключенные к сети, скажем, «подключены, нет Интернета», однак...

7  Я хочу смартфон, который я могу заблокировать в настройках DNS. Это андроид "один"  ( I want a smart phone that i can lock in dns settings is android the one ) 
Это все о том, чтобы быть Интернет-босс . Я хочу иметь возможность заблокировать или пароль защищать настройки DNS для OpenDNS, поэтому у меня может быть без...

6  Пряничный телефон только запросы для записи AAAA?  ( Gingerbread phone only queries for aaaa records ) 
С вчерашнего дня у меня есть (в дополнение к обычному IPv4) IPv6 в моей локальной сети дома (нативный IPv6 предоставляется моим ISP). У меня есть Windows XP...

2  Проблема доступа к Интернету в 4.0 ICS  ( Problem accessing internet in 4 0 ics ) 
Для некоторой странной причины мой планшет Android 4.0 ICS больше не в состоянии получить доступ к Интернету. Во-первых, через WiFi он мог бы подключаться к д...

5  Как установить DNS-сервер на Nexus One?  ( How to set the dns server on nexus one ) 
ISP I использует на моем N1, не позволяет мне открыть Facebook. Используя ПК, я могу использовать Google DNS Server (8,8,8,8,8), чтобы пройти их, но на N1 я н...

24  Как изменить DNS мобильных соединений на Android Kitkat?  ( How to change mobile connectionss dns on android kitkat ) 
Я хочу избежать цензуры от моего локального мобильного ISP (он блокирует imgur, например, по неизвестной причине. скриншот (нажмите изображение для больш...

1  Как заблокировать доступ к доменам с DNS66?  ( How to block access to domains with dns66 ) 
Я использую Открытый исходный код Android DNS66 блокировать рекламу на моем смартфоне. Можно ли блокировать все домены (например, Facebook.com, twitter.com)...

28  Как добраться до местного компьютера по названию машины вместо IP?  ( How to reach local computer via machine name instead of ip ) 
Разработчик здесь прототипирование мобильного приложения, несколько новое на мобильный: . У меня есть простой HTTP-сервис работает (в настоящее время) на мо...