1. 【干貨】速度收藏!DHCP伺服器簡介及配置圖文教程
【 干貨】速度收藏! DHCP伺服器 簡介及 配置 圖文 教程
想必熟悉區域網的小夥伴,對於DHCP伺服器一定不陌生,在一個計算機比較多的網路中,如果網路管理員要親自為某個部門,甚至整個企業的上百台機器逐一手工分配IP地址,那麼這個效率是非常低的,其實可以通過DHCP伺服器來實現這個工作。本篇文章就為大家介紹了DHCP伺服器的概念、原理以及配置褲喊,快來看看吧!
一、什麼是 DHCP伺服器 ? DHCP伺服器 簡介
1、簡介
DHCP,(全稱Dynamic Host Configuration Protocol),即動態主機配置協議。DHCP主要在區域網使用,對IP地址進行集中管理和分配,使網路環境中的主機動態獲得IP地址、網關地址、DNS伺服器地址等信息,並提升IP地址使用率。
2、原理
DHCP是一種基於客戶/伺服器模式的服務協議,工作原理其實很簡單,是在安裝有DHCP伺服器的網路中,客戶端啟動時自動與DHCP伺服器通信,要求伺服器提供自動分配IP地址的服務,而安裝了DHCP伺服器軟體的伺服器響應這個要求,並向客戶端發送出合法的IP地址。所謂DHCP伺服器,也就是提供DHCP服務的伺服器,它是通過IP地址租約的方式為DHCP客戶端提供服務的。
DHCP客戶端通過和DHCP伺服器的交互通訊以獲得IP地址租約。為了從DHCP伺服器獲得一個IP地址,在標准情況下DHCP客戶端和DHCP伺服器之間會進行四次通訊。DHCP協議通訊使胡野野用埠UDP 67(伺服器端)和UDP 68(客戶端)進行通訊,UDP68埠用於客戶端請求,UDP67用於伺服器響應,並且大部分DHCP協議通訊使用廣播進行。
(1) DHCP DISCOVER
當DHCP客戶端處於以下三種情況之一時,觸發DHCP DISCOVER廣播消息:
1)當TCP/IP協議作為DHCP客戶端(自動獲取IP地址)進行初始化(DHCP客戶端啟動、啟用網路適配器或者連接到網路時);
2)DHCP客戶端請求某個IP地址被DHCP伺服器拒絕,通常發生在已獲得租約的DHCP客戶端連接到不同的網路中;
3)DHCP客戶端釋放已有租約並請求新的租約。
此時,DHCP客戶端發起DHCP DISCOVER廣播消息,向所有DHCP伺服器獲取IP地址租約。此時由於DHCP客戶端沒有IP地址,因此在數據包中,使用0.0.0.0作為源IP地址,然後廣播地址255.255.255.255作為目的地址。在此請求數據包中同樣會包含客戶端的MAC地址,以便DHCP伺服器進行區分。
如果沒有DHCP伺服器答復DHCP客戶端的請求,DHCP客戶端在等待1秒後會再次發送DHCP DISCOVER廣播消息。除了第一個DHCP DISCOVER廣播消息外,DHCP客戶端還會發出三個DHCP DISCOVER廣播消息,等待時延分別為9秒、13秒和16秒加上一個長度為0~1000毫秒之間的隨機時延。如果仍然無法聯系DHCP伺服器,則認為自動獲取IP地址失敗,默認情況下將隨機使用APIPA(自動專有IP地址,169.254.0.0/16)中定義的未被其他客戶使用的IP地址,子網掩碼為255.255.0.0,但是不會配置默認網關和其他TCP/IP選項,因此只能和同子網的使用APIPA地址的客戶端進行通訊脊耐。
(2) DHCP OFFER
所有接收到DHCP客戶端發送的DHCP DISCOVER廣播消息的DHCP伺服器會檢查自己的配置,如果具有有效的DHCP作用域和富餘的IP地址,則DHCP伺服器發起DHCP OFFER廣播消息來應答發起DHCP DISCOVER廣播的DHCP客戶端,此消息包含以下內容:
客戶端MAC地址;
DHCP伺服器提供的客戶端IP地址;
DHCP伺服器的IP地址;
DHCP伺服器提供的客戶端子網掩碼;
其他作用域選項,例如DNS伺服器、網關、WINS伺服器等;
租約期限等。
因此DHCP客戶端沒有IP地址,所以DHCP伺服器同樣使用廣播進行通訊:源IP地址為DHCP伺服器的IP地址,而目的IP地址為255.255.255.255。同時,DHCP伺服器為此客戶保留它提供的IP地址,從而不會為其他DHCP客戶分配此IP地址。如果有多個DHCP伺服器給予此DHCP客戶端回復DHCP OFFER消息,則DHCP客戶端接受它接收到的第一個DHCP OFFER消息中的IP地址。
(3) DHCP REQUEST
當DHCP客戶端接受DHCP伺服器的租約時,它將發起DHCP REQUEST廣播消息,告訴所有DHCP伺服器自己已經做出選擇,接受了某個DHCP伺服器的租約。
在此DHCP REQUEST廣播消息中包含了DHCP客戶端的MAC地址、接受的租約中的IP地址、提供此租約的DHCP伺服器地址等,所有其他的DHCP伺服器將收回它們為此DHCP客戶端所保留的IP地址租約,以給其他DHCP客戶端使用。
此時由於沒有得到DHCP伺服器最後確認,DHCP客戶端仍然不能使用租約中提供的IP地址,所以在數據包中仍然使用0.0.0.0作為源IP地址,廣播地址255.255.255.255作為目的地址。
( 4 ) DHCP ACK
提供的租約被接受的DHCP伺服器在接收到DHCP客戶端發起的DHCP REQUEST廣播消息後,會發送DHCP ACK廣播消息進行最後的確認,在這個消息中同樣包含了租約期限及其他TCP/IP選項信息。
如果DHCP客戶端的操作系統為Windows版本,當DHCP客戶端接收到DHCP ACK廣播消息後,會向網路發出三個針對此IP地址的ARP解析請求以執行沖突檢測,確認網路上沒有其他主機使用DHCP伺服器提供的IP地址,從而避免IP地址沖突。如果發現該IP已經被其他主機所使用(有其他主機應答此ARP解析請求),則DHCP客戶端則會廣播發送(因為它仍然沒有有效的IP地址)DHCP DECLINE消息給DHCP伺服器拒絕此IP地址租約,然後重新發起DHCP DISCOVER進程。此時,在DHCP伺服器管理控制台中,會顯示此IP地址為BAD_ADDRESS。
如果沒有其他主機使用此IP地址,則DHCP客戶端的TCP/IP使用租約中提供的IP地址完成初始化,從而可以和其他網路中的主機進行通訊。至於其他TCP/IP選項,如DNS伺服器和WINS伺服器等,本地手動配置將覆蓋從DHCP伺服器獲得的值。
二、 DHCP SERVER (RELAY)配置方式
1、相關配置文件
埠號:ipv4 udp 67(源埠:接收客戶端請求的)、 udp 68(目的埠:向客戶端發送請求成功或失敗的回應)、ipv6 udp 546、udp 547
服務名:dhcpd、dhcrelay
主配置文件:/etc/dhcp/dhcpd.conf
模板文件:/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample
中繼配置文件:/etc/sysconfig/dhcrelay
執行程序:/usr/sbin/dhcpd、/usr/sbin/dhcrelay
服務腳本:/etc/init.d/dhcpd、/etc/init.d/dhcrelay
執行參數配置:/etc/sysconfig/dhcpd
查看租約文件:/var/lib/dhcpd/dhcpd.lease
很多網路服務的排錯日誌:/var/log/messages
2、配置步驟
(1)操作前的准備
防火牆臨時關閉:iptables –F
防火牆永久關閉:/etc/init.d/iptables stop
查看防火牆狀態:iptables -L
selinux臨時關閉:setenforce 0
selinux永久關閉:sed –i「7s/enforcing/disabled/g」/etc/selinux/config
(2)客戶端配置
1、關閉防火牆和selinux
2、自己在虛擬網路編輯器創建一個區域網的網卡,並設置好網段,取消虛擬網路編輯器的DHCP自動分配功能
3、進入客戶機設置IP地址為自動獲取(就是讓DHCP選項生效),然後用service network restart 重啟客戶機網卡,到這里客戶端就設置完成。
(3)服務端配置
1、進入服務機設置IP地址、網關和虛擬網路編輯器那個網卡的網段一致,然後重啟網卡;
2、配置yum源,掛載光碟,然後用yum -y install dhcp安裝dhcp軟體;
3、進入dhcp配置文件/etc/dhcp/dhcpd.conf發現裡面是空的,然後把dhcp模板文件中的內容導入dhcp 配置文件;
4、將配置文件的前幾個subnet聲明注釋掉,修改最後一個subnet的聲明;
5、修改完成後保存退出,用service dhcpd configtest測試文件是否有錯誤;
6、然後用service dhcpd start 重啟dhcp服務;
7、重啟客戶機網卡,看能不能獲取到服務機地址池的IP地址;
8、為某台主機設置IP地址保留,把要保留IP的MAC地址和要保留的IP地址寫入dhcpd.conf的配置文件即可,然後設置客戶機為自動獲取IP;
9、用ifdown eth0停止服務機網卡,再用ifup eth0開啟網卡,然後用service dhcpd start 重啟dhcp服務,看客戶機能不能獲取到指定IP。
3、中繼代理配置
interface f0/0
ip helper-address 1.1.1.1
ip dhcp relay information trust
update arp開啟定期ARP詢問
interfaca g0/0/2
arp authorized禁止動態更新ARP
arp timeout 60 60s無應答則刪除ARP條目
ip dhcp snooping vlan 20 vlan20開啟snooping
interface f0/0定義信任埠
ip dhcp snooping trust交換機連接DHCP伺服器埠設為trusted
dhcp snooping bind-table static ip-address ip-address mac-address mac-address interface g0/0#配置IP與MAC靜態綁定表
interface vlan 1
ip add dhcp-alloc #立即發送DHCP-discover報文,1-10s內隨機發送,如果沒有收到DHCP伺服器的回應報文繼續發送,直到回應為止
dhcp selsect global all #全局分配地址
dhcp server group dhcp-relay
dhcp-server 10.1.1.1組里有多個dhcp伺服器
interface vlan 2
dhcp select relay
dhcp relay server-select dhcp-relay
display dhcp server ip-in-use all #查看地址池可用地址信息
reset dhcp server ip-in-use all #重置正在使用的IP地址
address-check enable dhcp #中繼的安全特性
ip dhcp relay information trust-all合法的DHCP服務路由,為了形成一個綁定表
no ip dhcp conflict logging關閉DHCP沖突日誌
display ip interface br
2. 怎麼在linux安裝dhcp
一.首先了解DHCP的概念
DHCP是實現主機IP地址DNS等動態配置的網路協議.
DNCP可以在多種操作系統中實現,包括最常用的LINUX系統和WINDOWS系統
DHCP網路服務的結構中具有伺服器和客戶機兩個角色
DHCP伺服器用於為網路中所有的DHCP客戶機提供網路配置信息,在同一網路中,
DHCP伺服器通常是唯一存在在.
網路中的任何主機都可以配置成為DHCP客戶機,向DHCP伺服器發出配置請求並按照伺服器返回的信息進行網路配置
二.DHCP伺服器能夠提供的網路配置信息
1.網路介面的IP地址和子網掩碼.
2.網路介面的IP地址對應的網路地址和廣播地址
3.默認網關地址
4.DNS伺服器地址
三.DHCP伺服器的配置
1.安裝DHCP伺服器軟體(在RHEL4系統的安裝光碟中包括RPM格式的DHCP伺服器軟體包,包文件的名稱是dhcp-3.0.1-12_EL.i386.rpm),在RHEL4的第4安裝光碟中,在同一張安裝盤中還包括與DHCP相關的其它軟體包
# cd /media/cdrom/rehat/rpms/
#ks -l dhcp*
dhcp-3.0.1-12_EL.i386,rpm在REL4中沒有被默認安裝,需要手動安裝
#rpm -qa | grep dhcp
#rpm -ivh dhcp-3.0.1-12_EL.i386.rpm
2.其中/usr/sbin/dhcpd 是DHCP伺服器的執行文件,/etc/rc.d/init.d/dhcpd是DHCP伺服器的啟動腳本,雖然文件名都是DHCPD,但是文件位於不同的目錄,功能也不一樣.
DHCPD.CONF配置文件以及建立配置文件和配置文件的格式
#ls /etc/dhcp*
#vi /etc/dhcpd.conf
如:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
}
3.全局設置
全局設置是DHCPD.CONF配置文件中不包括在任何聲明中的配置項(參數或選項),
作用於整個配置文件.當聲明中沒有相應的配置項時將使用全局配置項的設置,當聲明
中有相應的設置項時將使用本聲明中設置,而不採用全局設置項的值.
DHCP.CONF配置文件中常用的全局設置如下:
1) ddns-update-style參數用來設置DHCP伺服器與DNS伺服器的動態信息更新模式.
2) 默認租約時間使用default-lease-time參數設置,參數值的單位是秒.
3) 最大租約時間使用max-lease-time參數設置,參數值的單位是秒.
4) 主機所在域的名稱使用domain-name先項進行設置,設置的域名將與主機名稱一起組成
主機全名
5)DNS伺服器地址使用domain-name-servers選項進行設置,設置的值為DHCP客戶端需要使用的DNS伺服器的IP地址.
6)使用subnet聲明設置子網屬性
subnet 是DHCP.CONF文件中最常用的聲明,用於在子網中設置動態分配的地址的網路屬性,subnet聲明中可包括其他的參數.就不再說了.
4.DHCP伺服器的啟動與停止及重起\和DHCP服務的狀態
#service dhcpd start
#service dhcpd stop
#service dhcpd restart
#service dhcpd status
三.DHCP配置實例
如
默認租約時間為21600S
最大租約時間為43200S
區域網內所有主機動的域名為abc.com
客戶機使用的DNS伺服器的IP地址是192.168.1.1
聲明在子網192.168.1.0/24中用於動態分配的IP地址范圍是192.168.1.100~~~192.168.1.200所分配的子網掩碼是255.255.255.0默認網關是192.168.1.1
在子網192.168.1.0/24中有名為server01的伺服器主機,需要的固定分配IP地址是192.168.1.1,
#vi /etc/dhcpd.conf
ddns-update-style interim;
default-lease-time 21600;
max-lease-time 43200;
option domaion-name "abc.com;
option domain-name-servers 192.168.1.1;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option subnet-mask 255.255.255.0;
option routers 192.168.1.1;
host server01 {
hardware ethernet bo:co:c3:22:46:81;
fixed-address 192.168.1.11;
}
}
3. Linux下怎樣安裝DHCP服務和使用說詳細點。
1.安裝dhcp軟體包 #rpm –ivh dhcp-3.0.1-12_EL.i386.rpm 2.配置文件dhcpd.conf 由於dhcpd.conf默認沒有包括在軟體包中,所以要最近創建 #cp /usr/share/doc/dhcp-3.0.2/dhcpd.conf.sample /etc/dhcpd.conf 3.編輯dhcpd.conf #vi /etc/dhcpd.conf 配置文件的基本格式 Subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200} (聲明了網路地址是192.168.1.0子網掩碼是255.255.255.0的子網中,ip地址從192.168.1.100~192.168.1.200之間的地址用於DHCP客戶端進行動態地址分配高慎) 在dhcpd.conf配置文件中可以包括聲明、參數和選項3種基本格式 Subnet是常用的聲明,聲明中的設置(大括弧中的內容)在整個聲明範圍中有效; Subnet關鍵字後面設置子網的網路地址,netmask關鍵字後面岩猛設置子網掩碼 參數由設置項和設置值組成,根據參數所在位置的不同,參數的位置可作用於全局或指定的聲明中,參數是以「;」結束的,如: Default-lease-time 21600;(默認釋放時間) max-lease-time 43200;(最大釋放時間) 選項總是由option關鍵字引導,後面跟具體的選項和選項的設置值,粗念橋選項根據所在的位置不同可作用於全局或某個聲明中,選項也是以「;」結束的,如: Option routers 192.168.1.1 (網關) Opyion subnet-mask 255.255.255.0 (子網掩碼) 使用host聲明設置主機屬性 host server01{ hardware Ethernet 0:c0:c3:22:46:81; fixed-address 192.168.1.11; option subnet-mask 255.255.255.0 option routers 192.168.1.1; } 上面的配置實例中使用host聲明了名為server01的主機,其MAC地址為0:c0:c3:22:46:81,為主機分配使用的ip地址為192.168.1.11,同時為該主機設置的子網掩碼是255.255.255.0,網關地址是192.168.1.1. 多網路介面時需要配置的文件 # vi /etc/sysconfig/dhcpd DHCPDARGS=eth0 表示dhcp將只在eth0網路介面上提供DHCP服務。 4.dhcpd服務的啟動與停止 Dhcpd服務的啟動腳本位於/etc/init.d/dhcpd 啟動dhcpd服務 #service dhcpd start 停止dhcpd服務 #service dhcpd stop 修改啟動狀態 #chkconfig –level 35 dhcpd on
4. linux每次系統啟動時也啟動DHCPD,要執行什麼命令
Linux啟動時執行命令
1. Linux 啟動順序:
(1)BIOS自檢 www.2cto.com
(2)運行系統內核並檢測硬體
(3)運行系統的第一個進程init
(4)init讀取系統引導配置文件:
/etc/inittab中的信息進行初始化
/etc/rc.d/rc.sysinit------系統初始化腳本
/etc/rc.d/rcX.d/[KS]*------根據運行級別配置服務
/etc/rc.d/rc.local---------執行本地特殊配置
其它---------不同運行級別的特殊服務
Linux啟動運行init程序來啟動相關程序初始化,與啟動相關的一個概念是運行級,
運行級是操作系統當前運行的級別,在不同運行級別上可以定義屬於該運行級的啟
動程序,系統的運行級別可以在/etc/inittab文件指定,與運行級相關運行程序通
過從源/etc/rc.d/init.d下鏈接到目的/etc/rcX.d,這里X為系統的默認運行級別,
因此,默認的啟橋耐動腳本放在/etc/rc.d/init.d下。
有人建議在.login中執行相應命令,或在.bashrc(用tcsh shell,碧爛在.tcshrc)里
寫命令。這是不行的,.login是在用戶登錄時執行,用戶可能在本地無需登錄,或
者在遠程多個用戶登悔消漏錄,多次登錄;而.tcshrc是在shell啟動時執行,登錄後用戶
一般會多次打開shell,這樣該命令或程序就會被多次執行。
2. 預設的運行級,Linux用到的級別如下:
# 0 - 停機(千萬不要把initdefault 設置為0 )
# 1 - 單用戶模式
# 2 - 多用戶,但是沒有 NFS
# 3 - 完全多用戶模式
# 4 - 沒有用到
# 5 - X11
# 6 - 重新啟動 (千萬不要把initdefault 設置為6 )
對各個運行級的詳細解釋:
0 為停機,機器關閉。
1 為單用戶模式,就像Win9x 下的安全模式類似。
2 為多用戶模式,但是沒有NFS 支持。
3 為完整的多用戶模式,是標準的運行級。
4 一般不用,在一些特殊情況下可以用它來做一些事情。
例如在筆記本電腦的電池用盡時,可以切換到這個模式來做一些設置。
5 就是 X11 ,進到 X Window 系統了。
6 為重啟,運行 init 6 機器就會重啟。
3. 如何讓系統在啟動是運行指定程序,根據啟動順序中的第四步,有兩種方式。
一種方式是根據運行級別配置服務。 www.2cto.com
一種方式是執行本地特殊配置。
舉例,任務在啟動是運行命令cvslockd:
方式一:
(1)建立自啟動腳本/etc/rc.d/init.d/cvslockd,內容為:
#!/bin/bash
/usr/local/bin/cvslockd
設置文件的屬性為可執行:
#chmod +x /etc/rc.d/init.d/cvslockd
(2)查看計算機運行級別,在文件/etc/inittab里看到id:5:initdefault:,
則此系統運行級別為5。
(3)到/etc/rc5.d目錄下,把你要執行的可執行文件做一個軟連接,而且在
命名的時候要以大寫S字母開頭,S之後的數字大小代表執行順序的先後,
數字越大越後執行。
#ln -s /etc/rc.d/init.d/cvslockd /etc/rc5.d/S100cvslockd
#ln -s /etc/rc.d/init.d/cvslockd /etc/rc0.d/K20cvslockd
方式二:
在/etc/rc.d/rc.local 添加 exec /usr/local/bin/cvslockd
該方式是在最後啟動cvslockd。
還有一個論壇,也有關於這個的討論:http://bbs.chinaunix.net/thread-2171011-1-1.html
5. 求救,熟悉在linux中配置dhcp伺服器的進!!
LINUX dhcp伺服器
一.dhcp介紹:
* dhcp稱為 動態主機配置協議.
* 運行dhcp服務的計算機或設備,稱為dhcp伺服器,該伺服器可以為網路中的工作站自動分配
IP地址,子網掩碼,網關,DNS等參數.
* dhcp,可應用於網吧,機房,辦公室以及網路管理中.
* dhcp伺服器為客戶機分配IP,是有相應的攜敬時間限制的,計算機可能每次啟動所獲取的地址均不一樣.
把這種地址獲取稱為動態地址獲取.
二.使用DHCP原因:
* 初學者以及在某種網路環境下不了解IP設定情況
* 用戶在輸入網路參數時,手誤造成參數出錯
* 在經常梁隱磨發生IP沖突的環境.
* 網路中有大量計算機需要更改網路參數.
三.dhcp伺服器的條件:
* 伺服器必須有相應的dhcp軟體,在linux計算機中,要求已經安裝了dhcp軟體包
* 伺服器必須要求具有靜態的IP地址
* 伺服器為工作站分配IP地址,前提是伺服器必須有可用的空閑IP地址.
四.linux中dhcp伺服器安裝及啟動:
1.dhcp伺服器軟體包安裝:
rpm -qa | grep dhcp
軟體包名為 dhcp-3.0pl1-23
2.dhcp伺服器主進程名稱為 dhcpd
控制腳本為 /etc/rc.d/init.d/dhcpd
3. dhcp伺服器啟動:
默認情況下,無法啟動dhcp伺服器,原因在於 /etc目錄下不存在dhcp伺服器的配置文件dhcpd.conf
從目錄 /usr/share/doc/dhcp-3.0pl1 下,將文件 dhcpd.conf.sample 復制到 /etc 目錄下,並
改名為 dhcpd.conf
復制完成後,通過對 dhcpd.conf 文件做配置,再由命令 service dhcpd start 啟動伺服器即可
4.使每次啟動計算機後,dhcp伺服器自動啟動
chkconfig --level 35 dhcpd on
五.配置dhcp伺服器,使得伺服器為網路中其它計算機分配IP:
在配置dhcp伺服器之前,首先確定伺服器IP地址,以及網路號等信息
如伺服器IP為 10.0.0.219 ,則網路號為 255.0.0.0
打開 /etc/dhcpd.conf 文件,做如下項目設定
subnet 10.0.0.0 netmask 255.0.0.0 { =>指定dhcp伺服器的作用域范圍在10.0.0.0網路
[伺服器IP所在的網路應與上述網路一致]
option subnet-mask 255.0.0.0; =>指定分配IP地址時所使用的掩碼
range dynamic-bootp 10.0.0.240 10.0.0.249; =>指定分配的IP地址范圍[地址1 小於 地址2]
完成後,保存橡斗退出,並重啟dhcpd進程 [ service dhcpd restart ]
六.配置計算機從dhcp伺服器獲取IP地址等:
[以windows為例]
將tcp/ip協議中的IP地址,更改為自動獲取
完成後,可以通過命令
ipconfig /all -->查看網路信息
ipconfig /release -->丟棄所獲取的IP
ipconfig /renew -->重新獲取IP
七.為dhcp伺服器做進一步配置:
1.配置IP地址的租用期限:
[默認租用期限為 6 小時]
在配置文件中
default-lease-time 21600; -->21600秒,即六小時
max-lease-time 43200; -->續約地址最大使用 十二小時
2. 在伺服器配置為工作站分配的網關與dns參數.
option routers 10.0.0.1; ->網關選項,工作站獲取IP同時,也
獲取了網關地址.
option domain-name-servers 202.103.224.68; ->dns選項,工作站獲取IP同時,也
獲取了dns伺服器地址.
3. 為網路中特定的計算機添加地址保留;
為網路中特定的計算機綁定IP,使其無論在何時,均從伺服器獲取同一個IP地址,而且不會
受租用期限的限制.
配置文件中有如下配置
host ns { =>ns 為本次綁定的名稱標識,可任意,最好填寫對方
計算機名稱
next-server marvin.redhat.com; =>當前伺服器無IP時,用下一伺服器分配.通常可省略 hardware ethernet 12:34:56:78:AB:CD; =>對方計算機的網卡卡號,注意格式
fixed-address 207.175.42.254; =>要分配給對方計算機的IP地址
}
完成後,重啟dhcp伺服器即可.
工作站可以採用命令刷新,或者重啟計算機
八. 工作站向伺服器請求分配IP地址的過程:
* dhcp discovery[搜索:工作站向整個網路發送廣播,搜索dhcp伺服器]
* dhcp offer[回應:dhcp伺服器收到廣播後,檢測自身IP地址池是否有空閑IP,有則分配一個地址給
工作站]
* dhcp request[請求:工作站收到伺服器分配的地址後,立刻應用,並發一確認信息給伺服器,請求
伺服器確認所使用的IP地址]
* dhcp pack [確定:伺服器收到請求信息,將分配的地址標識為已用,完成地址分配]
九. dhcp中繼:
計算機x ,y ,z 發送廣播請求分配地址,此時伺服器s 收到請求
但伺服器S並不是dhcp伺服器,由於配置了dhcp中繼,則伺服器S會向網路其它dhcp伺服器
發送請求分配IP, dhcp伺服器收到請求後,立刻分配IP地址給伺服器S,而伺服器S再將
所得到的地址分配給計算機 x, y, z
在linux中配置dhcp中繼方法如下:
採用vi 打開 /etc/sysconfig/dhcrelay 文件
INTERFACES ="" -->填寫上採用哪個介面接收工作站的廣播
DHCPSERVERS="" -->填寫網路中dhcp伺服器IP地址
如 INTERFACES="eth1"
DHCPSERVERS="10.0.0.219"
完成以後保存,並啟動獨立進程 dhcrealy 即可
祝你好運.
6. DHCP 怎樣設置
設置和使用DHCP
在FreeBSD的Packages Collection中,有兩個不同的DHCP客戶機和伺服器軟體,一個為ISC-DHCP,另一個為WIDE-DHCP,兩個軟體都包括了DHCP客戶軟體和伺服器軟體,其中ISC-DHCP 更為常用一些,這里就以ISC-DHCP為例介紹在FreeBSD上安裝和設置DHCP。
為了支持DHCP,首先要確認系統內核支持偽設備bpfilter,如果沒有,就需要重新編譯內核。偽設備bpfilter 是一個允許應用程序接收網路的原始數據包的界面,這樣應用程序就能接收目的地址非本機IP地址的數據包了。DHCP使用bpfilter的原因是在DHCP設置好計算機的TCP/IP之前,由於計算機本身沒有定義IP地址,而TCP/IP堆棧本身不會接收不具備本機IP地址的數據包。要接收DHCP伺服器發送回客戶的數據虧或包,就需要繞過TCP/IP堆棧,而必須使用偽設備bpfilter。
pseudo-device bpfilter 4
定製內核之後,還要保證/dev/目錄下具有對應bpfilter的設備文件。
# cd /dev
# sh MAKEDEV bpf0 bpf1 bpf2 bpf3
從Packages Collecion中安裝DHCP軟體,這將DHCP軟體中的dhcpd,dhclient和dhcprelay 安裝到/usr/local/sbin目錄下。
$ ls /usr/local/sbin/dhc*
/usr/local/sbin/dhclient /usr/local/sbin/dhcpd
/usr/local/sbin/dhcrelay
設置伺服器
為了設置DHCP伺服器dhcpd,首先就要設置其配置文件/etc/dhcpd.conf。這個配置文件語法簡單,比較容易理解。
server-identifier 192.168.3.1;
subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.10 192.168.3.20;
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.3.255;
option routers 192.168.3.1;
option domain-name-servers 192.168.3.1;
option domain-name "exampleorg.org.cn";
}
host a1 {
hardware ethernet 00:90:27:4e:92:09;
fixed-address 192.168.3.32;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.3.255;
option routers 192.168.3.1;
option domain-name-servers 192.168.3.1;
option domain-name "exampleorg.org.cn";
}
基本的dhcpd.conf首先使用server-identifier定義了本服畢空伏務器的IP地址,這對於有多個IP地址的伺服器系統十分重要,一般不必設置這個參數,dhcpd能自動偵測。然後定義要分配IP地址的客戶機組,每組擁有一個可用的IP地址范圍。有兩種客戶機組的劃分方式,一種為指定子網段來區分,一種為指定主機來區分。
這個例子中的第一組定義了一個子網192.168.3.0/24,這個子網段內,可供DHCP伺服器分配的I P地址范圍為192.168.3.10到192.168.3.20,這手攜個地址范圍也可以不是連續的,不連續的地址可以使用多個range設置參數來設置。此外,還設置了這一組內分配的IP地址的租期限制default-lease-time 和max-lease-time,可以使用預設值,而不必改動。後面的option參數設置DHCP的附加功能,例如設置DHCP客戶的網路掩碼、廣播地址、DNS伺服器、域名等等。事實上這些option設置選項也可以被用作全局選項設置,即放置在server-identifier之後,對所有的客戶機組起作用。
例子的第二組是針對某個特定主機a1進行的設置,這個主機被限定為乙太網地址為hardware ethernet 參數值的計算機,將給這個計算機分配一個固定地址。這種分配方式實際等價於固定地址分配方式,唯一的好處就是能夠對IP地址進行集中管理,不必每個計算機分別設置了。這里同樣也可以使用option參數,設置TCP/IP的參數。
dhcpd.conf中還能有更多的組,包括對非本網段的子網上的客戶機指定的組。
當設置了dhcpd.conf之後,就能啟動dhcpd守護進程了,由於計算機會有多個網路界面,需要指定dhcpd 伺服器的網路界面,以便回應相應界面上的DHCP請求。
# /usr/local/sbin/dhcpd fxp0
在調試階段,可以使用-d參數,這樣dhcpd就不會進入後台運行,而一直保留在前台,並顯示各個與客戶計算機通信的過程。當一切都調試完畢之後,就能去除-d參數,並將執行命令放入rc.local啟動腳本中,以便系統能夠自動執行。
此後,dhcpd正常運行的時候,會將每一次客戶請求及其回應的IP地址分配的記錄,都記錄在/var/run/dhcpd.leases 文件中。為了使dhcpd能正常進行日誌記錄,應該在啟動dhcpd之前使用touch 命令,生成一個新的日誌文件。以後就可以查看這個日誌文件的內容,以得到當前DHCP伺服器的狀態和客戶機IP地址分配的情況。以下是一個日誌文件的部分內容。
lease 192.168.3.11 {
starts 3 1998/11/26 05:46:28;
ends 4 1998/11/27 05:46:28;
hardware ethernet 0:80:c2:12:fd:d;
uid 1:0:80:c2:12:fd:d;
}
touch命令的優點是在存在相關的文件時,不刪除或更改文件內容,只更新其訪問時間設置,只有在文件不存在時才生成新文件。
然後就能設置網路中的客戶計算機使用DHCP協議,獲取合法的IP地址了。通常Windows計算機的TCP/IP設置中能直接設置支持DHCP協議,如果為Unix(包括FreeBSD)設置DHCP客戶軟體,就需要dhclient的支持。
設置客戶軟體
ISC-DHCP中同樣也提供了一個客戶程序dhclient,用於FreeBSD系統從DHCP伺服器上動態獲取一個IP地址。這個程序同樣也要求內核支持bpfilter偽設備。
dhclient使用的配置文件為/etc/dhclient.conf,然而最一般的情況下可以不使用它,軟體本身的預設配置就滿足一般情況下請求IP地址的需要了。預設設置下dhclient在獲得了IP地址之後,會自動執行/etc/dhclient-script 這個腳本程序,以針對剛獲取的動態IP地址進行必要的設置。很多依賴於IP地址的網路服務,就可以在這個腳本中啟動,或者針對重新分配的動態IP地址對已有的網路服務進行修正。雖然使用者也許不希望使用這個腳本設置網路,但如果不存在這個腳本程序,或者這個程序不可執行,那麼dhclient就不能正常執行。
因此對於最一般的客戶機,一般只連接到一個網路上,僅具備一個網路界面,可以使用一個空的dhclient.conf 和空的declient-script文件,就能完成設置IP地址和其他TCP/IP參數的任務了。
# touch /etc/dhclient.conf
# touch /etc/dhclient-script
# chmod +x /etc/dhclient-script
# /usr/local/sbin/dhclient fxp0
Listening on BPF/fxp0/00:90:27:4e:92:09/unattached
Sending on BPF/fxp0/00:90:27:4e:92:09/unattached
Sending on Socket/fallback/fallback-net
DHCPDISCOVER on fxp0 to 255.255.255.255 port 67 interval 22
DHCPOFFER from 192.168.3.1
DHCPREQUEST on fxp0 to 255.255.255.255 port 67
DHCPACK from 192.168.3.1
bound to 192.168.3.32 -- renewal in 3600 seconds.
在更復雜的情況下,就要指定更多的內容,例如當系統有多個網卡時,要指定dhclient應該從哪個子網中獲得IP地址設置,就需要使用設置文件dhclient.conf。一般除非有多個區域網網路界面,都應該使用空設置文件,避免產生配置錯誤。以下為一個簡單的dhclient.conf的例子,可以用於多網路界面的情況:
# Defaults
timeout 60;
reboot 10;
retry 60;
select-timeout 5;
initial-interval 2;
script "/etc/dhclient-script";
interface "fxp0" {
request subnet-mask, broadcast-address, routers, domain-name-servers,
domain-name, host-name;
require domain-name-servers;
}
這個設置文件主要用於重新定義一些參數,比較容易理解,更改也比較容易。
成功的手工執行dhclient之後,就可以考慮將其和系統啟動文件相結合了。因為很多網路服務是依賴於網路配置的,應該在啟動這些網路服務之前使用DHCP配置好TCP/IP。使用dhclient-script啟動服務的想法雖然也能解決問題,然而這就不能使用系統的啟動rc文件中的相關設置啟動網路服務,而在這個dhclient-script 中重新啟動,因此比較麻煩。更簡便的做法是僅僅在dhclient-script中設置hostname,而讓系統啟動文件完成其他網路服務的啟動。這樣就要求將dhclient與系統rc文件結合起來。
#hostname="my.domain.name"
network_interfaces="fxp0 lo0" # List of network interfaces (lo0 is
loopback).
ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration.
#ifconfig_fxp0="inet 192.168.3.12 netmask 255.255.255.0"
defaultrouter="NO" # Set to default gateway (or NO).
這樣就需要更改rc.conf文件,更改一些設置語句。首先要注釋hostname設置,而在dhclient.script中進行設置,也不必設置defaultrouter,它通過DHCP協議自動設置。同時要保證network_interfaces參數中,設置了要通過dhclient來獲取IP地址的網路界面fxp0,以允許rc系統文件能啟動該與該界面相關的設置文件,然而卻必須注釋設置該界面的參數ifconfig_fxp0,因為這個設置參數是用於設置靜態IP地址的選項,因此要屏蔽它,而使用start_if.fxp0配置腳本來設置網路界面。
預設情況下,不存在start_if.fxp0等start_if設置網路腳本,但是這些腳本在rc.network已經做好了設置,針對每個網路界面啟動,而不需要在rc.conf中做特別設定。對於dhclient,可以創建一個簡單的啟動腳本start_if.fxp0為:
#! /bin/sh
/usr/local/sbin/dhclient fxp0
這樣,dhclient就和系統啟動文件結合起來了,在系統啟動的時候會自動設置好TCP/IP,此後再啟動相關的網路服務。此時需要注意的是刪除原來可能在rc.local或者在/usr/local/etc/rc.d目錄中的dhclient啟動命令,以避免沖突。
在FreeBSD系統上不推薦使用動態IP地址,因為FreeBSD能提供大量有用的網路服務,都會與IP地址或域名有關,不適合使用動態IP地址。如果必須要作為DHCP客戶以保持IP地址的統一管理,建議使用dhcpd針對硬體地址的設置方式,在DHCP伺服器上為FreeBSD系統設定一個固定IP地址。
設置DHCP中轉
當網路中存在多個子網的時候,由於客戶計算機只能通過廣播發送DHCP請求,這些請求一般不能跨越路由器。為了在DHCP伺服器存在的子網之外的DHCP客戶分配IP地址,可以設置路由器轉發DHCP請求,即轉發相應的UDP 埠67和68的廣播數據包。但這樣設置就增加了網路廣播,不利於減少網路流量。
此外,還有另外一種方法來使得DHCP客戶計算機能使用子網之外的DHCP伺服器來分配IP地址。這就是使用 DHCP中轉計算機來轉發DHCP的請求。DHCP中轉計算機能聽取DHCP廣播,由於它了解DHCP伺服器的IP地址,因此能通過正常的IP數據包將原廣播包轉發到伺服器中,然後再將伺服器的回應信息回復客戶機。這樣DHCP客戶機就以為本子網中也存在一個DHCP伺服器。
在ISC-DHCP軟體中,提供的中轉程序為dhcrelay,這是一個簡單的程序,不需要額外的設置。啟動 dhcrelay的標准方式為使用命令行指定將DHCP服務請求中轉到的目的DHCP伺服器,由於DHCP中允許多個 DHCP伺服器同時為客戶提供地址,而不會產生沖突,就可以使用多個DHCP伺服器進行中轉。
# dhcrelay dhcpsrv1 dhcpsrv2
如果這台中轉伺服器為多網路界面計算機,那麼dhcrelay將偵聽所有網路界面的DHCP請求,有時不希望 dhcrelay中轉某些界面上的請求,就可以設置dhcrelay偵聽的網路界面,這需要指定-i參數。
# dhcrelay -i xl0 dhcpsrv1
提供備份的DHCP設置
在一個具備多個子網的大型網路中,提供冗餘是一個非常重要的問題。由於DHCP協議中DHCP伺服器負責分配 IP地址,一旦DHCP伺服器出現故障,那麼所有的客戶就無法正確獲得IP地址,從而不能訪問網路。
但可以同時設置多個DHCP伺服器來提供一個冗餘能力。然而DHCP伺服器本身是不提供備份能力的,不能互為備份。他們佔用的IP地址資源也不能重疊,以免發生客戶機IP地址沖突的現象。提供容錯能力是通過分割可用的IP地址到不同的DHCP伺服器上,通過多個DHCP伺服器同時為一個網路服務,從而使得一個伺服器發生故障還能正常執行操作。通常為了進一步增強可靠性,還可以將不同的DHCP伺服器放置在不同子網中,互相使用中轉提供服務。
例如在兩個子網上各自有一個DHCP伺服器,標準的做法可以不使用DHCP中轉,各個子網上的伺服器為各個子網服務就行了。然而為了達到容錯的目的,可以互相為另一個子網提供服務,通過設置中轉或路由器轉發廣播以達到互為服務的目的。
例如位於192.168.3.0網路上的srv1的配置可能為:
subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.10 192.168.3.199;
}
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.200 192.168.4.220;
}
位於192.168.4.0網路上的srv2的配置可能為:
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.10 192.168.4.199;
}
subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.200 192.168.3.220;
}
注意,上述設置都是設置樣例,標准情況下還需分別指定各個option,用於設置IP地址及其相關設置。
可以看出兩個伺服器都能對兩個網路上的客戶機分配IP地址,而各自又有一個主要服務的網路。每個網路上的IP 地址主要放在本地的伺服器上,但也有少部分地址放在另一個子網中的伺服器上(地址資源不能沖突),這樣提供了一定的容錯能力。
實際的多子網網路中,並不必要每個子網都設置一個伺服器,並使用另外的伺服器備份,一般網路中有2-3個DH CP伺服器就夠用了。其他子網可以通過DHCP中轉的方式,給該子網提供DHCP服務。
7. .DHCP服務的啟動腳本是 ,主配置文件是位於/ete/dhop目錄下的什麼
配置文件是/etc/dhcpd.conf
啟動圓攜槐服橘友務:service dhcpd start或/etc/init.d/隱賣dhcpd start
停止服務:service dhcpd stop或/etc/init.d/dhcpd stop