題 在本地為家庭網絡運行DNS


我有一個小的家庭網絡,只是變大了(新室友,我現有的室友有一台筆記本電腦(在她的電腦上),我的朋友用筆記本電腦過來等等)。

我想運行本地DNS服務器來查找我的本地網絡資料(fileserver.localwindowsTV.localmachineA.localmachineB.localappletv.local)。我曾經有一個帶有靜態IP的業務線,並在內部運行bind / named。但是,現在我有一個正常的帳戶。

我的ISP的DNS服務器不斷變化(無論出於何種原因,我的ISP不喜歡長時間保持相同的IP範圍)。我需要自動更新我的本地DNS以使用我的ISP的DNS進行外部流量,但是能夠維護內部DNS服務器(使用win7重建現有機器時,每個新機器都需要更新主機文件是一件麻煩事。或Ubuntu 9.04)。

此外,我的ISP的DNS服務器經常崩潰或無響應。是否有任何可靠的開放DNS服務器(我不想每天重新配置)我可以用作我的主要服務器,如果那些失敗,那麼使用我的ISP?

更新:還尋找每個工作站能夠使用dhcp連接,而不是獲得ISP DNS服務器,獲取我的內部....


83
2017-09-23 18:40


起源


這里至少有兩個問題:本地DNS配置,公共DNS服務器。下次發2個問題。 - hyperslug
我同意,但我正在尋找一個整體解決方案。它本身的每個問題都有正確的答案,但可能沒有網格,我正試圖尋找解決這兩個問題的解決方案。 - Roy Rico
@RoyRico你有沒有找到一個好的解決方案?我正在嘗試與番茄路由器做同樣的事情,並在各個方向跑進牆壁。 - Jeff
如果你有一個linux盒子,這裡是如何設置DNSMASq的詳細信息 - sfxpt.wordpress.com/2011/02/06/... - xpt
如果有人想知道,新的谷歌DNS服務器是8.8.8.8和8.8.4.4 ... - Tmanok


答案:


如果您希望內部虛假域工作,則無法使用除您自己的DNS服務器之外的任何DNS服務器配置您的工作站。 設置BIND後,它可以自行工作,您根本不需要ISP或任何其他非權威的DNS服務器。


13
2017-09-23 18:58



然而,如果可能的話,一位好網友將轉發到他們的ISP的DNS緩存。根DNS服務器上的負載是可怕的。特別是像這樣的小型網站,因為如果每個家庭決定直接進入,它就不會擴展。 (如果您擔心ISP被篡改,請使用DNSSEC)。 - sourcejedi
@sourcejedi,你誤解了緩存DNS服務器實際上做了什麼..它肯定不會對根服務器造成影響,它只會困擾它們一周一次。 - milli
你應該轉發到你的ISP DNS服務器有一個不同的原因......你看起來像普通的客戶端。如果你沒有,他們看到你有一個系統在世界各地發送DNS查詢,他們會假設你正在運行一個DNS服務器,可能只是在你的臉上拋出防火牆規則並使你軟化。如果/何時發生這種情況,你將很難弄清楚什麼破壞了,並且可能浪費時間試圖找出它。 - milli
進一步到@ milli的觀點,您的ISP的DNS也可能會將某些域的解析覆蓋到具有更快/緩存/未計量內容的私有計算機。使用公共DNS可以破壞這些服務或者花費更多。 - Walf


基本上您需要運行自己的DHCP和DNS服務器。如果您有一個提供私有IP地址的典型路由器,那麼您已經在運行自己的DHCP服務器。

您的DHCP服務器必須配置為將路由器IP分發為網關地址,並將DNS服務器IP分發為DNS服務器地址。

