2

Я использую локальный сервер DHCP и DNS в моей домашней сети на компьютере с Linux. Это работает CentOS 6.3 с dnsmasq 2.48.

Все работает нормально, за исключением локального поиска DNS только для компьютеров с Windows. У меня есть смесь компьютеров Ubuntu, CentOS и Windows в сети, некоторые виртуальные, некоторые физические. У меня есть машина с именем boron а домен называется localdomain

Если я ping boron с любой машины Linux, я получаю

[root@lithium lists]# ping -c3 boron
PING boron.localdomain (10.0.0.5) 56(84) bytes of data.
64 bytes from boron.localdomain (10.0.0.5): icmp_seq=1 ttl=64 time=0.740 ms
64 bytes from boron.localdomain (10.0.0.5): icmp_seq=2 ttl=64 time=0.478 ms
64 bytes from boron.localdomain (10.0.0.5): icmp_seq=3 ttl=64 time=0.458 ms

--- boron.localdomain ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.458/0.558/0.740/0.131 ms

Если я сделаю это с моего компьютера с Windows 7, я получу:

Ping request could not find host boron. Please check the name and try again.

Если я попробую ping boron.localdomain я получу:

Pinging boron.localdomain [67.215.65.132] with 32 bytes of data:
Reply from 67.215.65.132: bytes=32 time=16ms TTL=57
Reply from 67.215.65.132: bytes=32 time=188ms TTL=57
Reply from 67.215.65.132: bytes=32 time=15ms TTL=57
Reply from 67.215.65.132: bytes=32 time=14ms TTL=57

Ping statistics for 67.215.65.132:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 14ms, Maximum = 188ms, Average = 58ms

что явно неправильно. Почему это выходит в интернет? Почему мой компьютер с Windows не может boron имя хоста Boron в полное доменное имя? Мои машины с Windows и Linux получают свою сетевую конфигурацию от DHCP.

ОБНОВИТЬ

Если я делаю ipconfig /all в Windows, это выглядит так, как я и ожидал:

