Linux 5.4 下dhcp伺服器學習之伺服器配置(一)
想要學好DHCP伺服器的内容,對于它的基本概念和配置内容我們都要清楚。那麼這裡我們先來簡單了解一下DHCP。DHCP基于客戶/伺服器模式。當DHCP用戶端啟動時,它會自動與DHCP伺服器通信,由DHCP伺服器為DHCP用戶端提供自動配置設定IP位址的服務。當然進階的DHCP,不光隻是配置設定位址這麼簡單,今天我們的課程隻是架設一個普通的DHCP的伺服器, client端能擷取到上網必須的網絡配置資訊。安裝了DHCP服務軟體的伺服器稱為DHCP伺服器,而啟用了DHCP功能的客戶機稱為DHCP用戶端,DHCP伺服器是以位址租約的方式為DHCP用戶端提供服務的,它有以下兩種方式:限定租期和永久租用。學DHCP伺服器,就一定要知道DHCP伺服器的工作原理:
DHCP DISCOVER(DHCP發現)
DHCP OFFER(DHCP提供)
DHCPREQUEST(DHCP請求)
DHCPACK(DHCP确認)
這個4個步驟,是client擷取IP位址必經的步驟
DHCP提供的時候,伺服器已經給client配置設定了IP位址,第二部分分給client的IP位址是臨時的,client得到這個IP位址後,會發出DHCP請求,請求租用這個位址,伺服器收到請求後,就會正式把這個位址配置設定給client,繼而向client發送DHCP确認。這個四步主要是應對同一網絡多個DHCP伺服器。
背景程序:dhcpd
腳本:/etc/rc.d/init.d/dhcpd
使用端口:67
所需RPM包:dhcp
相關RPM包:
dhcp-devel-3.0.5-7.el5.i386.rpmdhcpv6-0.10-33.el5.i386.rpmdhcpv6_client-0.10-33.el5.i386.rpm配置檔案:/etc/dhcpd.conf
日志:/var/log/xferlog
再提示一點吧,網絡啟動方式也叫bootpc,這樣擷取的IP位址是不會受伺服器的租期限制的,它永遠有效好了,我們先安裝DHCP伺服器
一、下載下傳或從CD光牒上找到DHCP服務安裝包。
二、安裝(dhcp*代表其安裝包名稱):
# rpm -ivh dhcp* 三、配置DHCP檔案:
複制/usr/share/doc/dhcp*/dhcpd.conf.sample 到/etc目錄下,更名為:dhcpd.conf# cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcpd.conf當然,也可以先vi /etc/dhcpd.conf,然後在末行模式運作以下指令:r /usr/share/doc/dhcp*/dhcpd.conf.sample這樣這個dhcpd.conf.sample檔案的内容就導進來了。打開dhcpd.conf,要修改的幾個地方:subnet 後面接的是你所定義的網段,要與本機的IP位址同網段,每一語句以分号“;”結尾,不要忘記。例如:我的IP是“192.168.2.234”,
下面是我的配置檔案:
ddns-update-style interim;
ignore client-updates;
subnet 192.168.2.0
netmask 255.255.255.0
{
option routers 192.168.2.1;
option subnet-mask 255.255.255.0;
option nis-domain"domain.org";
option domain-name "domain.org";
option domain-name-servers 192.168.2.1;
option time-offset -18000;
range dynamic-bootp 192.168.2.100 192.168.2.254
default-lease-time 21600;
max-lease-time 43200;
filename "/pxelinux.0";
next-server 192.168.2.11;
host ns {
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
}
四、詳細注解:
ddns-update-style interim; #定義所支援的DNS動态更新類型(必選),一般我們設定成關閉,#interim和none都是關閉的意思
allow/ignore client-updates;#允許/忽略客戶機更新DNS記錄
allow/deny unknown-clients; #是否動态配置設定IP給未知的使用者
allow/deny bootp;#是否響應激活查詢
allow/deny booting;#是否響應使用者查詢
subnet 192.168.2.0 netmask 255.255.255.0 { #設定子網聲明# --- default gatewayoption routers 192.168.2.1; #設定預設網關為192.168.2.1
option subnet-mask 255.255.255.0; #設定用戶端的子網路遮罩
option nis-domain "domain.org"; #為客戶設定NIS域
option domain-name "domain.org"; #為客戶設定域名
option domain-name-servers 192.168.2.1; #為客戶設定域名伺服器
option time-offset -18000; # Eastern Standard Time #為用戶端指定格林威治時間偏移時間,機關秒,# 該選項可以在全局配置、局部配置均可使用#
option ntp-servers 192.168.2.1; #NTP是時間伺服器#
option netbios-name-servers 192.168.2.1;#設定wins伺服器# --- Selects point-to-point node (default is hybrid). Don't change this unless# -- you understand Netbios very well# option netbios-node-type 2; #設定netbios節點類型我不清楚這個netbios節點是什麼東西range dynamic-bootp 192.168.2.28 192.168.2.254; #設定動态的位址池
default-lease-time 21600; #設定預設的位址租期
max-lease-time 43200; #設定用戶端最長的位址租期#
we want the nameserver to appear at a fixed addressfilename "/pxelinux.0"; #開始啟動檔案的名稱,應用于無盤安裝,可以是tftp的相對或絕對路徑
next-server 192.168.2.234; #This is the name of the server they should get it from#tftp伺服器,可以和dhcp伺服器不在同一機器上,一般是PXE網絡使用此參數#設定主機聲明host ns {next-server marvin.redhat.com; #設定由于定義伺服器從引導檔案中裝入的主機名,用于無盤站hardware ethernet 12:34:56:78:AB:CD; #指定dhcp客戶的mac位址fixed-address 207.175.42.254; #給指定的mac位址配置設定ip}}
五、配置好dhcpd.conf檔案後就可以啟動dhcp服務了:
# service dhcpd restart
這時可以用“netstat -nlutp”指令檢視dhcp服務是否有啟動。
六、其它相關檔案:
1、這個檔案/var/lib/dhcpd/dhcpd.leases,可以看到被租出去的IP位址和相關資訊。
2、這個檔案/etc/sysconfig/dhcpd是指定DHCP伺服器監聽的網卡,如果隻有一個網卡,一般不用設定 DHCPDARGS=eth0 或者是eth1 ,如果全部監聽就不用管。
3、這個檔案/etc/sysconfig/dhcrelay就是設定DHCP中繼的檔案,大家打開看看吧。interfaces 就是來自這個端口的DHCP DISCOVER(請求)都會轉發到後面的DHCPSERVERS伺服器。設定了DHCP中繼,需要啟動中繼服務:service dhcrelay start
七、在linux客戶機下面,你可以手動配置你的dhcp:
察看你的網絡配置檔案,如果你沒有設定為自動啟動聯網,則要修改你的網絡配置檔案。
# vi /etc/sysconfig/network添加“NETWORKING=yes”(讓引導的時候啟動聯網)或者使用
# @echo “NETWORKING=yes”> /etc/sysconfig/network然後再修改你的網卡配置檔案/etc/sysconfig/network-scriptes/ifcfg-eth0
檔案應該包含這幾行:DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes
了解這些原理後我們做一個實驗來驗證dhcp運作原理:
實驗器材:虛拟機下linux 5.4 、windows server2003
實驗目的:用戶端機器windowsserver 2003 能夠從linux作業系統dhcp伺服器獲得ip。
實驗原理簡圖:

首先安裝主機自動擷取ip位址的dhcp服務:
首先挂載CD光牒,檢視dhcp安裝包:
subnet{作用域dhcp伺服器的作用範圍
包括位址池
選項{預設網關 dns指向 wins 域名......}
租約}
[root@blue Server]# rpm -ivh dhcp-3.0.5-21.el5.i386.rpm
檢視dhcp服務安裝的目錄:
[root@blue Server]# rpm -ql dhcp
編輯/etc/dhcpd.conf檔案:
首先我們先來認識下這個配置檔案,當我們打開時會提示我們有那麼一個dhcpd.conf.sample檔案,我們直接讀取過來進行修改就行了。
我們讀取過來之後,我們分析一下:首先是前16行:subnet 作用域
{作用域dhcp伺服器的作用範圍
位址池
等内容。
再者是後面的:内容如下:
分析過後我們配置我們自己的dhcp伺服器:
我們先來檢測一下有沒有文法錯誤。
當出現錯誤時,它會提醒哪裡出現錯誤,檢視帶有info、error等警告符。
當然我們也可以檢視日志:
[root@blue ~]# tail -n 30 -f /var/log/messages
文法錯誤之處有箭頭标明。
啟動dhcp服務:
[root@blue sysconfig]# service dhcpd start
Starting dhcpd:[OK]
由于文法沒有錯誤,我們的dhcp成功啟動了。
現在我們配置好了dhcp伺服器,我們來找一台客戶機測試一下,是否可以擷取2.0網段的ip位址。
在日志裡可以看到以下擷取消息。
這裡就包括了dhcp的4個過程,DHCPDISCOVER、DHCPOFFER、DHCPREQUEST 、DHCPPACK 這四個過程,在日志裡明晰的顯示dhcp伺服器工作的原理過程。
在客戶機上我們可以看到ip擷取的詳細資訊:
當我們在客戶機上釋放位址時,檢視日志的變化。
可看到也有回報的日志資訊。
當再次renew啟動擷取位址是,又會從位址池中擷取ip。
我們用這條指令會擷取客戶機擷取ip詳細資訊:
如果我們想要某些位址段不配置設定給客戶機,那麼我們應該這樣做,分開來寫:
例如:我們想排除該網段的100~150位址不配置設定。
在配置檔案裡應該這樣來修改:
重新開機dhcp服務。
在客戶機上檢視mac位址綁定是否成功。
重新擷取ip位址:
同樣在dhcp伺服器的日志上也可以看到客戶機配置設定的消息明細。
如果機器達到500甚至更多,我們怎麼達到位址的動态配置設定?
這時候我們就應該做超級作用域來實作。
再建立一個subnet 并放在shared-network {}内合成一個作用域。
同樣重新開機dhcp服務。
再打開一台新的客戶機測試,同樣可以測出,這時我們應該吧2.0網段ip隻設定一個,友善我們虛拟機裡測試。
在dhcp伺服器日志上同樣有明細的日志資訊。