вторник, 12 апреля 2011 г.

Проблема с сетью в Ubuntu

Инсталлирую на ноутбуке Ubuntu 9.10. Сеть не хотела подниматься ни в какую.
Два вечера провел в поисках, поэтому сделаю запись.

Задача:
Имеется wi-fi роутер, к которому коннектится ноутбук. FreeBSD с этого же самого ноутбука прицепилась с первого раза (даже удивительно было).
На Ubuntu вручную прописаны настройки сети (т.е. в /etc/network/interfaces), как, например, в этом материале.
Нужно добиться работоспособности сети.

Симптомы:
ping идет нормально, страницы размером менее 1 кб (примерно) грузятся, больше – нет. Начинается загрузка, появляется заголовок и все. Как будто DNS на пол-дороге отваливается.
apt-get не может определить имена сайтов, куда стучаться надо и ничего не сгружает.

Решение:

объяснение проблемы:
линуксовые системы сначала пытаются получить ipv6 адрес, а железка вместо ответа «я тебя не понял», как должна бы по стандарту (после этого линукс попросит ipv4 адрес и всё благополучно завершится), отдаёт 1.0.0.0. ping работает, потому что он никогда не просит ipv6 адрес (для этого есть ping6). после удачного пинга некоторое время будет работать всё остальное, т.к. ответ dns кешируется.

итак, существует два способа пофиксить баг, пока linux-сообщество не включит фикс в следующие релизы:

проверенно, работает:
1. вручную прописать dns-серверы провайдера в /etc/resolv.conf
2. запретить изменения dns-конфигурации командой: chattr +i /etc/resolv.conf

сам не проверял, но видимо работает:
1. sudo apt-get install bind9
2. в файле /etc/dhcp3/dhclient.conf раскомментировать строчку "prepend domain-name-servers 127.0.0.1;"

всем спасибо.
Я сделал вариант «проверено, работает». Действительно, работает.
Спасибо http://cybotoy11.livejournal.com/.

Windows и FreeBSD нормально работали потому, что у них нет IPv6.


Комментариев нет:

Отправить комментарий