Linux DNS 後綴配置
介紹
我有一個執行 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.com
append 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 伺服器的 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 地址時添加一個或多個後綴(使用 Linux
host
或dig
Windows 上的 andnslookup
)我會建議正確設置您的主機名。打開
/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 windowsuser
windowsuser 是任何有權加入域的使用者。這會將您的機器加入 Windows 域,同時在 Windows DNS 中註冊機器的 IP 地址,允許其他人使用
comppi.ns.exampledomain.com
和comppi
名稱訪問您的機器