在 Debian Linux 上安裝配置 ISC DHCP 伺服器
本教程介紹運行在 Debian 7.7 上 4.2.4 版的 ISC-DHCP-Server 如何管理多個虛擬區域網(VLAN),也可以非常容易應用到單一網路上。
測試用的網路是通過思科路由器使用傳統的方式來管理 DHCP 租約地址的。目前有 12 個 VLAN 需要通過集中式伺服器來管理。把 DHCP 的任務轉移到一個專用的伺服器上,路由器可以收回相應的資源,把資源用到更重要的任務上,比如路由定址,訪問控制列表,流量監測以及網路地址轉換等。
另一個將 DHCP 服務轉移到專用伺服器的好處,以後會講到,它可以建立動態域名伺服器(DDNS),這樣當主機從伺服器請求 DHCP 地址的時候,這樣新主機的主機名就會被添加到 DNS 系統裡面。
安裝和配置 ISC DHCP 伺服器
1、使用 apt 工具用來安裝 Debian 軟體倉庫中的 ISC 軟體,來創建這個多宿主伺服器。與其他教程一樣需要使用 root 或者 sudo 訪問許可權。請適當的修改,以便使用下面的命令。(LCTT 譯註:下面中括弧裡面是注釋,使用的時候請刪除,#表示使用的 root 許可權)
# apt-get install isc-dhcp-server [安裝 the ISC DHCP Server 軟體]
# dpkg --get-selections isc-dhcp-server [確認軟體已經成功安裝]
# dpkg -s isc-dhcp-server [用另一種方式確認成功安裝]
2、 確認服務軟體已經安裝完成,現在需要提供網路信息來配置伺服器,這樣伺服器才能夠根據我們的需要來分發網路信息。作為管理員最起碼需要了解的 DHCP 信息如下:
- 網路地址
- 子網掩碼
- 動態分配的地址範圍
其他一些伺服器動態分配的有用信息包括:
- 默認網關
- DNS 伺服器 IP 地址
- 域名
- 主機名
- 網路廣播地址
這只是能讓 ISC DHCP 伺服器處理的選項中非常少的一部分。如果你想查看所有選項及其描述需要在安裝好軟體後輸入以下命令:
# man dhcpd.conf
3、 一旦管理員已經確定了這台伺服器分發的所有必要信息,那麼是時候配置伺服器並且分配必要的地址池了。在配置任何地址池或伺服器配置之前,必須配置 DHCP 伺服器偵聽這台伺服器上面的一個介面。
在這台特定的伺服器上,設置好網卡後,DHCP 會偵聽名稱名為'bond0'
的介面。請適根據你的實際情況來更改伺服器以及網路環境。下面的配置都是針對本教程的。
這行指定的是 DHCP 服務偵聽介面(一個或多個)上的 DHCP 流量。修改主配置文件,分配適合的 DHCP 地址池到所需要的網路上。主配置文件在 /etc/dhcp/dhcpd.conf。用文本編輯器打開這個文件
# nano /etc/dhcp/dhcpd.conf
這個配置文件可以配置我們所需要的地址池/主機。文件頂部有 『ddns-update-style『 這樣一句,在本教程中它設置為 『none『。在以後的教程中會講到動態 DNS,ISC-DHCP-Server 將會與 BIND9 集成,它能夠使主機名更新指向到 IP 地址。
4、 接下來的部分是管理員配置全局網路設置,如 DNS 域名,默認的租約時間,IP地址,子網的掩碼,以及其它。如果你想了解所有的選項,請閱讀 man 手冊中的 dhcpd.conf 文件,命令如下:
# man dhcpd.conf
對於這台伺服器,我們需要在配置文件頂部配置一些全局網路設置,這樣就不用到每個地址池中去單獨設置了。
我們花一點時間來解釋一下這些選項,在本教程中雖然它們是一些全局設置,但是也可以單獨的為某一個地址池進行配置。
- option domain-name 「comptech.local」; – 所有使用這台 DHCP 伺服器的主機,都將成為 DNS 域 「comptech.local」 的一員
- option domain-name-servers 172.27.10.6; DHCP 向所有配置這台 DHCP 伺服器的的網路主機分發 DNS 伺服器地址為 172.27.10.6
- option subnet-mask 255.255.255.0; – 每個網路設備都分配子網掩碼 255.255.255.0 或 /24
- default-lease-time 3600; – 默認有效的地址租約時間(單位是秒)。如果租約時間耗盡,那麼主機可以重新申請租約。如果租約完成,那麼相應的地址也將被儘快回收。
- max-lease-time 86400; – 這是一台主機所能租用的最大的租約時間(單位為秒)。
- ping-check true; – 這是一個額外的測試,以確保伺服器分發出的網路地址不是當前網路中另一台主機已使用的網路地址。
- ping-timeout; – 在判斷地址以前沒有使用過前,伺服器將等待 ping 響應多少秒。
- ignore client-updates; 現在這個選項是可以忽略的,因為 DDNS 在前面已在配置文件中已經被禁用,但是當 DDNS 運行時,這個選項會忽略主機更新其 DNS 主機名的請求。
5、 文件中下面一行是權威 DHCP 所在行。這行的意義是如果伺服器是為文件中所配置的網路分發地址的伺服器,那麼取消對該 權威關鍵字 的注釋。
通過去掉關鍵字 authoritative 前面的 『#』,取消注釋全局權威關鍵字。這台伺服器將是它所管理網路裡面的唯一權威。
默認情況下伺服器被假定為不是網路上的權威伺服器。之所以這樣做是出於安全考慮。如果有人因為不了解 DHCP 服務的配置,導致配置不當或配置到一個不該出現的網路裡面,這都將帶來非常嚴重的連接問題。這行還可用在每個網路中單獨配置使用。也就是說如果這台伺服器不是整個網路的 DHCP 伺服器,authoritative 行可以用在每個單獨的網路中,而不是像上面截圖中那樣的全局配置。
6、 這一步是配置伺服器將要管理的所有 DHCP 地址池/網路。簡短起見,本教程只講到配置的地址池之一。作為管理員需要收集一些必要的網路信息(比如域名,網路地址,有多少地址能夠被分發等等)
以下這個地址池所用到的信息都是管理員收集整理的:網路 ID 172.27.60.0, 子網掩碼 255.255.255.0 或 /24, 默認子網網關 172.27.60.1,廣播地址 172.27.60.255.0 。
以上這些信息對於構建 dhcpd.conf 文件中新網路非常重要。使用文本編輯器修改配置文件添加新網路進去,這裡我們需要使用 root 或 sudo 訪問許可權。
# nano /etc/dhcp/dhcpd.conf
當前這個例子是給用 VMWare 創建的虛擬伺服器分配 IP 地址。第一行顯示是該網路的子網掩碼。括弧裡面的內容是 DHCP 伺服器應該提供給網路上面主機的所有選項。
第一行, range 172.27.60.50 172.27.60.254; 這一行顯示的是,DHCP 服務在這個網路上能夠給主機動態分發的地址範圍。
第二行,option routers 172.27.60.1; 這裡顯示的是給網路裡面所有的主機分發的默認網關地址。
最後一行, option broadcast-address 172.27.60.255; 顯示當前網路的廣播地址。這個地址不能被包含在要分發放的地址範圍內,因為廣播地址不能分配到一個主機上面。
必須要強調的是每行的結尾必須要用(;)來結束,所有創建的網路必須要在 {} 裡面。
7、 如果要創建多個網路,繼續創建完它們的相應選項後保存文本文件即可。配置完成以後如果有更改,ISC-DHCP-Server 進程需要重啟來使新的更改生效。重啟進程可以通過下面的命令來完成:
# service isc-dhcp-server restart
這條命令將重啟 DHCP 服務,管理員能夠使用幾種不同的方式來檢查伺服器是否已經可以處理 dhcp 請求。最簡單的方法是通過 lsof 命令來查看伺服器是否在偵聽67埠,命令如下:
# lsof -i :67
這裡輸出的結果表明 dhcpd(DHCP 服務守護進程)正在運行並且偵聽67埠。由於在 /etc/services 文件中67埠的映射,所以輸出中的67埠實際上被轉換成了 「bootps」。
在大多數的系統中這是非常常見的,現在伺服器應該已經為網路連接做好準備,我們可以將一台主機接入網路請求DHCP地址來驗證服務是否正常。
測試客戶端連接
8、 現在許多系統使用網路管理器來維護網路連接狀態,因此這個設備應該預先配置好的,只要對應的介面處於活躍狀態就能夠獲取 DHCP。
然而當一台設備無法使用網路管理器時,它可能需要手動獲取 DHCP 地址。下面的幾步將演示怎樣手動獲取以及如何查看伺服器是否已經按需要分發地址。
『ifconfig『工具能夠用來檢查介面的配置。這台被用來測試的 DHCP 伺服器的設備,它只有一個網路適配器(網卡),這塊網卡被命名為 『eth0『。
# ifconfig eth0
從輸出結果上看,這台設備目前沒有 IPv4 地址,這樣很便於測試。我們把這台設備連接到 DHCP 伺服器並發出一個請求。這台設備上已經安裝了一個名為 『dhclient『 的DHCP客戶端工具。因為操作系統各不相同,所以這個客戶端軟體也是互不一樣的。
# dhclient eth0
當前 'inet addr:'
欄位中顯示了屬於 172.27.60.0 網路地址範圍內的 IPv4 地址。值得欣慰的是當前網路還配置了正確的子網掩碼並且分發了廣播地址。
到這裡看起來還都不錯,讓我們來測試一下,看看這台設備收到新 IP 地址是不是由伺服器發出的。這裡我們參照伺服器的日誌文件來完成這個任務。雖然這個日誌的內容有幾十萬條,但是裡面只有幾條是用來確定伺服器是否正常工作的。這裡我們使用一個工具 『tail』,它只顯示日誌文件的最後幾行,這樣我們就可以不用拿一個文本編輯器去查看所有的日誌文件了。命令如下:
# tail /var/log/syslog
OK!伺服器記錄表明它分發了一個地址給這台主機 (HRTDEBXENSRV)。伺服器按預期運行,給它充當權威伺服器的網路分發了適合的網路地址。至此 DHCP 伺服器搭建成功並且運行。如果有需要你可以繼續配置其他的網路,排查故障,確保安全。
在以後的Debian教程中我會講一些新的 ISC-DHCP-Server 功能。有時間的話我將寫一篇關於 Bind9 和 DDNS 的教程,融入到這篇文章裡面。
via: http://www.tecmint.com/install-and-configure-multihomed-isc-dhcp-server-on-debian-linux/
作者:Rob Turner 譯者:ivo-wang 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive