使用 ISP DNS 伺服器代替本機 DNS

使用 ISP DNS 伺服器代替本機 DNS

問題

在我公司的內部網路上,有一個開發伺服器,名為devserver.mycompany.com

通常我可以毫無問題地連接到該伺服器,但有時(對我來說似乎是隨機的)Ubuntu 將無法解析該位址。

其他資訊和觀察

當我nmcli dev list iface eth0在終端機中運行時,我看到有兩個已配置的 DNS 伺服器:

IP4.DNS[1]:                             192.168.50.103
IP4.DNS[2]:                             128.255.1.3

第二個 DNS 伺服器是我的 ISP 的伺服器。

我的 Windows 分割區上從未出現過此問題,該分割區配置為使用相同的兩個 DNS 伺服器。

當我遇到這個問題時:

  • nslookup devserver.mycompany.com 失敗
  • nslookup devserver.mycompany.com 128.255.1.3 失敗一直(毫不奇怪,devserver 不是公共伺服器)
  • nslookup devserver.mycompany.com 192.168.50.103 作品

這是實際輸出nslookup

Ubuntu-14:~$ nslookup devserver.mycompany.com
Server:     127.0.1.1
Address:    127.0.1.1#53

** server can't find devserver.mycompany.com: NXDOMAIN

問題

  • 從上面的輸出來看,Ubuntu 似乎正在嘗試使用本地 DNS 伺服器。正確的?它是否在我的本機電腦上快取失敗的查找?
    • 如果是快取的話,如何清除快取呢?
  • Ubuntu 有時會使用第二個 DNS 伺服器嗎?為什麼?是負載平衡嗎?本地的速度慢嗎?
  • 我該如何解決這個問題?我不想刪除第二個 DNS 伺服器,以防主伺服器發生故障。
  • 最後,為什麼我在 Windows 中沒有遇到這個問題?

Ubuntu 版本資訊

ubuntu 14.04 LTS,沒有突出的更新。

所有網路或多或少都是自動設定的。使用 DHCP

答案1

從上面的輸出來看,Ubuntu 似乎正在嘗試使用本地 DNS 伺服器。正確的?它是否在我的本機電腦上快取失敗的查找?

是的,Ubuntu 正在使用 dhcp 租約提供的任何內容,更具體地說dnsmasq,是一個插件,它可以處理network-manager.

Ubuntu 有時會使用第二個 DNS 伺服器嗎?為什麼?是負載平衡嗎?本地的速度慢嗎?

如果第一個 dns 無法解析,則應dnsmasq將查詢重新導向至輔助 dns。至少是這樣的。

如果您想使用自己的 dns 伺服器 就我個人而言,我總是使用supersede domain-name-server xxx.xx.xxx.xxxin/etc/dhcp/dhclient.conf告訴我的 Ubuntu 系統用我自己的伺服器取代它透過 dhcp 租約接收到的任何 dns。以下是該文件的摘錄:

30)serg@ubuntu[/home/xieerqi]
>_ cat /etc/dhcp/dhclient.conf                                                 
# Configuration file for /sbin/dhclient, which is included in Debian's
#   dhcp3-client package.
#
# This is a sample configuration file for dhclient. See dhclient.conf's
#   man page for more information about the syntax of this file
#   and a more comprehensive list of the parameters understood by
#   dhclient.
#
# Normally, if the DHCP server provides reasonable information and does
#   not leave anything out (like the domain name, for example), then
#   few changes must be made to this file, if any.
#

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

#send host-name "andare.fugue.com";
send host-name = gethostname();
#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
#send dhcp-lease-time 3600;
#supersede domain-name "fugue.com home.vix.com";
supersede domain-name-servers 208.67.220.220;
#prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, domain-search, host-name,
    dhcp6.name-servers, dhcp6.domain-search,
    netbios-name-servers, netbios-scope, interface-mtu,
    rfc3442-classless-static-routes, ntp-servers,
    dhcp6.fqdn, dhcp6.sntp-servers;

設定並重新連接或重新啟動後network-manager,這就是我所擁有的:

31)serg@ubuntu[/home/xieerqi]
>_ nmcli dev list | grep -i dns                                                
IP4.DNS[1]:                             208.67.220.220

Nslookup 將報告Server: 127.0.1.1Address: 127.0.1.1#53 因為它是網路管理器dsnmasq偵聽該位址,並且它使用 dhcp 提供的任何內容(在本例中為替換的 dns)

相關內容