1. 程式人生 > >2-3-配置DHCP服務器實現動態地址分配

2-3-配置DHCP服務器實現動態地址分配

客戶端 -name sci oom 動態分配 工作站 request請求 負責 evel

學習一個服務的過程: 1、 此服務的概述:名字,功能,特點,端口號 2、 安裝 3、 配置文件的位置 4、 服務啟動關閉腳本,查看端口 5、 此服務的使用方法 6、 修改配置文件,實戰舉例 7、 排錯(從下到上,從內到外) 本節所講內容: ? DHCP服務器工作原理 ? 使用DHCP為局域網中的機器分配IP地址 ? 使用DHCP為服務器分配固定IP地址 實驗環境: 服務端:xuegod63.cn IP:192.168.1.63 客戶端:xuegod64.cn IP:192.168.1.64 DHCP服務概述:(重點掌握DHCP的工作原理)
名稱:DHCP - Dynamic Host Configuration Protocol 動態主機配置協議 功能:DHCP(Dynamic HostConfiguration Protocol,動態主機配置協議)是一個局域網的網絡協議,使用UDP協議工作, 主要有兩個用途: 1、 給內部網絡或網絡服務供應商自動分配IP地址,主機名,DNS服務器,域名 2、 配合其它服務,實現集成化管理功能。如:無人執守安裝服務器 特點:C/S 模式 自動分配IP地址,方便管理 DHCP不會同時租借相同的IP地址給兩臺主機; DHCP管理員可以約束特定的計算機使用特定的IP地址; 可以為每個DHCP作用域設置很多選項;
客戶機在不同子網間移動時不需要重新設置IP地址。每次都自動獲取IP地址就可以了。 DHCP的缺點: 當網絡上存在多服務器時,一個DHCP服務器不能查出已被其它服務器租出去的IP地址; DHCP服務器不能跨路由器與客戶機通信,除非路由器允許BOOTP協議轉發。(中繼) 端口: DHCP服務使用:端口67(bootps) 68(bootpc) 。 例:查看 # vim /etc/services 技術分享 file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg DHCP協議由bootp協議發展而來,是BOOTP
增強版本,bootps代表服務端端口, bootpc代表客戶端端口
bootp協議:引導程序協議(BOOTP)。它可以讓無盤工作站從一個中心服務器上獲得IP地址,為局域網中的無盤工作站分配動態IP地址,並不需要每個用戶去設置靜態IP地址。 BOOTP有一個缺點:您在設定前須事先獲得客戶端的硬件地址,而且,MCA地址與IP的對應是靜態的。換而言之,BOOTP非常缺乏“動態性 ”,若在有限的IP資源環境中,BOOTP的一對一對應會造成非常可觀的浪費。 DHCP可以說是BOOTP的增強版本,它分為兩個部分:一個是服務器端,而另一個是客戶端。所有的IP網絡設定數據都由DHCP服務器集中管理,並負責處理客戶端的DHCP要求;而客戶端則會使用從服務器分配下來的IP環境數據。 DHCP透過“租約和回收”的概念,有效管理動態分配客戶端的TCP/IP設定. 而且,作為兼容考慮,DHCP也完全照顧了BOOTP Client的需求。 一般linux系統都已安裝了客戶端 (開發工具包)
  1. [[email protected] ~]# rpm –qa | grep dhc
  2. dhclient-4.1.1-38.P1.el6.x86_64
  3. dhcp-common-4.1.1-38.P1.el6.x86_64
DHCP服務運行原理: 技術分享

