有關dhcp伺服器的配置一直打算學習,這幾天終于抽出時間來專門學習這個知識點。
dhcp:動态主機配置協定,在此就不多做介紹。不清楚的童鞋,可以去百度下。
本次實驗os:centos6.5 64bit
雙網卡:eth0為外網網卡,eth1為内網網卡
eth0網卡外網可以正常連接配接網際網路,如下:
要想配置dhcp服務,我們要先來安裝dhcp軟體包,如下:
yum -y install dhcp
檢查安裝dhcp軟體包,所生成的檔案。如下:
rpm -ql |dhcp
通過上圖我們可以看到有dhcp服務的配置檔案以及dhcp服務的啟動檔案。
通過上圖我們可以知道,dhcp的配置檔案為/etc/dhcp/dhcpd.conf。但該配置檔案内容預設是空的,我們可以從dhcp安裝目錄下複制一個到/etc/dhcp/下。如下:
vi /etc/dhcp/dhcpd.conf
cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
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
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{
注意有關作用域的配置,其實模版配置檔案中。是有幾個版本的,如下:
我們使用的最後一個配置選項,以上配置檔案儲存後,我們現在來設定dhcp伺服器兩張網卡的網絡配置。
我們來設定eth0外網網卡,具體配置如下:
more /etc/sysconfig/network-scripts/ifcfg-eth0
eth1内網網卡,具體配置如下:
more /etc/sysconfig/network-scripts/ifcfg-eth1
同時因為本機是多網卡機器,是以我們在此還要配置dhcp監聽的網卡。如下:
vi /etc/sysconfig/dhcpd
我們再前邊已經提到過eth1網卡時内網網卡,是以在dhcp監聽的網卡中我們填寫的是eth1.
以上配置完畢後,我們現在來啟動dhcp服務,如下:
上述配置檔案中,我們特别為mac位址00:0c:29:ee:38:80機器預留10.5.5.3這個ip位址,其他的機器我們沒有做此設定。
我們來先看其他機器,如下:
通過上圖,我們可以看到此機器已經正常擷取ip位址及相關的資訊。
再來檢視那台我們做過保留的ip位址的機器,如下:
通過上圖,我們可以看到該機器通過手工設定ip位址的,而且ip位址就是我們預留的。
按道理說,到此我們的dhcp伺服器已經配置完畢。但是我們會發現,已經獲得ip位址的機器是不能上網的,如下:
這個已經和dhcp服務本身沒有關系了,而是需要我們再dhcp所在的伺服器開啟nat服務。
為了操作友善,我們先暫時關閉dhcp所在伺服器的防火牆,如下:
/etc/init.d/iptables stop
開啟ip轉發功能,如下:
然後在執行sysctl –p指令:
注意圖中的報錯資訊,這個是因為沒有加載bridge子產品導緻。現在我們來手工加載該子產品,如下:
modprobe bridge
lsmod |grep bridge
然後再次執行sysctl –p指令,如下:
以上操作完畢後,再執行如下iptables指令,開啟iptables的nat網絡位址轉換功能。如下:
iptables -t nat -a postrouting -o eth0 -j masquerade
其中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
現在我們再來看看,用戶端是否可以正常連接配接網際網路。如下:
以上對防火牆的操作是暫時的,下次重新開機dhcp伺服器用戶端還是無法正常連接配接網際網路。
我們可以通過/etc/init.d/iptables save,把該規則進行儲存。如下:
/etc/init.d/iptables save
more /etc/sysconfig/iptables
最後我們來檢視租約的資料庫檔案/var/lib/dhcpd/dhcpd.leases,如下:
到此我們有關dhcp伺服器的相關配置已經全部完成。在這還有一部分知識沒有介紹,是和pxe有關的。這部分,我們會在kickstart無人值守安裝linux中做介紹。