Удалось ли кому-нибудь заставить работать Opera на Ubuntu 9.04?
Он пытается пересолить доменные имена в IPv6-режиме, и каким-то образом получает нулевой ответ от шлюза (IP-адрес со множеством нулей) и не может подключиться.
UPD: анализ Wireshark:
8 5.647832 192.168.1.2 192.168.1.1 DNS Стандартный запрос A google.com 9 5.649655 192.168.1.1 192.168.1.2 DNS Стандартный ответ на запрос A 1.0.0.0
Кстати, ВСЕ остальные сетевые подключения работают нормально, включая Firefox.
Одним из найденных мной решений было отключение IPv6 в ядре, но в 9.04 это невозможно из-за ОШИБКИ.
Могу ли я заставить Opera работать без пересборки ядра с патчем?
ОБНОВЛЕНИЕ:если я ping
какой-то хост (так что его IP теперь кэширован) - Opera его находит и нормально открывает страницу. Может быть, есть способ "предварительно пинговать" все, к чему Opera пытается подключиться? :))
решение1
Если ваш маршрутизатор NAT также действует как DNS-сервер, во многих случаях могут возникать проблемы с разрешением IPv6 (AAAA).
Могу сказать, что я запускаю Opera (v9.63 и 10 beta) на машине Debian, указывая на резолвер BIND и собственный IPv6, и все работает отлично.
решение2
"получает нулевой ответ от шлюза" от вашего DNS-сервера, вы имеете в виду? Если ваш DNS-сервер отвечает нулевым IPv6-адресом на запрос AAAA, то, вероятно, проблема на вашем DNS-сервере!
решение3
РЕШЕНО!
$ опера -debugdns ... DNS: Хост «google.com» преобразован в 1.0.0.0
Это типичный неправильно сформированный ответ от сломанной реализации DNS, обнаруженной на некоторых маршрутизаторах. Opera сначала ищет ipv6 и получает неправильный ответ.
Решение — указать resolv.conf на DNS-серверы OpenDNS — 208.67.222.222 и 208.67.220.220. Теперь мой resolv.conf выглядит так:
сервер имен 208.67.222.222 сервер имен 208.67.220.220 сервер имен 192.168.1.1
Работает как часы! :)
решение4
Я много читал об этом, и, похоже, это баг в дистрибутиве 9.04. Вам придется перекомпилировать ядро без ipv6, чтобы это сделать.