file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg DHCP客戶端向服務端請求過程 客戶端C 服務器端S 目標端口 源IP 目標IP -------DHCPDISCOVER-------> udp 目標67 源IP0.0.0.0 目的IP:255.255.255.255 #即DHCP客戶機尋找DHCP服務器的階段。DHCP客戶機以廣播方式(因為DHCP服務器的IP地址對於客戶機來說是未知的)發送DHCPdiscover發現信息來尋找DHCP服務器,即向地址255.255.255.255發送特定的廣播信息。網絡上每一臺安裝了TCP/IP協議的主機都會接收到這種廣播信息,但只有DHCP服務器才會做出響應 <------DHCPOFFER ---------- udp 68 源IP是DHCP服務器的IP, 目的IP: 255.255.255.255 即DHCP服務器提供IP地址的階段。在網絡中接收到DHCPdiscover發現信息的DHCP服務器都會做出響應,它從尚未出租的IP地址中挑選一個分配給DHCP客戶機,向DHCP客戶機發送一個包含出租的IP地址和其他設置的DHCPoffer提供信息 -------DHCPREQUEST --------> udp 67 源IP0.0.0.0 目的IP:255.255.255.255 即DHCP客戶機選擇某臺DHCP服務器提供的IP地址的階段。如果有多臺DHCP服務器向DHCP客戶機發來的DHCPoffer提供信息,則DHCP客戶機只接受第一個收到的DHCPoffer提供信息,然後它就以廣播方式回答一個DHCPrequest請求信息,該信息中包含向它所選定的DHCP服務器請求IP地址的內容。之所以要以廣播方式回答,是為了通知所有的DHCP服務器,他將選擇某臺DHCP服務器所提供的IP地址 <------DHCPACK ------------ udp 68 源IP是服務器的IP 目的IP: 255.255.255.255 即DHCP服務器確認所提供的IP地址的階段。當DHCP服務器收到DHCP客戶機回答的DHCPrequest請求信息之後,它便向DHCP客戶機發送一個包含它所提供的IP地址和其他設置的DHCPack確認信息,告訴DHCP客戶機可以使用它所提供的IP地址。然後DHCP客戶機便將其TCP/IP協議與網卡綁定,另外,除DHCP客戶機選中的服務器外,其他的DHCP服務器都將收回曾提供的IP地 註意:客戶端執行DHCP 廣播後,如果沒有DHCP服務器響應客戶端的請求,客戶端會隨機使用169.254.0.0/16 網段中的一個IP 地址配置本機地址。 169.254.0.0/16是windows的自動專有IP尋址範圍,也就是在無法通過DHCP獲取IP地址時,由系統自動分配的IP地址段。

早先的Linux上並不會產生這條路由,現在有這條路由是為了和windows兼容。
  1. [[email protected] ~]# route -n
  2. Kernel IP routing table
  3. Destination Gateway Genmask Flags Metric Ref Use Iface
  4. 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
  5. 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
  6. 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
