實驗拓撲
系統版本爲:CentOS6.5 64位系統
實驗需求
C1和C2通過DHCP獲取IP地址
DHCP服務器爲C3單獨預留地址
配置步驟
[root@CentOS-3 ~]# mount /dev/cdrom /mnt //掛載光盤到mnt目錄
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@CentOS-3 ~]# rpm -ivh /mnt/Packages/dhcp-4.1.1-38.P1.el6.centos.x86_64.rpm //安裝DHCP服務
DHCP服務器網卡必須要有靜態IP地址,本機的地址爲:192.168.10.250/24
DHCP的配置文件在/etc/dhcp/dhcp目錄下
[root@CentOS-3 ~]# cd /etc/dhcp/dhcpd.conf
由於配置文件沒有任何配置內容可以通過cat命令查看配置文件,查看配置模板路徑
[root@CentOS-3 dhcp]# cat dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see 'man 5 dhcpd.conf'
#
[root@CentOS-3 dhcp]#
通過cp命令將模板複製到當前目錄下,覆蓋dhcpd.conf文件
[root@CentOS-3 dhcp]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample ./dhcpd.conf
cp:是否覆蓋"./dhcpd.conf"? yes
[root@CentOS-3 dhcp]#
[root@CentOS-3 dhcp]# cp dhcpd.conf dhcpd.conf.bak //修改配置前將配置文件做好備份
[root@CentOS-3 dhcp]# grep -v "^#" dhcpd.conf > dhcpd1.conf
//過濾配置文件中的以“#”開頭的註釋行並追加到一個新的文件中
[root@CentOS-3 dhcp]# grep -v "^$" dhcpd1.conf > dhcpd2.conf
//將過濾後的文件在過濾一次將空白行過濾掉,在次追加到新的文件中
[root@CentOS-3 dhcp]# mv dhcpd2.conf dhcpd.conf //將過濾後的文件改名dhcpd.conf覆蓋原有文件
mv:是否覆蓋"dhcpd.conf"? yes
[root@CentOS-3 dhcp]#
使用vim編輯器打開的dhcp.conf文件,將文件中多餘的範例行刪除吊保留一份即可
-----------------------------------修改後的配置文件---------------------------------------
default-lease-time 600; //最小租約,單位爲秒
max-lease-time 7200; //最大租約
subnet 192.168.10.0 netmask 255.255.255.0 { //要分配的網段和掩碼
range 192.168.10.100 192.168.10.200; //分配的地址範圍
option domain-name-servers 1.1.1.1,2.2.2.2; //DNS服務器地址如果有多個地址用“,”隔開
option routers 192.168.10.1; //默認網關
option broadcast-address 192.168.10.255; //廣播地址
}
host c3 { //host後面爲要保留的主機名可隨意命名
hardware ethernet 54:89:98:87:5A:28; //要保留設備的MAC地址以“:”格式分開
fixed-address 192.168.10.199; //要保留主機的IP地址
}
如果想要創建多個地址池,將subnet字段複製粘貼到下面就可以了
------------------------------------------------------------------------------------------
使用service命令啓用dhcp服務
[root@CentOS-3 dhcp]# service dhcpd start
正在啓動 dhcpd: [確定]
[root@CentOS-3 dhcp]#
注意:地址池內的地址段必須要有一段和物理網卡在同一網段否則啓動不了
-------------------------------------------------------------------------------------------
查看客戶端地址
可以看出客戶段所獲得的地址全是在地址池範圍內的地址
C3獲取到的地址爲我們手動保留的地址
------------------------------------------------------------
DHCP的報文有個4個分別爲:
discover
offer
request
ack
通過抓取bootp報文來查看DHCP的4個報文
由上圖可以看出DHCP的4個報文爲2個單播2個廣播而在微軟下搭建的DHCP服務器的4個報文卻是4個廣播報文!
通過抓取Discover可以看出,客戶機沒地址的時候三層的IP地址爲“0.0.0.0”
DHCP報文四層的端口號爲:服務器67,客戶端68
從Request報文中可以看出雖然是個廣播報文但客戶機已經標識出了自己選擇DHCP服務器是誰
這個是ACK報文,OFFER報文中就已經給了客戶機所有地址信息但是隻有收到ACK後這些信息客戶機纔可以使用。
DHCP的工作原理:
一丶首先客戶機發送Discover廣播報文,尋找DHCP服務器!
二丶DHCP收到後會發送offer報文迴應客戶機並分配一個地址給客戶機(這個地址客戶機還未真正使用),可以理解爲服務器在問客戶機這個地址你要嗎?
三、(如果有多臺服務器則客戶機只使用收到的第一個地址)客戶機收到後會發送Request廣播報文去請求這個地址,由於是廣播同時也告訴了其它服務器我選擇了誰。
四、DHCP服務器收到後迴應一個ACK報文,迴應客戶機說我知道了你就使用這個地址吧!(這個時候客戶機纔可以使用這個地址)