Как позволить браузеру отдавать предпочтение IPv6 по сравнению с IPv4?

Я установил Miredo и, кажется, у меня запущен и работает IPv6. Я могу ping6 хостов и загружать веб-страницы с помощью wget или моего веб-браузера, когда я указываю адреса IPv6, однако всякий раз, когда я указываю имя хоста, которое предлагается как для IPv4, так и для IPv6, браузер выбирает адрес IPv4 для соединения.

Как я могу изменить это и позволить браузеру использовать IPv6 вместо IPv4, если он доступен?

Поискивая вокруг, я обнаружил подсказку, что браузеры предпочтут IPv4, а не IPv6 для туннелей 6to4 / teredo, но пока у меня нет не нашел объяснения, почему или как это изменить.

16
задан 24 October 2010 в 18:11

6 ответов

Это не браузеры, предпочитающие ни одну из опций, это - операционная система. Стандарт определяет приоритеты примерно как это:

  1. ipv6
  2. ipv4
  3. 6to4-трафик

Можно изменить это путем редактирования блоков маркировки/приоритета в /etc/gai.conf (gai обозначает getaddrinfo, стандартный системный вызов разрешения имен хостов).

Подробное объяснение на gai.conf может быть найден в странице справочника

Это, между прочим, также объясняет опыт Jonathon, что туннель SiXXS был предпочтен по 6to4.

10
ответ дан 24 October 2010 в 18:11

Для Firefox & amp; в других браузерах на основе Mozilla / Gecko значение network.dns.disableIPv6 в about:config должно быть false, если у вас есть IPv6 (по умолчанию в Ubuntu он установлен на true, потому что в противном случае у многих людей возникают проблемы с ошибочными прокси DNS в домашних маршрутизаторах ).

0
ответ дан 24 October 2010 в 18:11

Хорошо, я изучал это, и это странно.

1) Используйте локальный прокси.
Если я установлю Firefox на прокси через Squid, работающий на моей машине, Firefox (или, точнее, Squid) подключится через туннель Miredo. Если у меня установлено Miredo, но Firefox установлен на «no proxy», Firefox сначала использует IPV4.

2) Установите aiccu
Если я установлю aiccu и настрою его с туннелем (например, SiXXS), то независимо от того, что мои настройки прокси-сервера IPV6 сначала используются Firefox.

Может случиться так, что поскольку miredo существует для подключения к сайтам IPV6, он используется только тогда, когда IPV4 недоступен, и в этом случае попробуйте aiccu.

0
ответ дан 24 October 2010 в 18:11

Как указал freddyb, это зависит от конфигурации стандартного системного вызова для разрешения имен хостов, getaddrinfo .

Чтобы решить вашу проблему, замените содержимое вашего /etc/gai.conf следующими строками:

label ::1/128       0
label ::/0          1
label 2002::/16    2
label ::/96         3
label ::ffff:0:0/96 4
label fec0::/10     5
label fc00::/7      6
#label 2001:0::/32   7

обновлено : спасибо freddyb за указание на то, что мой предыдущий ответ был неверным : Нам нужно комментировать последнюю строку, а не 3-ю. Теперь это работает для меня!

0
ответ дан 24 October 2010 в 18:11

В последнее время Chrome, Firefox, а также производные браузеры фактически избегают IPv6, если сайт реагирует быстрее, чем IPv4. Невозможно изменить это поведение с помощью параметра конфигурации.

Сама функция, вероятно, приемлема для обычного пользователя, но меня почти бесит, что вы не можете ее отключить. В настоящее время возможности подключения по протоколу IPv6 довольно хороши, и иногда IPv6 имеет несколько преимуществ по сравнению с подключением через IPv4, даже если задержка - из-за туннелирования - выше. Я просматривал IPv6 в течение многих лет, и, несмотря на то, что маршрутизация и производительность IPv6 значительно улучшились, эта чертова функция взлома браузера отбрасывает меня назад на десятилетие.

0
ответ дан 24 October 2010 в 18:11

Ответ прост: измените метки.

label 2002::/16    1
label 2001:0::/32   1

Это делает их эквивалентными «ванильному» ipv6.

Если вы оставите их закомментированными, они подберут значения по умолчанию.

0
ответ дан 24 October 2010 в 18:11

Другие вопросы по тегам:

Похожие вопросы: