天天看點

如何在Debian Linux上安裝配置ISC DHCP伺服器

動态主機控制協定(dhcp)給網絡管理者提供了一種便捷的方式,為不斷變化的網絡主機或是動态網絡提供網絡層位址,其中最常用的 dhcp 服務工具是 isc dhcp server。dhcp 服務的目的是給主機提供必要的網絡資訊以便能夠和其他連接配接在網絡中的主機互相通信。dhcp 服務提供的資訊包括:dns 伺服器資訊,網絡位址(ip),子網路遮罩,預設網關資訊,主機名等等。

本教程介紹運作在 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 通路權限。請适當的修改,以便使用下面的指令。(#表示使用的 root 權限)

# apt-get install isc-dhcp-server       [安裝 the isc dhcp server 軟體] 

# dpkg --get-selections isc-dhcp-server     [确認軟體已經成功安裝] 

# dpkg -s isc-dhcp-server           [用另一種方式确認成功安裝] 

如何在Debian Linux上安裝配置ISC DHCP伺服器

install isc dhcp server in debian

2、确認服務軟體已經安裝完成,現在需要提供網絡資訊來配置伺服器,這樣伺服器才能夠根據我們的需要來分發網絡資訊。作為管理者最起碼需要了解的 dhcp 資訊如下:

◆網絡位址

◆子網路遮罩

◆動态配置設定的位址範圍

其他一些伺服器動态配置設定的有用資訊包括:

◆預設網關

◆dns 伺服器 ip 位址

◆域名

◆主機名

◆網絡廣播位址

這隻是能讓 isc dhcp 伺服器處理的選項中非常少的一部分。如果你想檢視所有選項及其描述需要在安裝好軟體後輸入以下指令:

# man dhcpd.conf 

3、 一旦管理者已經确定了這台伺服器分發的所有必要資訊,那麼是時候配置伺服器并且配置設定必要的位址池了。在配置任何位址池或伺服器配置之前,必須配置 dhcp 伺服器偵聽這台伺服器上面的一個接口。

在這台特定的伺服器上,設定好網卡後,dhcp 會偵聽名稱名為'bond0'的接口。請适根據你的實際情況來更改伺服器以及網絡環境。下面的配置都是針對本教程的。

如何在Debian Linux上安裝配置ISC DHCP伺服器

configure isc dhcp network

這行指定的是 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 檔案,指令如下:

對于這台伺服器,我們需要在配置檔案頂部配置一些全局網絡設定,這樣就不用到每個位址池中去單獨設定了。

如何在Debian Linux上安裝配置ISC DHCP伺服器

configure isc ddns

◆我們花一點時間來解釋一下這些選項,在本教程中雖然它們是一些全局設定,但是也可以單獨的為某一個位址池進行配置。

◆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 stanza的注釋。

通過去掉關鍵字 authoritative 前面的 ‘#’,取消注釋全局權威關鍵字。這台伺服器将是它所管理網絡裡面的唯一權威。

如何在Debian Linux上安裝配置ISC DHCP伺服器

enable isc 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 通路權限。

如何在Debian Linux上安裝配置ISC DHCP伺服器

configure dhcp pools and networks

目前這個例子是給用 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 

如何在Debian Linux上安裝配置ISC DHCP伺服器

check dhcp listening port這裡輸出的結果表明 dhcpd(dhcp 服務守護程序)正在運作并且偵聽67端口。由于在 /etc/services 檔案中67端口的映射,是以輸出中的67端口實際上被轉換成了 “bootps”。

在大多數的系統中這是非常常見的,現在伺服器應該已經為網絡連接配接做好準備,我們可以将一台主機接入網絡請求dhcp位址來驗證服務是否正常。

測試用戶端連接配接8、現在許多系統使用網絡管理器來維護網絡連接配接狀态,是以這個裝置應該預先配置好的,隻要對應的接口處于活躍狀态就能夠擷取 dhcp。

然而當一台裝置無法使用網絡管理器時,它可能需要手動擷取 dhcp 位址。下面的幾步将示範怎樣手動擷取以及如何檢視伺服器是否已經按需要分發位址。

‘ifconfig‘工具能夠用來檢查接口的配置。這台被用來測試的 dhcp 伺服器的裝置,它隻有一個網絡擴充卡(網卡),這塊網卡被命名為 ‘eth0‘。

# ifconfig eth0 

如何在Debian Linux上安裝配置ISC DHCP伺服器

check network interface ip address從輸出結果上看,這台裝置目前沒有 ipv4 位址,這樣很便于測試。我們把這台裝置連接配接到 dhcp 伺服器并發出一個請求。這台裝置上已經安裝了一個名為 ‘dhclient‘ 的dhcp用戶端工具。因為作業系統各不相同,是以這個用戶端軟體也是互不一樣的。

# dhclient eth0 

如何在Debian Linux上安裝配置ISC DHCP伺服器

request ip address from dhcp目前 'inet addr:' 字段中顯示了屬于 172.27.60.0 網絡位址範圍内的 ipv4 位址。值得欣慰的是目前網絡還配置了正确的子網路遮罩并且分發了廣播位址。

到這裡看起來還都不錯,讓我們來測試一下,看看這台裝置收到新 ip 位址是不是由伺服器發出的。這裡我們參照伺服器的日志檔案來完成這個任務。雖然這個日志的内容有幾十萬條,但是裡面隻有幾條是用來确定伺服器是否正常工作的。這裡我們使用一個工具 ‘tail’,它隻顯示日志檔案的最後幾行,這樣我們就可以不用拿一個文本編輯器去檢視所有的日志檔案了。指令如下:

# tail /var/log/syslog 

如何在Debian Linux上安裝配置ISC DHCP伺服器

check dhcp logsok!伺服器記錄表明它分發了一個位址給這台主機 (hrtdebxensrv)。伺服器按預期運作,給它充當權威伺服器的網絡分發了适合的網絡位址。至此 dhcp 伺服器搭建成功并且運作。如果有需要你可以繼續配置其他的網絡,排查故障,確定安全。

在以後的debian教程中我會講一些新的 isc-dhcp-server 功能。有時間的話我将寫一篇關于 bind9 和 ddns 的教程,融入到這篇文章裡面。

作者:rob turner

來源:51cto

繼續閱讀