安裝DHCP dhclient-4.1.1-38.P1.el6.x86_64.rpm #客戶端 dhcp-common-4.1.1-38.P1.el6.x86_64.rpm #包括DHCP客戶端和服務端共同需要的一些文件 dhcp-4.1.1-38.P1.el6.x86_64.rpm #DHCP服務端 [[email protected] ~]# yum-y install dhcp 配置文件位置: 當DHCP 主程序包安裝好後會自動生成主配置文件的範本文件 /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample 而在/etc 目錄下會建立一個空白的dhcpd.conf 主配置文件。 ls /etc/dhcp/dhcpd.conf 現在我們將範本配置文件復制到/etc 目錄下替換掉空白dhcpd.conf 主配置文件。 [[email protected] ~]# cp/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf 服務啟動關閉腳本,查看端口 [[email protected] ~]#service dhcpd start 正在啟動 dhcpd: [失敗] #這是因為默認配置文件中分配的都是10.17.224.0 網段的IP地址。而我的配置IP地址是192.168.1.0. 必須在一個網段中。 啟動方法: 方法1: #service dhcpd restart /start/stop/status 方法2: [[email protected] ~]# /etc/init.d/dhcpd start 保證開機啟動: chkconfig dhcpd on #配置的服務要保證開機啟動 chkconfig --list dhcpd #查看服務當前啟動級別 chkconfig --level 3 dhcpd off #運行級別3關閉自動加載dhcpd 服務 chkconfig --level 3 dhcpd #運行級別3自動加載dhcpd 服務 修改配置文件,實戰舉例 說明: dhcp 範本配置文件內容包含了部分參數、聲明以及選項的用法,其中註釋部分可以放在任何位 置,並以“#”號開頭,當一行內容結束時,以“;”號結束,大括號所在行除外 可以看出整個配置文件分成全局和局部兩個部分。但是並不容易看出哪些屬於參數,哪些屬於聲明和選項。 概念與協議: 作用域:可以分配IP的範圍 subnet (子網) 地址池:可以分配給客戶端的IP,range包括的IP 保留地址:指定某個客戶端使用一個特定IP,通過host配置的 租約(時間):客戶端可以使用這個IP地址的時間 配置文件:/etc/dhcp/dhcpd.conf 部分配置解釋 # option definitions common to allsupported networks... #定義全局配置,通用於所有支持的網絡選項. option domain-name"example.org"; #為客戶端指定所屬的域 option domain-name-serversns1.example.org, ns2.example.org; #為客戶端指定DNS服務器地址 default-lease-time 600; #租約時間(秒) lease:租賃,租約 作用:定義默認IP 租約時間,以秒為單位的租約時間。 互動:如果設置的比較短,是否會出現租約時間到了以後會重新去獲取ip地址,造成用戶斷網? 50%:續約。(續不上繼續用) 87.5%:再次續約。(續不上找別人) DHCP工作站除了在開機的時候發出 DHCPrequest 請求之外,在租約期限一半的時候也會發出 DHCPrequest,如果此時得不到 DHCP服務器的確認的話,工作站還可以繼續使用該IP;當租約期過了87.5%時,如果客戶機仍然無法與當初的DHCP服務器聯系上,它將與其它 DHCP服務器通信。如果網絡上再沒有任何DHCP協議服務器在運行時,該客戶機必須停止使用該IP地址,並從發送一個Dhcpdiscover數據包開 始,再一次重復整個過程。要是您想退租,可以隨時送出DHCPRELEASE 命令解約,就算您的租約在前一秒鐘才獲得的。 max-lease-time number 7200; #租約時間的最大值 作用:定義客戶端IP租約時間的最大值,當客戶端超過租約時間,卻尚未更新IP 時,最長可以使用該IP 的時間; 例: 比如,機器在開機獲得IP地址後,然後關機了。這時,當時間過了default-lease-time 600秒後,沒有機器向DHCP續約,DHCP會保留7200秒,保留此IP地址不用於分配給其它機器。當超過7200秒後,將不再保留此IP地址給此機器。 註意:上面參數值都是以秒為單位的租約時間,該項參數可以作用在全局配置中,也可以作用在局部配置中。 log-facility local7; #定義日誌類型為 local7 3.3 常用聲明介紹 聲明一般用來指定IP 作用域、定義為客戶端分配的IP 地址池等等 聲明格式如下: subnet 網絡號 netmask 子網掩碼 { 選項或參數 } 技術分享 file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg 註意:網絡號必須與DHCP服務器的網絡號相同 下面介紹以下每個選項的含意: (1)range 起始IP地址 結束IP地址 作用:指定動態IP 地址範圍 註意:可以在subnet(子網) 聲明中指定多個range,但多個range 所定義IP範圍不能重復 常用選項介紹 選項通常用來配置DHCP 客戶端的可選參數,比如定義客戶端的DNS 地址、默認網關等等。選項 內容都是以option 關鍵字開始。 常見選項使用如下: (2)option routers ip地址 #為客戶端指定默認網關 如:option routers 10.5.5.1; (3)option domain-name-servers ip地址 #為客戶端指定DNS 服務器地址 註意:(1)、(2)、(3)選項可以用在全局配置中,也可以用在局部配置中。 3.5 租約數據庫文件 租約數據庫文件用於保存一系列的租約聲明,其中包含客戶端的主機名、MAC 地址、分配到的IP地址,以及IP地址的有效期等相關信息。這個數據庫文件是可編輯的ASCII 格式文本文件。每 當發生租約變化的時候,都會在文件結尾添加新的租約記錄。 DHCP 剛安裝好後租約數據庫文件dhcpd.leases 是個空文件
  1. [[email protected] ~]# ls /var/lib/dhcpd/dhcpd.leases
當DHCP 服務正常運行後就可以使用cat 命令查看租約數據庫文件內容了 實例: 應用案例 公司有60 臺計算機,IP地址段為192.168.0.1-192.168.0.254,子網掩碼是255.255.255.0,網關為192.168.0.1,192.168.0.2-192.168.0.30 網段地址給服務器配置,客戶端可以使用的地址段為192.168.0.100-200,其余剩下的IP 地址為保留地址。 操作步驟: 定制全局配置和局部配置,局部配置需要把192.168.0.0/24 網段聲明出來,然後在該聲明中指定一個IP 地址池,範圍為192.168.0.100-192.168.0.200,分配給客戶端使用,最後重新啟動dhcpd 服務讓配置生效。 實驗環境: 互動:我的虛擬機使用橋接模式是否可行? 不行,因為你的局域網中有可能就有DHCP服務器,這樣你就很難,讓你的客戶端是從你的DHCP服務器獲得IP地址。另外,也可能造成公司局域網中其它機器因為獲得了你DHCP服務器上的IP地址,而上不了網。 技術分享 file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg 將xuegod63和xuegod64的網卡模式改為: 技術分享 file:///C:/Users/Administrator/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg 編輯刪除整篇配置內容 dgg 刪除到文件首 dG 刪除到文件末 修改配置文件
  1. subnet 192.168.0.0 netmask 255.255.255.0 {
  2. range 192.168.0.100 192.168.0.200;
  3. option domain-name-servers 192.168.0.1;
  4. option domain-name "xuegod63.cn";
  5. option routers 192.168.0.1;
  6. option broadcast-address 192.168.0.255;
  7. default-lease-time 600;
  8. max-lease-time 7200;
  9. }
確保IP地址為192.168.0.0網段
  1. [[email protected] ~]# ifconfig
  2. eth0 Link encap:Ethernet HWaddr00:0C:29:E0:19:A9
  3. inet addr:192.168.0.63 Bcast:192.168.0.255 Mask:255.255.255.0
啟動服務
  1. [[email protected] ~]# service dhcpd restart
  2. 正在啟動 dhcpd: [確定]
  3. 驗證:
  4. 登錄到xuegod64主機
  5. 開啟ip的自動獲取
  6. 重啟網絡通過dhcp服務端分配地址信息
查看分配的IP
  1. [[email protected] ~]# ifconfig
  2. eth0 Link encap:Ethernet HWaddr 00:0C:29:0F:90:4F
  3. inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
查看默認網關
  1. [[email protected] ~]# route -n
  2. Kernel IP routing table
  3. Destination Gateway Genmask Flags Metric Ref Use Iface
  4. 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
  5. 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
  6. 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
查看DNS
  1. [[email protected] ~]# cat/etc/resolv.conf
  2. ; generated by/sbin/dhclient-script
  3. search xuegod63.cn cn
  4. nameserver 192.168.0.1
查看租約數據庫文件
  1. [[email protected] ~]# cat/var/lib/dhcpd/dhcpd.leases
  2. # The format of this file isdocumented in the dhcpd.leases(5) manual page.
  3. # This lease file was writtenby isc-dhcp-4.1.1-P1
  4. server-duid"\000\001\000\001\036\210\0034\000\014)\340\031\251";
  5. lease 192.168.0.100 {
  6. starts 5 2016/03/25 14:11:54;
  7. ends 5 2016/03/25 14:21:54;
  8. cltt 5 2016/03/25 14:11:54;
  9. binding state active;
  10. next binding state free;
  11. hardware ethernet 00:0c:29:0f:90:4f;
  12. }
例2:IP地址綁定 在DHCP 中的IP 地址綁定用於給客戶端分配固定IP 地址。比如服務器需要使用固定IP 地址就可以使用IP 地址綁定,通過MAC 地址與IP 地址的對應關系為指定的物理地址計算機分配固定IP地址。 整個配置過程需要用到 host 聲明和hardware、fixed-address 參數。 (1)host 主機名 {......} 作用:用於定義保留地址 (2)hardware 類型 硬件地址 作用:定義網絡接口類型和硬件地址。常用類型為以太網(ethernet),地址為MAC 地址。 (3)fixed-address IP 地址 作用:定義DHCP 客戶端指定的IP 地址。
  1. subnet 192.168.0.0 netmask255.255.255.0 {
  2. range 192.168.0.100 192.168.0.200;
  3. option domain-name-servers 192.168.0.1;
  4. option domain-name "xuegod63.cn";
  5. option routers 192.168.0.1;
  6. option broadcast-address 192.168.0.255;
  7. default-lease-time 600;
  8. max-lease-time 7200;
  9. host xuegod64 { #xuegod64可自定義,這一段內容要寫在subnet字段中和subnet配合使用
  10. hardware ethernet 00:0C:29:0F:90:4F;
  11. fixed-address 192.168.0.254;
  12. }
  13. }
