Lxc

將 LXC 配置為使用特定的 DNS 伺服器而不是 DNSMASQ

  • November 20, 2017

開箱即用,我的 LXC 容器連接到一個正在執行的 dnsmasq 實例,該實例由該lxc-net服務啟動。

就我而言,我正在執行一個本地未綁定的 DNS 伺服器,該伺服器連接到一個名為 ncdns 的東西,它讓我可以瀏覽通過 Namecoin 註冊的 .bit 域。

這兩者發生衝突。我的 lxc 容器依賴於dnsmasq在埠 53 上執行的 DNS。同時,我的unbound伺服器必須在埠 53 上執行才能訪問 .bit 域。(請參閱這篇文章的評論,了解使用非標準埠在 resolv.conf 中包含名稱伺服器的可能性;我還在 IRC 頻道上詢問過,基本上了解到將 resolv.conf 指向非標準埠上的 DNS 伺服器是基本上不可能)。

所以我需要做的是創建一個組合的 DNS 伺服器,它支持 LXC 的東西,還可以解析 .bit 域,並在埠 53 上執行它。

可以假設我的unbound伺服器遞歸解析.bit域,並將所有其他域轉發到我的路由器,因此它可以有效地解析所有域。

問題如下:

1:你如何告訴 lxc-net 不要啟動 dnsmasq?

2:我假設unbound在沒有進一步配置的情況下,它不僅可以作為我的 LXC 容器的 DNS 伺服器。如何配置unbound以便它dnsmasq為我的 lxc 容器做些什麼?(這個問題的答案可能是它在由 lxc-net 啟動時使用的 dnsmasq conf 文件的位置(我還沒有找到),以便我可以嘗試在 unbound 下複製該配置,或者其他一些文件具有與 lxc-net 使用的 dnsmasq conf 文件相同的資訊)

好吧,我想我明白了。我會接受這個答案,但請記下我的話,如果在路上證明沒有奏效,我會發布另一個問題。

我仍在這台電腦上執行 3 個(!)DNS 伺服器:dnsmasq它與 LXC 一起提供(不完全是“它來的”,見下文),以及ncdnsNamecoin DNS 伺服器和unbound.

同樣,我只能在埠 53 上執行 1 個 DNS 伺服器,因此我必須為該埠選擇一個或另一個。我可以採用我的unbound設置並將其擴展以執行該dnsmasq操作,反之亦然。因為 dnsmasq 似乎已經被錯綜複雜地配置為與 LXC 一起使用,並且還充當 unbound 無法做到的 DHCP 伺服器,所以我決定以它為起點。

我創建了一個/etc/dnsmasq.conf包含以下內容的文件:

listen-address=127.0.0.1
resolv-file=/etc/resolv.dnsmasq.conf
server=/bit./127.0.0.1#5301

第一行可以dnsmasq監聽我的本地地址,不僅解析 LXC 容器的名稱,還解析我的 PC 的名稱。第二行告訴 dnsmasq 使用一個特殊的解析文件,我從 resolv.conf 複製並粘貼了該文件(如果有人關心,它指向我的路由器的 IP)。第三行也是最後一行添加了一個.bit存根域,其請求被轉發到我unbound在埠 5301 上執行的伺服器。

我還將我的 resolv.conf 文件更改為簡單

nameserver 127.0.0.1

以便所有 DNS 查找都由dnsmasq.

引用自:https://serverfault.com/questions/884210