Networking

dnsmasq 中的靜態 IP 和 DHCP 租約?

  • June 8, 2020

我在路由器的 DMZ 上設置了幾個 Raspberry Pi(不用擔心所有埠都已關閉);我的路由器使用 DNSMasq 作為 DNS,所以我添加了 MAC 地址;pi 的主機名和 IP 到 dhcp 靜態租約。

話雖如此,我只是在學習使用 dhcpcd;我習慣於使用舊的方式/etc/networking/interfaces來配置 IP 地址分配。

在 pi 本身上,我已將它們配置/etc/dhcpcd.conf為具有靜態 IP 地址,並將它們指向我的 DNSMasq DNS 伺服器。

這樣做似乎有點奇怪,但是這樣做可以嗎?

通過這種方式,我的 pi 獲得了 DNS 記錄(以便設備可以找到彼此)和靜態 IP 地址;我想我可以配置它,以便它使用dhcpcd客戶端根據 MAC 地址提取 IP。

也就是說,我真的不知道如何配置dhcpcd以從 DNSMasq 中提取它的 IP 地址;我正計劃/etc/hosts為 pi 添加額外的 DNS 記錄(可能來自)以獲取單獨的 nginx伺服器塊,所以在配置dhcpcd靜態 DHCP 租約的同時配置靜態 IP 是否可以?或者這很奇怪,我不應該那樣做?

我對你的設置有點困惑。也許我誤解了它。

無論如何,通常的做法是在一個中央位置配置所有內容(在您的情況下,這可能應該是您的路由器)。

然後你不必關心 RaspPi 的配置。事實上,您可以對它們進行相同的配置;所有差異都將由 RaspPi 使用 DHCP 解決。

如果您查看dnsmasq 的手冊頁,它可以閱讀/etc/ethersman ethers了解詳細資訊)根據 RaspPi 的 MAC 地址為每個 RaspPi 提供一個靜態 IP。它還讀取/etc/hosts為這些靜態 IP 地址提供 DNS 解析,因此您可以根據需要命名您的 RaspPi。

如果你這樣做,RaspPi 上一個簡單的開箱即用的 dhcp 客戶端就足夠了。

你不需要dhcpd任何地方。

編輯

因為當已經靜態分配了一個 ip 時,為什麼還要通過 DHCP 分配一個 ip?

因為您不想單獨配置每個 RaspPi。“靜態”並不意味著“本地配置”。靜態意味著“每台機器總是獲得相同的 IP 地址”。您可以通過查看機器的 MAC 地址來使用 DHCP 來做到這一點。

想像一下,你有一千個 RaspPi。你單獨管理這些嗎?不,您在一個中心位置管理它們,並在其他方面保持它們相同。

原因是我不知道如何設置 dhcpcd 去尋找來自 dnsmasq 的地址。

我不明白你為什麼認為你需要dhcpd在 RaspPi 上執行。如果他們需要通過 DHCP 獲取其他資訊,則需要DHCP 客戶端,而不是DHCP 伺服器。如果您想在本地為它們配置每個靜態地址,那麼您可以再次在沒有DHCP 伺服器的情況下執行此操作。

如果您還想通過在它們上執行 DHCP 伺服器來為它們本地配置每個 DNS 名稱,那麼這將不起作用。(儘管您可以通過在它們上執行DHCP 客戶端並讓它們在 DHCP 請求中告訴中央 DHCP 伺服器(您的路由器)它們的主機名來使其工作)。

對於 DNS,您需要有一個中央伺服器來存放所有資訊。

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