Debian

Linux DNS 後綴配置

  • September 27, 2016

介紹

我有一個執行 Rasbian 的 Raspberry Pi,連接到基於 Windows Server 的網路。這是一個企業(教育)網路,擁有自己的內部網,由所有連接的計算系統組成,並且還擁有一個可公開訪問的網站。出於此問題的目的,該域將命名為exampledomain.com.

在此 Intranet 上,連接的 Windows 電腦可以通過網路適配器上的配置將 DNS 後綴附加到其主機名(此處列出的步驟)。這將允許具有該名稱的電腦可通過本地網路或從本地網路comp1定址(即作為特定連接後綴列出)。comp1``comp1.ns.exampledomain.com``ipconfig``ns.exampledomain.com

問題

我有一個 Raspberry Pi 2,它具有comppi我需要通過 address 訪問的主機名comppi.ns.exampledomain.com。Pi 目前可通過其主機名comppi、使用comppi.local或 IP 地址訪問。

通過主機名訪問是通過使用sudo apt-get -y install samba. 這是avahi在 RPi 上設置的簡單方法。

我無法訪問所涉及的 DHCP/DNS 伺服器。但我應該能夠在不需要的情況下達到這個結果。(因為它可以在沒有 Windows 電腦的情況下完成)

我還會注意到,/etc/dhcp/dhclient.conf即使在閱讀了相關man頁面之後,我對文件的理解也很差。我可能錯過了一些微不足道的東西。

目前的嘗試

  • 嘗試將主機名直接更改為comppi.ns.exampledomain.com以下文件中的所有位置。
  • 嘗試將主機名行更改為send host-name = "comppi.ns.exampledomain.com"in /etc/dhcp/dhclient.conf
  • 嘗試在askubuntu.comappend domain-name = "ns.exampledomain.com"上向/etc/dhcp/dhclient.conf使用者 Jordan添加該行。但是我認為這只是在它們失敗時添加到傳出主機名解析。ns.exampledomain.com

技術資訊

  • 作業系統:Raspbian GNU/Linux 8 (jessie) (注意:這是精簡版)
  • 圓周率:樹莓派 2
  • 主機名:comppi

文件

內容/etc/network/interfaces不變。

內容/etc/hostname

comppi

內容/etc/hosts

127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1       comppi comppi.ns.exampledomain.com

內容/etc/dhcp/dhclient.conf

# Configuration file for /sbin/dhclient, which is included in Debian's
#       dhcp3-client package.

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

#send host-name = gethostname();
send host-name = "comppi"
append domain-name = "ns.exampledomain.com"
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;

因此,要解決comppi.ns.exampledomain.com網路上的問題,您需要 DHCP 伺服器管理員的幫助,這就是原因。在這個答案的底部,Linux選項

視窗環境

除非安裝了其他軟體,否則 LINUX 客戶端無法辨識 AD(Active Directory)。因此,必須依靠 DHCP 伺服器在正確配置的 Windows 環境中更新 DNS 伺服器。

要讓 DHCP 伺服器在本地 DNS 伺服器上註冊主機名,必須獲得動態更新授權。此設置不是使用者可配置的,您的網路管理員應該修改它,是的,您需要它才能工作。

DHCP 伺服器除了來自 DHCP 伺服器的 IP 地址,您還會收到此網路的域後綴;後綴由您的主機儲存,稍後將使用。請注意,除非您的 DHCP 伺服器和 DNS 伺服器在同一個盒子上,否則動態更新將需要 DHCP 伺服器與您的 DNS 伺服器進行身份驗證。

此時 DHCP 伺服器應該為您進行 DNS 網路註冊。它不受客戶端主機控制,但是您的主機必須請求。目前 Debian 自動請求 DNS 註冊。

在 Windows 上,您可以強制重新註冊ipconfig /registernds.

在本地網路上,主機可以使用兩個“合法”名稱和方法找到您:普通主機名和主機名加上域。後綴“ .local”如果經常被忽略,用於避免添加另一個後綴。

1第一種方法不使用DNS:使用區域網路廣播主機詢問’誰知道這個名字’,主題主機將回答一個MAC地址和IP。

每隔幾秒鐘,主機就會廣播他們的名字,以便其他共享 LAN 的人知道他們的存在。通常這個廣播被交換機/路由器過濾,所以除非你在同一個交換機上,否則很難讓它可靠。

在此處輸入圖像描述

2第二種方法是向 LAN 指定的 DNS 伺服器發送請求,使用“普通”主機名以及帶有 LAN 後綴的主機名。

家庭路由器和內部網不公開,因此在預設 DNS 伺服器上使用通用 DNS(8.8.8.8、8.8.4.4)根本無法解析本地主機。每個分配有 DHCP 地址的本地主機都會被您的路由器“記住”。

在您的主機上,您可以在解析 DNS 地址時添加一個或多個後綴(使用 LinuxhostdigWindows 上的 and nslookup

在此處輸入圖像描述

我會建議正確設置您的主機名。打開/etc/hostname和打開/etc/hosts(對於 ::1 和 127.0.0.1)然後執行. /etc/init.d/hostname.sh.

從 Linux 手動更​​新 DNS 伺服器

還有另一種選擇,只需要在客戶端上進行手動合作。使用一個鮮為人知的實用程序nsupdate。這將添加您在有效 DNS 伺服器上註冊所需的功能。它遵循 RFC 發布的與 DNS 相關的協議。

例子:

$ nsupdate -v
>delete video.domain.com. a
>delete  git.domain.com. a
>delete  gateway.domain.com. a
>add  video.domain.com. 600 a 192.168.1.111
>add  git.domain.com. 600 a 192.168.7.10
>add  gateway.domain.com. 600 a 192.168.7.10
>send
>quit

您可以使用動態獲得的 IPV4 或 IPv6 地址創建一個簡單文件,並在 ‘post-up’ 腳本上執行/etc/network/interfaces

當 Active Directory 的一部分時,Windows 客戶端會在 DNS 中自動註冊其名稱(在您的情況下似乎是這樣)。這使用稱為動態 DNS (DDNS) 的過程。使用 Windows DDNS 註冊 linux 機器的最簡單方法是使用 Samba 將您的 linux 機器加入 Windows 域。這將需要加入 Windows 域的權限。Internet 上的很多指南都可以為您詳細介紹如何從 linux 加入 Windows 域,但以下是簡要步驟:

首先在/etc/krb5.conf中添加域資訊

[realms]
   NS.EXAMPLEDOMAIN.COM = {
   }

[domain_realm]
   .ns.exampledomain.com = NS.EXAMPLEDOMAIN.COM
   ns.exampledomain.com = NS.EXAMPLEDOMAIN.COM

然後為加入域配置 smb.conf

[global]
workgroup = EXAMPLEDOMAIN
realm = NS.EXAMPLEDOMAIN.COM
security = ADS

然後執行net ads join -U windowsuserwindowsuser 是任何有權加入域的使用者。

這會將您的機器加入 Windows 域,同時在 Windows DNS 中註冊機器的 IP 地址,允許其他人使用comppi.ns.exampledomain.comcomppi名稱訪問您的機器

引用自:https://unix.stackexchange.com/questions/288204