您的DNS服務器必須配置為在本地解析非官方頂級域,例如 .local,然後將任何其他請求轉發到另一個DNS。在BIND中你需要添加一個 forwarders { } 您的`/etc/bind/named.conf.options'部分,其中包含您要用於解析非本地地址的公共DNS服務器。正如其他評論所示,如果您不想轉發到ISP的DNS服務器,您可以使用OpenDNS,Google的公共DNS服務器或4.2.2.1/4.2.2.2(我忘記了那些人那樣做)。

如果您正在運行自己的DNS服務器,則需要一個始終打開的框,因為您家庭網絡上的所有DNS查詢都將通過它。此框在您的家庭子網上需要固定IP。確保它不會被DHCP推平,並且盒子本身不應該通過DHCP獲取IP。例如,如果您的DHCP配置為將地址從192.168.1.1分發到192.168.1.100,則為您的DNS服務器提供IP 192.168.1.101。在家庭路由器的通常情況下,您只需要告訴路由器DNS服務器是192.168.1.101並重啟。

如果您可以在寬帶路由器上運行本地DNS,那很好,但DNS服務器可能會從大量RAM中受益,用於緩存查詢,具體取決於您使用的DNS軟件。在我的網絡上,我只是直接使用 BIND。聽起來你可能對此有一點經驗,對我來說它很有效。


75
2018-02-16 14:43



4.2.2.1/4.2.2.2/4.2.2.3來自第3層。 - Hengjie
很好的答案!感謝您提供完整,清晰的信息。我會盡快在我的本地網絡上進行設置。 - Form
成功!這種方法很合理。在可尋址範圍之外設置固定IP /避免DNS框的DHCP特別相關。謝謝! - Form
@Hengjie什麼是第3層? - Jonathan
第3層是數據中心提供商以及網絡提供商。他們也碰巧提供堅如磐石的DNS服務器。 - Hengjie


有沒有可靠的開放DNS服務器

你說的: OpenDNS的

208.67.222.222
208.67.220.220

15
2017-09-23 18:57



我也會看 aboutdebian.com/dns.htm 有關設置自己的DNS服務器的不同方法的概述。 - Kenneth Cochran
為OpenDNS +1。我在工作和家裡都使用它。很棒的服務。 - DWilliams
請注意,OpenDNS名稱服務器是騙子:它們會重寫DNS響應,引導您訪問廣告服務或審查某些目的地。 - bortzmeyer
@bortz,我沒有看到他們對此撒謊,但是如果網址格式錯誤,他們會重定向到他們的目標網頁+廣告。審查是選擇加入,默認情況下是關閉的。 - hyperslug
谷歌的8.8.8.8和8.8.4.4的公共DNS服務器也相當不錯。 - LawrenceC


如果您正在運行Windows - 您應該看看 簡單的DNS Plus  - 它是一個完整的DNS服務器,也附帶一個DHCP服務器插件 - 並具有易於使用的GUI。

[注:該產品由本文作者開發]


6
2017-09-25 15:38



我正在運行Windows作為我的一台機器,但它並不總是在運行。 Linux機器通常是打開的。 - Roy Rico


不作承諾 非常簡單,支持綁定樣式配置文件,相當可靠。如果服務器將是一個獨立的“網關”類型框,並且你想要一些額外的細節,你可能想看一下名為untangle的防火牆/網關發行版。


5
2017-09-23 23:51





如果您有一個Linux機箱,那麼您需要設置DNSMASq獲取您的本地地址並將其用作外部地址的轉發/緩存DNS服務器。這通常也用於家用路由器的linux發行版,例如openwrt / ddwrt / tomato。

或者,在大多數Apple / Mac網絡上,您將使用Bonjour / Zeroconf,Linux和Apple計算機都可以進行通信以進行廣播級DNS /服務解析。

話雖如此,在運行所有三個操作系統的純混合網絡上,您肯定希望本地DNS服務器轉發到OpenDNS,GoogleDNS或您的本地ISP DNS,具體取決於您的位置/需求。


4
2018-03-03 05:23





我使用的是4.2.2.1和4.2.2.2

編輯:即公共服務器。容易記住,我不認為我已經看到它們失敗,因為我一直在使用它們。


2
2017-09-23 18:44



我以前見過那些。誰經營者?公眾是否允許使用它們?他們有多可靠? - Roy Rico
Verizon公司。好像他們不在乎。非常。 - hyperslug
它們是開放式DNS服務器,可供公眾免費使用。它們既快又可靠。 - Walter
我已經看到4.2.2.2足以讓我們的客戶(他們需要可靠的DNS進行信用卡處理!),每當我看到它時,我總是將這些更改為Google的公共DNS或OpenDNS。遠離Verizon的服務器總是立即解決這個問題。 - Stephen Jennings


任何寬帶路由器都為本地網絡提供DNS和DHCP服務。 如果您想要從Internet到本地計算機的INcomming連接,您需要一個也支持DynDNS和Incomming PortForwarding的路由器。

如果你選擇一個 DD-wrt支持的硬件 列表您可以使用該固件進行閃存,它將支持您在小型網絡中可能需要的任何功能。


2
2017-09-23 19:38



我不認為大多數寬帶路由器提供DNS服務,至少不提供所提供的固件。大多數只是提供DHCP並使用它來告訴您的系統使用您的ISP的DNS服務器。現在,如果您使用DD-WRT,OpenWRT或Tomato等第三方固件進行閃存,那麼他們也可以提供DNS服務。 - afrazier