Windows IP Configuration

   Host Name . . . . . . . . . . . . : lanthanum
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No
   DNS Suffix Search List. . . . . . : .localdomain

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . : .localdomain
   Description . . . . . . . . . . . : Realtek PCIe GBE Family Controller
   Physical Address. . . . . . . . . : 50-E5-49-38-FC-A2
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IPv4 Address. . . . . . . . . . . : 10.0.0.57(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : 23 August 2012 13:58:45
   Lease Expires . . . . . . . . . . : 24 August 2012 07:58:48
   Default Gateway . . . . . . . . . : 10.0.0.6
   DHCP Server . . . . . . . . . . . : 10.0.0.6
   DNS Servers . . . . . . . . . . . : 10.0.0.6
                                       208.67.222.222
                                       208.67.220.220
   NetBIOS over Tcpip. . . . . . . . : Enabled

Когда я делаю nslookup я получаю:

Server:  carbon.localdomain
Address:  10.0.0.6

*** carbon.localdomain can't find boron: Unspecified error

Однако, если я сделаю ifconfig -a в Linux, я получу:

[root@nitrogen ~]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:0C:29:AF:EC:2A
          inet addr:10.0.0.7  Bcast:10.0.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:187687 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5857 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:23910700 (22.8 MiB)  TX bytes:712964 (696.2 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:329894 errors:0 dropped:0 overruns:0 frame:0
          TX packets:329894 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:67153143 (64.0 MiB)  TX bytes:67153143 (64.0 MiB)

и nslookup:

[root@nitrogen ~]# nslookup boron
Server:         10.0.0.6
Address:        10.0.0.6#53

Name:   boron
Address: 10.0.0.5

Обе машины находятся в одной сети, используя один и тот же DHCP-сервер.

ОБНОВЛЕНИЕ 2

Я думал, что проблема была решена, но у меня периодически возникают проблемы с DNS, но только на моем компьютере с Windows 7. Все мои Linux-коробки в порядке. Вот что происходит, когда я ping и nslookup из Windows на Windows 2008 Server:

C:\Users\mark>nslookup magnesium
Server:  carbon.localdomain
Address:  10.0.0.6

Name:    magnesium.localdomain
Address:  10.0.0.12


C:\Users\mark>ping magnesium

Pinging magnesium.localdomain [67.215.65.132] with 32 bytes of data:
Reply from 67.215.65.132: bytes=32 time=267ms TTL=57
Reply from 67.215.65.132: bytes=32 time=162ms TTL=57
Reply from 67.215.65.132: bytes=32 time=510ms TTL=57
Reply from 67.215.65.132: bytes=32 time=146ms TTL=57

Ping statistics for 67.215.65.132:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 146ms, Maximum = 510ms, Average = 271ms

И из Linux:

[root@beryllium ~]# ping -c4 magnesium
PING magnesium.localdomain (10.0.0.12) 56(84) bytes of data.
64 bytes from magnesium.localdomain (10.0.0.12): icmp_seq=1 ttl=128 time=0.176 ms
64 bytes from magnesium.localdomain (10.0.0.12): icmp_seq=2 ttl=128 time=0.634 ms
64 bytes from magnesium.localdomain (10.0.0.12): icmp_seq=3 ttl=128 time=0.685 ms
64 bytes from magnesium.localdomain (10.0.0.12): icmp_seq=4 ttl=128 time=0.263 ms

--- magnesium.localdomain ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 0.176/0.439/0.685/0.223 ms
[root@beryllium ~]# nslookup magnesium
Server:         10.0.0.6
Address:        10.0.0.6#53

Name:   magnesium.localdomain
Address: 10.0.0.12

ОБНОВЛЕНИЕ 3

Я остановил DNS-клиента Windows на своем компьютере с Windows 7 с помощью net stop dnscache и теперь он работает нормально. Было бы неплохо, чтобы DNS работал с включенным DNS-клиентом, но я мог бы быть в порядке без него, как вы думаете?

3 ответа3

1

Если вы откроете окно командной строки (cmd) и ipconfig /all вы можете увидеть «DNS-суффикс конкретного соединения» и «DNS-суффикс списка поиска», которые были получены с сервера DHCP (например, вашего интернет-маршрутизатора) и добавлены к любое неполное имя при поиске DNS.

Вы также увидите «DNS-серверы», снова предоставленные DHCP.

Встроенный nslookup также покажет это.

Если что-то из этого не так, это означает, что ваш DHCP-сервер не отправляет информацию, которую он должен (я однажды добавил маршрутизатор для второй линии ADSL и забыл отключить DHCP в старом маршрутизаторе)

Однако, если он не получает приемлемый ответ от DNS, Windows пытается использовать службы имен NetBIOS.

Использование сетевого анализатора, такого как WireShark, может прояснить, какие DNS-запросы отправляются, с какими суффиксами и на какие DNS-серверы.

1

Вариант 1. Настройте сервер DHCP для предоставления информации о суффиксе DNS (параметр 015 dhcp). Вариант 2. В клиенте Windows настройте протокол ipV4: - выберите «Дополнительно» - DNS - и установите «суффикс dns для этого подключения» в своем местный суффикс

0

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

DNS-клиент по умолчанию включен, чтобы поддерживать обратную совместимость с системами, которые не имеют полной видимости DNS, особенно доменными системами, которые не имеют полной видимости DNS перед входом в систему, что делает невозможным поиск сервера аутентификации. Если вы можете войти в Windows с выключенным клиентом, он не должен быть включен.

Однако служба DNScache может иметь некоторые плохо описанные функции в Win7. В частности, я не уверен в его отношении к DNSSEC и регистрации DNS. Тестировать регистрацию легко: ваша рабочая станция зарегистрирована в DNS? Это должно быть? Вы можете проверить, используете ли вы DNSSEC, используя бесплатные веб-инструменты.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .