)
首先介紹下什麼是dhcp協定
dhcp(dynamic host configuration protocol)就是動态主機配置設定協定,它用于給某個網絡段上的主機進行動态配置設定IP位址和相關網絡環境的配置工作,比如我們使用adsl撥号就是用的dhcp協定。
一、dhcp的常用的概念。
1、 作用域:
作用域是一個網絡中可配置設定IP位址的連續。
2、超級作用域
超級作用域是一組作用域的集合。是由一個實體子網中包含的多個IP子網組成的。我們可以了解為作用域是一個使用者,而超級作用域就是這個使用者的組。
3、排除範圍
排除範圍是用來定義某IP或者某一組的IP不用于配置設定給dhcp客戶機
4、位址池
定義了dhcp作用域和排除範圍後,剩下的可用位址構成了一個位址池。池中的位址可以配置設定給使用者使用
5、租約
就是dhcp伺服器指定的時間長度,在此長度内客戶機可以使用配置設定給它的位址,如果租約到期,客戶機必須更新ip租約。
6、保留位址
使用者可以使用保留位址,保留位址提供了一個将動态位址和其MAC位址相關聯的手段。用于保證此網卡長期使用某個IP位址。
7.選項類型。
這是DCHP為工作站提供的其它參數,比如網關的IP位址,dns伺服器等。
這裡僅僅介紹了dhcp最基礎的一些概念,因為在此主要介紹linux下是如何配置這些服務的。是以如果朋友們想了解更多有關dhcp或者後面介紹的幾個服務的知識(linux下和win下的dhcp的概念是一樣的)可以參閱網絡或者書籍。
二、Dhcp的設定
首先安裝dhcp服務。如果你在首次安裝時沒有選擇dhcp元件,你可以在你發行版的安裝CD光牒和rpm的添加删除包中找到相關軟體,進行安裝,或者可以在第二張CD光牒的/RedHat/RPMS/下找到dhcp-3.0p11-23.i386.rpm的二進制rpm發行包進行安裝,安裝後效果相同。
然後更新的時候按提示插入安裝盤
再給提示朋友們一次,在linux中,所有的程式配置都由文本檔案進行控制。是以我們要設定dhcp伺服器,就可以通過修改配置檔案來達到目的。
是以我們先看下它的典型的配置檔案
dhcp的配置檔案是/etc/dhcpd.conf,不過預設的情況下這個檔案不存在,你需要使用它的模闆建一個配置檔案。模闆的位置在/usr/share/doc/dhcp-3.0p11/dhcpd.conf.sample
如果你找不到你的配置檔案可以使用我們學過的查找指令,locate filename進行尋找,如圖:
查找到此檔案後,我們先來看下模闆的配置情況。
為了友善,我把這個配置檔案用cat 指令給導入到了一個文本檔案中,然後弄到win下來了。模闆配置檔案内容如下:
和所有的配置檔案類似的,它用#代表注釋。現在看看每行都說了什麼 ddns-update-style interim; #配置使用過渡性 DHCP-DNS互動更新模式。 ignore client-updates; #忽略用戶端更新 subnet 192.168.0.0 netmask 255.255.255.0 { #設定子網聲明 # --- default gateway option routers 192.168.0.1; #設定預設網關為192.168.0.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.1.1; #為客戶設定域名伺服器 option time-offset -18000; # Eastern Standard Time #設定偏移時間。 # option ntp-servers 192.168.1.1; 設定NTP伺服器。 # option netbios-name-servers 192.168.1.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.0.128 192.168.0.255; #設定動态的位址池。 default-lease-time 21600; #設定預設的位址租期。
max-lease-time 43200; #設定用戶端最長的位址租期
# we want the nameserver to appear at a fixed address //設定主機聲明 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 } }
看完了這個配置檔案,朋友們如果有一定的英文基礎。是不是覺得其實很好懂,其實不要被linux的配置檔案吓倒,配置linux遠比windows簡單和容易了解,這些配置檔案給了你一個模闆,你照模闆進行填寫就可以,類似于給了你一張計劃書,上面有你要做的事情,你可以選擇做或者不做,具體情況根據你的環境填填空就可以了。不象windows會給你一個向導,至于向導幹了什麼你根本不知道。出了問題,你也不知道改找誰。但是linux則不同,出了問題,你把你的配置單cat出來,然後貼到網上,講出你的要求,别人很容易知道你到底幹了些什麼。
後面我們舉個例子來做這個配置。
先看下一個圖,非常常見的網絡環境。(俺改的以前的一個設計方案,因為講這裡是講dhcp,就不把vlan考慮進來了,朋友們要是有興趣,可以在社群http://www.easysafe.net/發帖專門講這方面的問題。)
我們有一個10.0.0.0的網絡,叫做easysafe.net
有一個DHCP,有一套企業應用系統,
dns的伺服器位址10.0.0.12
系統的資料庫伺服器位址為10.0.0.10
應用伺服器位址為10.0.0.11
有一個網管監控區,放的網管工作站,其IP分别是,10.0.0.30,機器名字叫webmaster
然後有個防火牆做NAT,内部IP是10.0.0.1,外部IP是202.117.0.43(随便編個.HOHO)
你是這個企業的網管,由于你的機器比較多了,從業人員經常找你配IP位址。是以你讓老總給你了台淘汰的機器,上面裝上linux,配成DHCP伺服器,來給他們配置設定IP位址。
那麼,現在我們要怎麼做呢。
首先,我們先要考慮一下這個環境。 10.0.0.10 10.0.0.11, 10.0.0.1
為避免網絡問題,以上位址應該是保留的靜态位址,也就是說你應該有一個排除範圍。這個範圍可大可小,在現在的情況下,為了避免以後的問題,可以把排除範圍設定大點。比如我們設定為從10.0.0.1~10.0.0.20,為系統使用的。
10.0.0.30是你自己用的,不過你不想讓别人用這個ip,也不想每次重新裝了系統後重新修改,是以,你決定把你的IP給綁定到MAC上。
其他的人可以随意使用10.0.0.21~10.0.0.254之間的一個位址。
好了,現在調出我們的DHCP配置單模闆,看如何配置。
ddns-update-style interim; ignore client-updates;
#subnet 192.168.1.0 netmask 255.255.255.0 { #聲明變了,我們的總的網絡是10.0.0.0/24 subnet 10.0.0.0 netmask 255.255.255.0{ #朋友在修改配置的時候,原有配置我們可以使用#注釋掉。 # --- default gateway #option routers 192.168.0.1; #路由變了,是10.0.0.1 option routers 10.0.0.1; option subnet-mask 255.255.255.0; option broadcast-address 10.0.0.255; #添加一個廣播位址
#這句不用改,因為我們的子網還是個三類位址的子網 #option nis-domain "domain.org"; #nis不用 #option nis-domain "easysafe.net "; #option domain-name "domain.org"; option domain-name "easysafe.net"; #option domain-name-servers 192.168.1.1; option domain-name-server 10.0.0.12 option time-offset -18000; # Eastern Standard Time #這個時間偏移,根據本地情況來設定。 # option ntp-servers 192.168.1.1; # option netbios-name-servers 192.168.1.1; # --- Selects point-to-point node (default is hybrid). Don't change this unless # -- you understand Netbios very well # option netbios-node-type 2; #上面的可以不修改,因為我這裡沒有ntp和wins伺服器 #range dynamic-bootp 192.168.0.128 192.168.0.255; #這裡開始設定你的動态ip位址池了 #range dynamic-bootp 10.0.0.21 10.0.0.254 default-lease-time 21600; max-lease-time 43200; #預設的更新ip時間和最大更新時間不修改預設的就可以。 # we want the nameserver to appear at a fixed address #―――――――――――――――――――――― #以上為模闆中有的配置,現在加一些模闆沒有的配置 #――――――――――――――――――――――
subnet 10.0.0.0.0 netmask 255.255.255.0{
range 10.0.0.21 10.0.0.254; } #這裡要注意了,在這裡我們配置了我們的位址池!!從10.0.0.21到10.0.0.254
#host ns { # next-server marvin.redhat.com; # hardware ethernet 12:34:56:78:AB:CD; # fixed-address 207.175.42.254; #} #上面的是為特定使用者來設定位址的。咱們來看看網管的機器該怎麼配置,為了你以後 #配置的友善,這裡加個group聲明一下,以便如果哪個人看上了某個位址,你把他固、 #定上就可以。 group { host webmaster{ option host-name “webmaster.easysafe.net”; #你的主機名。可以就設定為webmaster hardware ethernet 00:cd:a9:70:e3:f3; #你的MAC位址,在linux下直接用ifconfig就可以看到。如果你要看win #的mac位址可以用ipconfig當然這個MAC位址是我編的,呵呵。 fixed-address 10.0.0.30
} } }
朋友們可以看到,在這裡我們改的配置檔案的地方并不是很多:)總共加了也沒有10條語句,但是dhcp的配置檔案已經做好了。
然後我們把這個檔案複制回etc目錄下存儲為dhcpd.conf,然後你可以用vi看一下
不過别高興的太早,linux怎麼知道這是你要啟動dhcp服務,并且使用這個配置檔案呢?
現在就看我們後面要完成哪些工作了。
首先,要運作dhcp,我們需要一個客戶租約資料庫檔案這個檔案在/var/lib/dhcpd.leases,預設的這個庫是空的,不需要配置,不過管理者可以通過這個來察看dhcp的運作情況。‘
一般來說,這個檔案的格式是
lease address {statement}
根據以上要求建立/var/lib/dhcp/dhcpd.lease檔案。
完成了以上的配置,後面就是要啟動dhcp了,和以前說的smb服務一樣,也是通過service指令來執行 service dhcpd start
啟動服務失敗,系統提示第10和第27行出錯。
原來一個是把domain-name-servers輸錯成了domain-name-server
另一個則是添加了兩個range
費了半天力,到底把dhcp啟動起來了。郁悶,又改了好幾遍。
然後可以用pstree來察看此服務是否啟動
pstree |grep dhcpd 如圖所示,服務有了
如果希望以後每次伺服器啟動都把dhcp啟動的話可以用ntsysV來選擇你的dhcp伺服器。 如圖:
還剩下一點小問題,就是客戶機的配置。 客戶機win下的不多說了如圖:預設就是這樣的。
在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 |
©2010 Baidu