天天看點

CentOS安裝及配置DHCP伺服器

有關dhcp伺服器的配置一直打算學習,這幾天終于抽出時間來專門學習這個知識點。

dhcp:動态主機配置協定,在此就不多做介紹。不清楚的童鞋,可以去百度下。

本次實驗os:centos6.5 64bit

雙網卡:eth0為外網網卡,eth1為内網網卡

eth0網卡外網可以正常連接配接網際網路,如下:

CentOS安裝及配置DHCP伺服器

要想配置dhcp服務,我們要先來安裝dhcp軟體包,如下:

yum -y install dhcp

CentOS安裝及配置DHCP伺服器
CentOS安裝及配置DHCP伺服器

檢查安裝dhcp軟體包,所生成的檔案。如下:

rpm -ql |dhcp

CentOS安裝及配置DHCP伺服器

通過上圖我們可以看到有dhcp服務的配置檔案以及dhcp服務的啟動檔案。

通過上圖我們可以知道,dhcp的配置檔案為/etc/dhcp/dhcpd.conf。但該配置檔案内容預設是空的,我們可以從dhcp安裝目錄下複制一個到/etc/dhcp/下。如下:

vi /etc/dhcp/dhcpd.conf

CentOS安裝及配置DHCP伺服器

cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

CentOS安裝及配置DHCP伺服器
CentOS安裝及配置DHCP伺服器

dhcpd.conf檔案有兩大部分,分别是全局配置和局部配置:

1、當全局配置與局部配置發生沖突時,局部配置優先級更高。

2、配置檔案中每一行必須以分号結尾,因為在啟動dhcpd時是不會報錯的,隻能通過檢視日志檔案/var/log/message得知配置檔案是否有問題。

3、局部配置必須包含在一對中括号之間。

●常用參數:

●ddns-update-style (none|interim|ad-hoc):定義所支援的dns動态更新類型,該參數必選且必須放在第一行且隻能在全局配置中使用。

●default-lease-time:用戶端ip預設租約時間,機關秒,該參數可以在全局配置、局部配置均可使用。

●max-lesase-time:用戶端ip租約時間的最大值,機關秒,該參數可以在全局配置、局部配置均可使用。

●subnet 網絡号 netmask 子網路遮罩 {…..}:定義作用域。

●range 起始ip 結束ip:動态ip位址範圍。

●option routes ip位址:預設網關,該選項可以在全局配置、局部配置均可使用。

●option subnet-mask 子網路遮罩:預設子網路遮罩,該選項可以在全局配置、局部配置均可使用。

●option domain-name-servers:dns伺服器位址,該選項可以在全局配置、局部配置均可使用。

●option domain-name:dns字尾,該選項可以在全局配置、局部配置均可使用。

●host 名稱 {…..} 為特殊機器保留ip位址。

相關的事例說明如下:

ddns-update-style none;

subnet 10.5.5.0 netmask 255.255.255.224 {設定子網聲明

range 10.5.5.26 10.5.5.30;設定dhcp的ip位址池

option domain-name-servers ns1.internal.example.org;設定dns伺服器位址

option domain-name “internal.example.org”;為用戶端設定dns字尾

option routers 10.5.5.1;設定預設網關為192.168.2.1

option broadcast-address 10.5.5.31;設定dhcp的廣播位址

default-lease-time 600;設定用戶端預設的位址租期

max-lease-time 7200;設定用戶端最長的位址租期

}

