Проблемы с DNS на свежей установке CentOS


8

У меня проблемы с DNS на новом компьютере, который я устанавливаю с CentOS 6.2.

Я могу искать имена, используя nslookup, dig или host. Я могу пинговать машины по имени или по IP-адресу. Однако, когда я пытаюсь использовать другие инструменты, такие как ssh, wget или yum, они не могут разрешить имена. Например:

# wget http://www.google.com
--2012-03-08 14:48:06--  http://www.google.com/
Resolving www.google.com... failed: Name or service not known.
wget: unable to resolve host address `www.google.com'
# ssh www.google.com
ssh: Could not resolve hostname www.google.com: Name or service not known
# ping -c 1 www.google.com
PING www.l.google.com (74.125.113.106) 56(84) bytes of data.
64 bytes from vw-in-f106.1e100.net (74.125.113.106): icmp_seq=1 ttl=46 time=43.6 ms

--- www.l.google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 59ms
rtt min/avg/max/mdev = 43.665/43.665/43.665/0.000 ms
# host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 74.125.113.99
www.l.google.com has address 74.125.113.103
www.l.google.com has address 74.125.113.104
www.l.google.com has address 74.125.113.105
www.l.google.com has address 74.125.113.106
www.l.google.com has address 74.125.113.147

Мой файл /etc/nsswitch.conf используется по умолчанию, включая следующую (стандартную) строку:

hosts:      files dns

/etc/resolv.conf настроен DHCP:

; generated by /sbin/dhclient-script
nameserver 192.168.1.254

192.168.1.254 - это работающий DNS-сервер (мой DSL-модем, годами работающий с другими машинами)

Кто-нибудь знает, почему ping будет работать, но ssh / wget потерпит неудачу?


По предложению NcA ​​я попытался изменить /etc/resolv.conf так, чтобы он указывал на 8.8.8.8. Как ни странно, это заставляет его работать. Очевидно, что мой DSL-модем отвечает на запросы DNS некоторым образом, что некоторым компонентам системы разрешения Linux не нравится. Глядя на tcpdump, я не вижу, в чем разница. Конечно, оба сервера отправляют одинаковые адреса.

Вот выходные данные, tcpdump -nn -Xкогда сервер настроен на DNS-сервер модема DSL. Он явно отвечает с правильными адресами, но ssh / wget почему-то не в восторге от этого:

15:53:52.133580 IP 192.168.1.254.53 > 192.168.1.2.54836: 33157 7/0/0 CNAME www.l.google.com., A 74.125.115.105, A 74.125.115.106, A 74.125.115.147, A 74.125.115.99, A 74.125.115.103, A 74.125.115.104 (148)
        0x0000:  4500 00b0 e33a 0000 ff11 53b1 c0a8 01fe  E....:....S.....
        0x0010:  c0a8 0102 0035 d634 009c 7528 8185 8180  .....5.4..u(....
        0x0020:  0001 0007 0000 0000 0377 7777 0667 6f6f  .........www.goo
        0x0030:  676c 6503 636f 6d00 0001 0001 c00c 0005  gle.com.........
        0x0040:  0001 0007 acd0 0008 0377 7777 016c c010  .........www.l..
        0x0050:  c02c 0001 0001 0000 0001 0004 4a7d 7369  .,..........J}si
        0x0060:  c02c 0001 0001 0000 0001 0004 4a7d 736a  .,..........J}sj
        0x0070:  c02c 0001 0001 0000 0001 0004 4a7d 7393  .,..........J}s.
        0x0080:  c02c 0001 0001 0000 0001 0004 4a7d 7363  .,..........J}sc
        0x0090:  c02c 0001 0001 0000 0001 0004 4a7d 7367  .,..........J}sg
        0x00a0:  c02c 0001 0001 0000 0001 0004 4a7d 7368  .,..........J}sh
15:53:52.135669 IP 192.168.1.254.53 > 192.168.1.2.54836: 65062- 0/0/0 (32)
        0x0000:  4500 003c e33b 0000 ff11 5424 c0a8 01fe  E..<.;....T$....
        0x0010:  c0a8 0102 0035 d634 0028 98f9 fe26 8000  .....5.4.(...&..
        0x0020:  0001 0000 0000 0000 0377 7777 0667 6f6f  .........www.goo
        0x0030:  676c 6503 636f 6d00 001c 0001            gle.com.....

Мне не хватает эксперта, чтобы понять, является ли это каким-то образом неправильным, но ping, кажется, делает с этим все правильно.

Для сравнения, вот то же самое при запросе 8.8.8.8:

15:57:27.990270 IP 8.8.8.8.53 > 192.168.1.2.49028: 59114 7/0/0 CNAME www.l.google.com., A 74.125.113.105, A 74.125.113.103, A 74.125.113.106, A 74.125.113.147, A 74.125.113.104, A 74.125.113.99 (148)
        0x0000:  4500 00b0 5530 0000 2f11 6453 0808 0808  E...U0../.dS....
        0x0010:  c0a8 0102 0035 bf84 009c 39f8 e6ea 8180  .....5....9.....
        0x0020:  0001 0007 0000 0000 0377 7777 0667 6f6f  .........www.goo
        0x0030:  676c 6503 636f 6d00 0001 0001 c00c 0005  gle.com.........
        0x0040:  0001 0001 516a 0008 0377 7777 016c c010  ....Qj...www.l..
        0x0050:  c02c 0001 0001 0000 0116 0004 4a7d 7169  .,..........J}qi
        0x0060:  c02c 0001 0001 0000 0116 0004 4a7d 7167  .,..........J}qg
        0x0070:  c02c 0001 0001 0000 0116 0004 4a7d 716a  .,..........J}qj
        0x0080:  c02c 0001 0001 0000 0116 0004 4a7d 7193  .,..........J}q.
        0x0090:  c02c 0001 0001 0000 0116 0004 4a7d 7168  .,..........J}qh
        0x00a0:  c02c 0001 0001 0000 0116 0004 4a7d 7163  .,..........J}qc
15:57:28.018909 IP 8.8.8.8.53 > 192.168.1.2.49028: 31984 1/1/0 CNAME www.l.google.com. (102)
        0x0000:  4500 0082 7b1b 0000 2f11 3e96 0808 0808  E...{.../.>.....
        0x0010:  c0a8 0102 0035 bf84 006e c67e 7cf0 8180  .....5...n.~|...
        0x0020:  0001 0001 0001 0000 0377 7777 0667 6f6f  .........www.goo
        0x0030:  676c 6503 636f 6d00 001c 0001 c00c 0005  gle.com.........
        0x0040:  0001 0001 517f 0008 0377 7777 016c c010  ....Q....www.l..
        0x0050:  c030 0006 0001 0000 0258 0026 036e 7334  .0.......X.&.ns4
        0x0060:  c010 0964 6e73 2d61 646d 696e c010 0016  ...dns-admin....
        0x0070:  91f3 0000 0384 0000 0384 0000 0708 0000  ................
        0x0080:  003c                                     .<

Я до сих пор не знаю, почему ответ сервера подходит для ping, но не для ssh / wget.

Если у кого-то есть идеи, я буду рад их услышать. Однако сейчас я могу либо обратиться к внешнему DNS-серверу, либо настроить свой собственный сервер в новом окне. Это обходной путь, который кажется ненужным, но позволит мне продолжить.


Попробуйте добавить «nameserver 8.8.8.8» в ваш /etc/resolv.conf и опубликуйте результаты. Давайте сузим это до ошибки клиента или сервера.
NcA

Как выглядит ваш /etc/host.conf ?
Нильс

@Nils: /etc/host.conf - это значение по умолчанию, содержащее только строку 'multi on'
Рик Коши

Не могли бы вы опубликовать вывод dig с вашего локального сервера и из 8.8.8.8 в полном объеме? Как долго этот ящик Centos был вокруг? Есть ли у вас другие компьютеры за этим модемом DSL? Что происходит с ними WRT DNS-запросов? Вы пытались перезапустить коробку Centos? Если вы случайно не урезали вывод выше, два дампа не выглядят одинаково. Вы пытались перезапустить модем DSL?
Kls

1
Интересная проблема. И довольно солидная работа по ее устранению.
jamieb

Ответы:


2

Используя это: https://www.centos.org/modules/newbb/viewtopic.php?topic_id=39343

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

[root@localhost ~]# wget -6 URL -Не смогли

[root@localhost ~]# wget -4 URL -Работал

Это связано со стеком ipv6 по умолчанию, что вызывает проблемы с некоторыми утилитами. Отключить ipv6 для разрешения.


+1 к ipv6. pingэто v4-only вещь (есть ping6для пингов v6) и вот почему это работает. Однако я бы не советовал его отключать - многие современные провайдеры хуже работают на v4. Многие делают NAT на их стороне ... хреново. Я подозреваю, что DNS-сервер модема не поддерживает записи AAAA должным образом, вызывая этот неловкий сбой. Google DNS или OpenDNS могут быть хорошим обходным путем.
РВС

2

У меня та же проблема, но я ее исправил.

Вы должны добавить DNS в файл конфигурации интерфейса /etc/sysconfig/network-scripts/ifcfg-eth0. Добавьте строку

DNS1=xxx.xxx.xxx.xxx

И тогда вы должны перезапустить сетевой сервис.

# systemctl restart NetworkManager

не работает для меня :(
VaTo

1

Сначала остановите брандмауэр. Всегда избегайте этого при устранении неполадок в сети (когда это возможно). Если вы отбросите брандмауэр, и ваша проблема исчезнет, ​​проблема решена, если нет, по крайней мере, пока это невозможно.

1) iptables -L посмотреть, есть ли какие-либо правила DROP, которые могут влиять на исходящие пакеты

2) Проверьте, работает ли selinux и делает ли что-то странное (/ etc / selinux / config)

3) что выдает следующее: route -n

4) как выглядит / etc / sysconfig / network-scripts / ifcfg-eth0

5) можете ли вы пинговать свой шлюз без проблем?

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


1

Основываясь на оригинальном посте, я добавил 8.8.8.8, /etc/resolv.confи /etc/sysconfig/network-scripts/ifcfg-eth0ни одно из них не решило мою проблему.

Затем я отредактировал /etc/nsswitch.conf:

оригинал

hosts:          files  mdns4_minimal [NOTFOUND=return] dns mdns4

Edited

hosts:          files  dns mdns4_minimal [NOTFOUND=return] mdns4

Теперь DNS работает на yum и wget.


0

Попробуйте добавить порядок хостов, привязайтесь к /etc/host.conf .


-1

Попробуйте добавить строку «options single-request» в ваш /etc/resolv.conf. Это скажет libc сделать 2 запроса (A и AAAA) вместо отправки их с одного и того же порта. Это должно помочь.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.