驗證: xuegod63重啟dhcp服務
  1. [[email protected] ~]# servicedhcpd restart
  2. 關閉 dhcpd: [確定]
  3. 正在啟動 dhcpd: [確定]
  4. xuegod64重啟network服務
  5. service network restart
註意:劃分子網時,如果選擇直接配置多作用域實現動態IP分配的任務,則必須要為DHCP 服務 器添加多塊網卡,並配置多個IP 地址,否則DHCP 服務器只能分配與其現有網卡IP 地址對應網 段的作用域。 Linux下ntpdate時間同步 Ntp服務安裝 yum –y install ntp 時間同步方法 方法一: 同步命令 # ntpdate ntp 域名或ip 例:# ntpdate192.168.1.10 http://www.pool.ntp.org是NTP的官方網站,在這上面我們可以找到離我們國家的NTP Server cn.pool.ntp.org.它有3個服務器地址: 服務器一: 1.cn.pool.ntp.org 服務器二: 2.asia.pool.ntp.org 服務器三: 3.asia.pool.ntp.org (直接用域名有時有問題,可以先Ping出他們的IP,然後用IP地址同步) 自動運行同步時間腳本設定 # crontab –e (如果沒有安裝crond 安裝yum –y installvixie-cron) 添加腳本例子如下: */20 * * * * /usr/sbin/ntpdate 1.cn.pool.ntp.org #每20分鐘執行一次 30 5 * * * /usr/sbin/ntpdate ntp1.aliyun.com #每天早晨5點半執行 ※ 前面五個*號代表五個數字,數字的取值範圍和含義如下: 分鐘(0-59) 小時(0-23) 日期(1-31) 月份(1-12) 星期(0-6)//0代表星期天 設定完畢後,可使用#crontab –l 查看上面的設定。


方法二: 使用ntpd服務,要好於ntpdate加cron的組合。因為,ntpdate同步時間,會造成時間的跳躍,對一些依賴時間的程序和服務會造成影響。比如sleep,timer等。而且,ntpd服務可以在修正時間的同時,修正cpu tick。理想的做法為,在開機的時候,使用ntpdate強制同步時間,在其他時候使用ntpd服務來同步時間。 要註意的是,ntpd 有一個自我保護設置: 如果本機與上源時間相差太大, ntpd 不運行. 所以新設置的時間服務器一定要先ntpdate 從上源取得時間初值, 然後啟動 ntpd服務。ntpd服務 運行後, 先是每64秒與上源服務器同步一次, 根據每次同步時測得的誤差值經復雜計算逐步調整自己的時間, 隨著誤差減小, 逐步增加同步的間隔. 每次跳動, 都會重復這個調整的過程.


擴展知識: 1、讓NTP服務同步硬件時間 最後提及一點,ntp服務,默認只會同步系統時間。如果想要讓ntp同時同步硬件時間,可以設置/etc/sysconfig/ntpd 文件。 在/etc/sysconfig/ntpd文件中,添加 SYNC_HWCLOCK=yes 這樣,就可以讓硬件時間與系統時間一起同步。 如下:
  1. [[email protected]~]# vim/etc/sysconfig/ntpd #允許BIOS與系統時間同步
  2. # Drop root to id ‘ntp:ntp‘ bydefault.
  3. SYNC_HWCLOCK=yes
  4. OPTIONS="-u ntp:ntp -p/var/run/ntpd.pid -g"
手工同步系統時間到硬件時間 hwclock –r #查看BIOS時間命令 hwclock -w #將當前系統時間寫入BIOS中。 如何修改時間:
  1. [[email protected] ~]# date -s "2017-5-1021:13"

2-3-配置DHCP服務器實現動態地址分配