LINUX.ORG.RU

DNS работает в консоли, а в браузерах - нет


0

0

Недавно заметил какие-то проблемы с DNS.

OpenSUSE 11.2 с разными обновлениями типа KDE 4.4. - берет интернет по wifi с локальный роутера, который получает все по DHCP, отдает также через DHCP по wifi/проводу.

cat /etc/resolv.conf:

nameserver 195.98.32.193 nameserver 192.168.1.1

пинг из консоли до ya.ru идет, в браузере (конк/фаерфокс) сайт не открывается, по ip открывается.

добавляю в начало гугловский DNS:

nameserver 8.8.8.8 nameserver 195.98.32.193 nameserver 192.168.1.1

все нормально и в консоли и в браузере.

я не понимаю.

★★★★★

Ну я бы сравнил выхлоп getent hosts ya.ru на нижегородских днсах и на гуловых. Или можно выхлоп dig-а поизучать.

Если есть разница, значит что-то не так в датском королевстве.

Bebop ★★ ()

Еще информация - 1й раз увидел проблему полторы недели назад, когда был с ноутом в другом городе и после подключения к местному вайфаю ip-адрес в сети получил, а dns не работал (шел ли пинг уже не вспомню) - спас как раз гугловский dns.

После этого еще переехал на другую квартиру и пришлось сменить провайдера интернета.

Две недели назад на старой квартире втыкал провод в компьютер с сусей - все работало, сейчас втыкаю тот же провод из того же роутера в тот же компьютер - не работает в том виде в котором описал выше.

Начал экспериментировать с ноутбуком и переустановил dns командой «sudo /sbin/netconfig update -f» - инет тоже отвалился с теми же симптомами (до этого в resolv.conf был гугловский 8.8.8.8 оставшийся с поездки - поэтому при переезде сразу после смены сети не заметил).


Другими словами, очень похоже, что странные глюки наблюдаются на 2х провайдерах (новый и из другого города) и не наблюдаются на старом провайдере и гугле.

Рядом телефон Android - работает одинаково без проблем во всех сетях.

bender ★★★★★ ()
Ответ на: комментарий от Bebop

С гугловским DNS (8.8.8.8):

getent hosts ya.ru

77.88.21.8 ya.ru
93.158.134.8 ya.ru
213.180.204.8 ya.ru

dig


; <<>> DiG 9.6.1-P1 <<>>
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21537
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;. IN NS

;; ANSWER SECTION:
. 79829 IN NS m.root-servers.net.
. 79829 IN NS e.root-servers.net.
. 79829 IN NS k.root-servers.net.
. 79829 IN NS j.root-servers.net.
. 79829 IN NS i.root-servers.net.
. 79829 IN NS b.root-servers.net.
. 79829 IN NS c.root-servers.net.
. 79829 IN NS d.root-servers.net.
. 79829 IN NS f.root-servers.net.
. 79829 IN NS g.root-servers.net.
. 79829 IN NS h.root-servers.net.
. 79829 IN NS a.root-servers.net.
. 79829 IN NS l.root-servers.net.

;; Query time: 88 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Mar 10 00:07:46 2010
;; MSG SIZE rcvd: 228



С провайдерским:

sudo /sbin/netconfig update -f


cat /etc/resolv.conf

#...
nameserver 195.98.32.193
nameserver 192.168.1.1

getent hosts ya.ru

77.88.21.8 ya.ru
93.158.134.8 ya.ru
213.180.204.8 ya.ru

dig


; <<>> DiG 9.6.1-P1 <<>>
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 42833
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;. IN NS

;; Query time: 10 msec
;; SERVER: 195.98.32.193#53(195.98.32.193)
;; WHEN: Wed Mar 10 00:08:34 2010
;; MSG SIZE rcvd: 17

bender ★★★★★ ()
Ответ на: комментарий от bender

Поправьте меня - во-втором случае DNS-то не ответил дигу!?

Может провайдерские днсы перегружены или еще чего?

ЗЫ Юз гугл (в данном случае днс) - он все равно всех рано или позно поработит ;)

Bebop ★★ ()
Ответ на: комментарий от Bebop

