Я использую локальный сервер 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-клиентом, но я мог бы быть в порядке без него, как вы думаете?