host ubuntu {為mac位址00:0c:29:ee:38:80的機器保留ip位址10.5.5.3

hardware ethernet 00:0c:29:ee:38:80;

fixed-address 10.5.5.3;

本次實驗的配置如下:

more /etc/dhcp/dhcpd.conf

CentOS安裝及配置DHCP伺服器

option domain-name “ilanni.com”;

option domain-name-servers 192.168.1.1,223.5.5.5;

default-lease-time 600;

max-lease-time 7200;

subnet 10.5.5.0 netmask 255.255.255.0 {

range 10.5.5.2 10.5.5.254;

option domain-name-servers 192.168.1.1;

option routers 10.5.5.1;

host ubuntu{

注意有關作用域的配置,其實模版配置檔案中。是有幾個版本的,如下:

CentOS安裝及配置DHCP伺服器

我們使用的最後一個配置選項,以上配置檔案儲存後,我們現在來設定dhcp伺服器兩張網卡的網絡配置。

我們來設定eth0外網網卡,具體配置如下:

more /etc/sysconfig/network-scripts/ifcfg-eth0

CentOS安裝及配置DHCP伺服器

eth1内網網卡,具體配置如下:

more /etc/sysconfig/network-scripts/ifcfg-eth1

CentOS安裝及配置DHCP伺服器

同時因為本機是多網卡機器,是以我們在此還要配置dhcp監聽的網卡。如下:

vi /etc/sysconfig/dhcpd

CentOS安裝及配置DHCP伺服器

我們再前邊已經提到過eth1網卡時内網網卡,是以在dhcp監聽的網卡中我們填寫的是eth1.

以上配置完畢後,我們現在來啟動dhcp服務,如下:

CentOS安裝及配置DHCP伺服器

上述配置檔案中,我們特别為mac位址00:0c:29:ee:38:80機器預留10.5.5.3這個ip位址,其他的機器我們沒有做此設定。

我們來先看其他機器,如下:

CentOS安裝及配置DHCP伺服器

通過上圖,我們可以看到此機器已經正常擷取ip位址及相關的資訊。

再來檢視那台我們做過保留的ip位址的機器,如下:

CentOS安裝及配置DHCP伺服器

通過上圖,我們可以看到該機器通過手工設定ip位址的,而且ip位址就是我們預留的。

按道理說,到此我們的dhcp伺服器已經配置完畢。但是我們會發現,已經獲得ip位址的機器是不能上網的,如下:

CentOS安裝及配置DHCP伺服器

這個已經和dhcp服務本身沒有關系了,而是需要我們再dhcp所在的伺服器開啟nat服務。

為了操作友善,我們先暫時關閉dhcp所在伺服器的防火牆,如下:

/etc/init.d/iptables stop

CentOS安裝及配置DHCP伺服器

開啟ip轉發功能,如下:

CentOS安裝及配置DHCP伺服器

然後在執行sysctl –p指令:

CentOS安裝及配置DHCP伺服器

注意圖中的報錯資訊,這個是因為沒有加載bridge子產品導緻。現在我們來手工加載該子產品,如下:

modprobe bridge

lsmod |grep bridge

CentOS安裝及配置DHCP伺服器

然後再次執行sysctl –p指令,如下:

CentOS安裝及配置DHCP伺服器

以上操作完畢後,再執行如下iptables指令,開啟iptables的nat網絡位址轉換功能。如下:

iptables -t nat -a postrouting -o eth0 -j masquerade

CentOS安裝及配置DHCP伺服器

其中eth0為外網網卡。

通過這條指令就可以開啟iptables的nat位址轉換的功能,這條指令的意思是當有資料包要轉發出去時,iptables就會将ip位址轉換為eth0接口的ip位址。上邊這條指令的好處在于不必理會接口的ip位址是什麼,轉換會自動進行。

或者以下指令:

iptables –table nat –append postrouting –out-interface eth0 -j masquerade

iptables –append forward –in-interface eth1 -j accept

現在我們再來看看,用戶端是否可以正常連接配接網際網路。如下:

CentOS安裝及配置DHCP伺服器

以上對防火牆的操作是暫時的,下次重新開機dhcp伺服器用戶端還是無法正常連接配接網際網路。

我們可以通過/etc/init.d/iptables save,把該規則進行儲存。如下:

/etc/init.d/iptables save

more /etc/sysconfig/iptables

CentOS安裝及配置DHCP伺服器

最後我們來檢視租約的資料庫檔案/var/lib/dhcpd/dhcpd.leases,如下:

CentOS安裝及配置DHCP伺服器

到此我們有關dhcp伺服器的相關配置已經全部完成。在這還有一部分知識沒有介紹,是和pxe有關的。這部分,我們會在kickstart無人值守安裝linux中做介紹。

繼續閱讀