FreeBSD 集成
FreeBSD 完全地集成了 ISC 或 OpenBSD 的 DHCP 客戶端, dhclient (取決於您運行的 FreeBSD 版本)。 DHCP 客戶端被安裝程序直接支持, 並且是基本系統的一部分。 這使得您不再需要去了解那些已經運行了 DHCP 服務器的網絡的具體配置參數。 從 FreeBSD 3.2 開始, 每一個發行版中均包含 dhclient。
sysinstall 能夠支持 DHCP。 在 sysinstall 中配置網絡接口時, 它詢問的第二個問題便是: “Do you want to try DHCP configuration of the interface? (您是否希望在此接口上嘗試 DHCP 配置?)”。 如果做肯定的回答, 則將運行 dhclient, 一旦成功,則將自動地填寫網絡配置信息。
要在系統啟動時使用 DHCP, 您必須做兩件事:
您的內核中, 必須包含 bpf 設備。 如果需要這樣做, 需要將 device bpf 添加到內核的編譯配置文件中, 並重新編譯內核。
bpf 設備已經是 FreeBSD 發行版中默認的 GENERIC 內核的一部分了, 因此如果您沒有對內核進行定制,則不用創建一份新的內核配置文件, DHCP 就能工作了。
注意: 對於那些安全意識很強的人來說, 您應該知道 bpf 也是包偵聽工具能夠正確工作的條件之一 (當然, 它們還需要以 root 身份運行才行)。 bpf 是 使用 DHCP 所必須的, 但如果您對安全非常敏感,則很可能會有理由不把 bpf 加入到您的內核配置中,直到您真的需要使用 DHCP 為止。
CODE:ifconfig_fxp0="DHCP"注意: 務必將 fxp0 替換為您希望自動配置的網絡接口的名字, 您可以在 第 11.8 節 找到更進一步的介紹。
如果您希望使用另一位置的 dhclient, 或者需要給 dhclient 傳遞其他參數, 還可以添加下面的配置 (根據需要進行修改):
CODE:dhcp_program="/sbin/dhclient"
dhcp_flags=""DHCP 服務器, dhcpd, 是作為 net/isc-dhcp3-server port 的一部分提供的。 這個 port 包括了 ISC DHCP 服務器及其文檔。
文件
/sbin/dhclient
dhclient 是一個靜態連編的, 它被安裝到 /sbin 中。 dhclient(8) 聯機手冊給出了關於 dhclient 的進一步細節。
/sbin/dhclient-script
dhclient-script 是一個 FreeBSD 專用的 DHCP 客戶端配置腳本。在 dhclient-script(8) 中對它進行了描述, 但一般來說, 用戶不需要對其進行任何修改, 就能夠讓一切正常運轉了。
/var/db/dhclient.leases
DHCP 客戶程序會維護一個數據庫來保存有效的 lease, 它們被以日志的形式保存到這個文件中。 dhclient.leases(5) 給出了更為細致的介紹。
安裝和配置 DHCP 服務器
DHCP 套件中的服務器部分並沒有作為 FreeBSD 的一部分來提供, 因此您需要安裝 net/isc-dhcp3-server port 才能提供這個服務。
安裝 DHCP 服務器
為了在您的 FreeBSD 系統上進行配置以便作為 DHCP 服務器來使用, 需要把 bpf(4) 設備編譯進內核。 要完成這項工作, 需要將 device bpf 加入到您的內核配置文件中, 並重新聯編內核。
bpf 設備是 FreeBSD 所附帶的 GENERIC 內核中已經聯入的組件, 因此您並不需要為了讓 DHCP 正常工作而特別地定制內核。
注意: 如果您有較強的安全意識, 應該注意 bpf 同時也是讓聽包程序能夠正確工作的設備 (盡管這類程序仍然需要以特權用戶身份運行)。 bpf 是 使用 DHCP 所必需的, 但如果您對安全非常敏感, 您可能會不希望將 bpf 放進內核, 直到您真的認為 DHCP 是必需的為止。
配置 DHCP 服務器
option domain-name-servers 192.168.4.100;
option subnet-mask 255.255.255.0;
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.129 192.168.4.254;
option routers 192.168.4.1;
}
host mailhost {
hardware ethernet 02:03:04:05:06:07;
}[/code]
這個選項用於指定一組客戶機使用的 DNS 服務器, 它們之間以逗號分隔。
提供給客戶機的子網掩碼。
客戶機可以請求租約的有效期, 而如果沒有, 則服務器將指定一個租約有效期, 也就是這個值 (單位是秒)。
這是服務器允許租出地址的最大時長。 如果客戶機請求了更長的租期, 則它將得到一個地址,但其租期僅限於 max-lease-time 秒。
這個選項用於指定 DHCP 服務器在一個地址被接受或釋放時是否應對應嘗試更新 DNS。 在 ISC 實現中, 這一選項是 必須指定的。
指定地址池中可以用來分配給客戶機的 IP 地址范圍。 在這個范圍之間, 以及其邊界的 IP 地址將分配給客戶機。
定義客戶機的默認網關。
主機的硬件 MAC 地址 (這樣 DHCP 服務器就能夠在接到請求時知道請求的主機身份)。
指定總是得到同一 IP 地址的主機。 請注意在此處使用主機名是對的, 因為 DHCP 服務器會在返回租借地址信息之前自行解析主機名。
CODE:dhcpd_enable="YES"
dhcpd_ifaces="dc0"此處的 dc0 接口名應改為 DHCP 服務器需要監聽 DHCP 客戶端請求的接口 (如果有多個, 則用空格分開)。
接下來, 可以用下面的命令來啟動服務:
CODE:# /usr/local/etc/rc.d/isc-dhcpd.sh start如果未來您需要修改服務器的配置, 請務必牢記發送 SIGHUP 信號給 dhcpd 並 不會 導致配置文件的重新加載,而這在其他服務程序中則是比較普遍的約定。 您需要發送 SIGTERM 信號來停止進程, 然後使用上面的命令來重新啟動它。
文件
/usr/local/sbin/dhcpd
dhcpd 是靜態連接的, 並安裝到 /usr/local/sbin 中。 隨 port 安裝的 dhcpd(8) 聯機手冊提供了關於 dhcpd 更為詳盡的信息。
/var/db/dhcpd.leases
DHCP 服務器會維護一個它簽發的租用地址數據庫, 並保存在這個文件中,這個文件是以日志的形式保存的。 隨 port 安裝的 dhcpd.leases(5) 聯機手冊提供了更詳細的描述。
/usr/local/sbin/dhcrelay
dhcrelay 在更為復雜的環境中, 可以用來支持使用 DHCP 服務器轉發請求給另一個獨立網絡上的 DHCP 服務器。 如果您需要這個功能, 需要安裝 net/isc-dhcp3-relay port。 dhcrelay(8) 聯機手冊提供了更為詳盡的介紹。