да - для дига результат отличается, но я все равно ничего не понимаю:

1. почему идет ping до сайтов, названных по именам, но при этом браузеры адреса не открывают - у нас что теперь для графики и для консоли разные настройки DNS?

2. почему рядом телефон с android работает через тот же dns-сервер в этот самый момент без проблем? - видимо теория с перегрузкой dns-сервера не подходит (и прохождение пинга через консоль это тоже наверное подтверждает).

гугл меня в экстренной ситуации конечно уже спас, но оставаться на нем на все время и тащить всех тех, кому ставлю линукс, как-то не очень хочется (мне и гмейла хватает), тем более из-за какого-то dns-сервера.

bender ★★★★★ ()
Ответ на: комментарий от bender

Пара дополнений:

1. Чтобы не перебивать resolv.conf, а просто 1 раз спросить чужой днс удобнее писать dig @<другой_dns> ваша_запрос

2. Странно выглядит ответ что мол status: REFUSED и что про рекурсию. Он вроде как Ваш IP своим не считает?

Думаю, что местное коллективное бессознательное таки найдет решение, но наверное завтра ;)

Bebop ★★ ()
Ответ на: комментарий от Bebop

в общем, решилось - как и ожидалось - сам дурак - не прописал DNS от нового провайдера в настройках вай-фай роутера (прописывал только в adsl-модеме - видимо думал, что они там сами между собой как-нибудь снюхаются) - вот он меня видимо и посылал куда подальше.

Прописал новый dns в роутер, переподключился (так что он обновился в resolv.conf) - все работает. В другом городе видимо проблема была в чем-то другом.


Хотя в общем все равно некоторый осадок остается - почему же все-таки ping в консоли шел и при неправильном DNS, а браузеры с ними никак не работали. Плюс андроид все-таки тоже работал с неправильными настройками. Есть подозрение, что дело во 2й dns-записи в resolv.conf (192.168.1.1 - адрес роутера - видимо он там что-то тоже куда-то сам роутить умеет) - после того, как ее комментировал руками пинг начинал ходить как-то нестабильно (только на пару последних пингуемых сайтов, которые похоже каким-то образом висят у него в кеше или что-то типа того). Но все равно, получается, что консольный пинг уже не достаточный индикатор того, что все работает без проблем.

bender ★★★★★ ()
Ответ на: комментарий от bender

в общем, думаю все стало понятно.

попробовал в resolv.conf добавить наверх несуществующий ip - пинг сначала тупит, потом идет бодро. Браузеры тоже долго сначала тупят, но ошибку выдают не сразу или даже загружают страницу.

когда вернул старый dns из топика выше нормального, ping идет, браузеры отваливаются сразу.

Похоже, что если ip dns-сервера не распознается, то браузер пытается ждать весь таймаут доступности и при фейле все-таки переходит к следующему по списку. А если 1й dns отдает ошибку, то браузер не парится и тоже сразу возвращает ошибку без попытки попробовать остальные dns в списке.

А андроид видимо ведет себя умнее - так же как пинг - при ошибке пробует все, что есть ниже.

bender ★★★★★ ()
Ответ на: комментарий от bender

>Хотя в общем все равно некоторый осадок остается - почему же все-таки ping в консоли шел и при неправильном DNS, а браузеры с ними никак не работали.

А пинг не спрашивает DNS сервер. Реально пинг берет адрес из, к примеру, кэша nscd.

С другой стороны dig (как и фокс, скорее всего) выполняет полноценный dns запрос.

Отсюда вопрос как запись появилась в кеше nscd?

Но тут, мне кажется, надо больше информации. К примеру, что скажет пинг если сначала сказать nscd -i hosts

Еще я бы глянул на Ваш nsswitch.conf и resolv.conf (тут на предмет domain и search).

А еще бывают всякие приседания с nss-mdns и avahi ;)

Bebop ★★ ()
Ответ на: комментарий от Bebop

спасибо за помощь - выше уже написал, что похоже ситуация прояснилась. в принципе логика работы понятная, но видимо так и придется смириться с тем, что если работает ping, то это не гарантирует работу всего остального :)

bender ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.