DHCP服務 ip分配 四個階段原理
1.DHCP服務目的 協議 作用 租約 原理四個階段
動態主機配置協議(Dynamic Host Configuration Protocol,動態主機配置協議)
①其目的主要是為TCP/IP協議網絡自動分配IP地址和相關參數(主機的IP地址、子網掩碼、廣播地址、默認網關、DNS地址等)。
②工作在局域網的網絡應用層協議,使用UDP協議工作。
③主要作用:減輕管理員配置網絡,尤其是配置IP地址的壓力,靈活、方便、快捷,也減輕了IP地址的使用浪費,避免IP地址沖突。
DHCP的分配方式:
1、自動分配是當DHCP客戶機第一次成功的從DHCP服務器獲取到一個IP地址后,就永久的使用這個IP地址。
2、手動分配是由DHCP服務器管理員專門制定的IP地址。
3、動態分配是當DHCP客戶機第一次從DHCP服務器獲取到IP地址后,並非永久的使用該地址,而是在每次使用完后,DHCP客戶機就會釋放這個IP地址,供其他客戶機使用。
租約(release)的概念:
IP地址的使用期限,使用期限到期可以進行續租。
可以手動獲取租約以及釋放租約。
四個階段原理 原理:
DHCP客戶端通過和DHCP服務器的交互通訊以獲得IP地址租約。為了從DHCP服務器獲得一個IP地址,
在標准情況下DHCP客戶端和DHCP服務器之間會進行四次通訊。DHCP協議通訊使用端口UDP 67(服務器端)
和UDP 68(客戶端)進行通訊,UDP68端口用於客戶端請求,UDP67用於服務器響應,並且大部分DHCP協議通訊使用廣播進行。
第一階段 客戶端發出DHCP DISCOVER請求IP地址等參數;
第二階段 服務器回應DHCP OFFER提供IP地址等參數;
第三階段 客戶端發出DHCP REQUEST接受基於DHCP服務器的租約;
第四階段 服務器回應DHCP ACK進行確認IP地址等參數的使用。
第一階段 DHCP DISCOVER
DHCP客戶端進行初始化(如DHCP客戶端啟動計算機、啟用網絡適配器或者連接到網絡時)發送DHCP DISCOVER;若DHCP服務器有一個對應網段IP,則響應。客戶機等待1秒,否則每隔2、4、8、16秒重發廣播,若仍未收到,使用169.254.0.0/16(0.1-255.254).同時每隔5分鍾再試一次.直到從DHCP服務器獲取IP地址為止。
第二階段 DHCP OFFER
所有接收到DHCP客戶端發送的DHCP DISCOVER廣播消息的DHCP服務器會檢查自己的配置,如果具有有效的DHCP作用域和富余的IP地址,則DHCP服務器發起DHCPOFFER廣播消息來應答發起DHCPDISCOVER廣播的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客戶端回復DHCPOFFER消息,則DHCP客戶端接受它接收到的第一個DHCPOFFER消息中的IP地址。
第三階段 DHCP REQUEST
當DHCP客戶端接受DHCP服務器的租約時,它將發起DHCPREQUEST廣播消息,告訴所有DHCP服務器自己已經做出選擇,
接受了某個DHCP服務器的租約。在此DHCPREQUEST廣播消息中包含了DHCP客戶端的MAC地址、接受的租約中的IP地址、
提供此租約的DHCP服務器地址等,所有其他的DHCP服務器將收回它們為此DHCP客戶端所保留的IP地址租約,以給其他DHCP客戶端使用。
此時由於沒有得到DHCP服務器最后確認,DHCP客戶端仍然不能使用租約中提供的IP地址,所以在數據包中仍然使用0.0.0.0作為源IP地址,廣播地址255.255.255.255作為目的地址。
第四階段 DHCP ACK
提供的租約被接受的DHCP服務器在接收到DHCP客戶端發起的DHCPREQUEST廣播消息后,
會發送DHCP ACK廣播消息進行最后的確認,在這個消息中同樣包含了租約期限及其他TCP/IP選項信息。
如果沒有其他主機使用此IP地址,則DHCP客戶端的TCP/IP使用租約中提供的IP地址完成初始化,從而可以和其他網絡中的主機進行通訊。
至於其他TCP/IP選項,如DNS服務器和WINS服務器等,本地手動配置將覆蓋從DHCP服務器獲得的值。
租約到期
DHCP客戶機重新登錄,直接發起一個之前使用的IP地址的request請求,如服務器已分配,重新執行上述四階段。
DHCP服務器將IP地址提供給DHCP客戶端時,會包含租約的有效期,默認租約期限為8天(691200秒),
客戶機租用的IP地址達到50%,就要更新租約,若服務器未回復,最大可以使用期限的87.5%,到達后客戶機進行
IP租用尋址,進行四個階段
2.案例DHCP服務 自動獲取ip
通常情況下,DHCP只能在廣播域使用,為了實現廣播域外一定范圍的DHCP服務,需要使用DHCP中繼技術。
dhcp的程序:dhcpd和dhcrelay
dhcp配置文件定義:
①默認最大租約期限(默認為秒)
②option--->指明地址和掩碼其他的相關屬性
filename:指明引導文件名稱
next-server:指明引導文件的服務器的IP地址
③subnet
④host
dhcp分配ip和租約記錄--->配置文件/var/lib/dhcpd/dhcpd.leases
實驗配置一: 搭建DHCP服務 實現動態獲取IP及相關網絡配置
1:服務器1 手動配置IP和網關或其他屬性,搭建DHCP服務,使用YUM進行安裝。
2:獲取配置文件模板,設置dhcp主配置文件
3:修改dhcp主配置文件,進行配置,然后啟動dhcp服務
在客戶機上進行驗證結果
1. 掛載鏡像sr0,配置yum環境 安裝dhcp軟件
mkdir /media/cdiso -p ---創建cdiso 掛載點
mount /dev/sr0 /media/cdiso ---掛載sr0 到cdiso下
配置yum環境, 只要配置yum之后就要清空緩存
yum clean all 清空緩存
cd /etc/yum.repos.d/
cp CentOS-Base.repo CentOS-Base.repo.bak
vim Centos-Base.repo
yu'm配置內容
2.安裝軟件
yum clean all 清空緩存
yum -y install dhcp 然后安裝軟件
3.dhcp主配置文件,配置ip資源池
cd /etc/dhcp/
vim /etc/dhcp/dhcpd.conf
進去有這一段話,復制一下
/usr/share/doc/dhcp*/dhcpd.conf.example
然后 復制一下這個文件 到 /etc/dhcp/dhcpd.conf
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
會顯示是否覆蓋,是
查看 cd /etc/dhcp/ ,會顯示有dhcpd.conf 這個文件
2.)添加地址池
vim /etc/dhcp/dhcpd.conf
主要添加地址池 有一個地址池和靜態ip是一個段的 這樣才能成功
vim dhcpd.conf 配置文件修改地址池
第一行指定一個段subnet 192.168.10.0 netmask 255.255.255.0 ;{
服務器網段 掩碼
range 192.168.10.2到192.168.10.90; 客戶端 ip可以用的是從2到90
開始的IP 結束的IP ---配置可使用ip數量
下一個domain-name-servers 8.8.8.8; ---DNS每行注意分號 dns
domain-name "ujiuye.com"; ---域名,給他指定ujiuye.com
option routers 192.168.10.254; ---路由網關下一跳,,(路由,中繼器)
# option broadcast-address 10.5.5.31; ---注解掉
default-lease-time 600; ---下面可以不改
max-lease-time 7200;
}
增加下一個網段20
subnet 192.168.20.0 netmask 255.255.255.0 {
range 192.168.20.1 192.168.20.90;
option domain-name-servers 8.8.8.8;
option domain-name "ujiuye.com";
option routers 192.168.20.254;
# option broadcast-address 10.5.5.31;
default-lease-time 600;
max-lease-time 7200;
保存退出
查看ip網卡是否更改
4. 測試客戶機
下面去配置客戶機
這兩個要同一個網段 都是10網段 vmnet1
然后去編輯 ifcfg-ens33這個網卡
把BOOTROTO改為dhcp獲取
注釋掉ip 和PREFIX (ip和子網掩碼注釋掉)
保存退出
輸入命令,自動獲取
dhclient -d ens33 ---為ens33這個網卡獲取ip地址
然后就會自動獲得最后一行的 bound to 192.168.10.132的ip地址
5給客戶機自動分配ip
安裝dhcp服務
cd /etc/dhcp/ ---到這個目錄下
ls ----查看所有文件
vim dhcpd.conf ----編輯
內容為這個
...........
上面可以配置地址池
..............
# set.
host centoszifu { ---指定主機名字
hardware ethernet 00:0c:29:95:62:64; ---那個主機的msak 即 ether 00:0c:29:cc:39:1f
fixed-address 192.168.20.30; ---指定的ip
}
改主機名字,指定主機mask ,和指定的IP
3.案例 搭建dhcp中繼器,跨網段獲取ip
實驗配置二:搭建DHCP並配置DHCP中繼服務,完成跨網段DHCP服務
1)關閉 服務器,中繼器,客戶機 的防火牆服務
iptables -F
iptables -X
iptables -Z
systemctl stop firewalld.service ---關閉防火牆
setenforce 0
2)中繼路由器兩塊網卡 關閉中繼服務端虛擬機dhcp功能
虛擬機增加第二塊網卡 和關閉虛擬機的 在虛擬網絡編輯器 dhcp的功能
關閉要使用的 Vmnet1 和vmne2的 dhcp功能
或者去我的電腦管理 管理 服務和應用程序 服務 關閉vmnet和dhcp
或者: Win+R 輸入services.msc 也可直接打開服務
3.)配置中繼器路由ip 兩個網卡 為服務器客戶端 的網關
為DHCP中繼服務器配置靜態IP和網關,每個網卡的IP需是其他客戶機以及DHCP服務器的對應的網關
vi ifcfg-ens33
第一個 Ip 改為服務器的10.254 為下面服務器要用到的網關
即中繼器vmnet1 ens33 的IP10.254 作為服務器的 網關
配置第二個網卡ip 即 客戶機 要連接的 網關
cp ifcfg-ens33 ifcfg-ens38 --復制這個網卡,然后更改配置
vi ifcfg-ens38 --- ip 為 20.254 為客戶機的網關
把uuid注釋掉, 名字和ip改好
4.配置服務器 的ip 中繼服務端 開啟路由轉發功能
cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33
在下面一行加入網關 GATEWAY= 192.168.10.254 --即 中繼器兼 路由的 ip
ping 192.168.10.254 看是否成功
配置dhcp中繼服務器開啟路由功能
echo "1">/proc/sys/net/ipv4/ip_forward ---開啟臨時路由
永久開戶路由轉發:
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 文件里增加
sysctl -p 刷新啟動
5)配置客戶機 的ip 增加網關
多台客戶機臨時配置靜態IP,進行通信,驗證中繼服務器路由轉發效果。
先更改設置里面vmnet2為僅主機模式,因為dhcp服務器為vmnet1,所以客戶機為vmnat2 中繼器都有這兩個網段192.10.254 和192.168.20.254 的ip
配置修改客戶機IP和網關
cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33
GATEWAY= 192.168.20.254 -----中繼器第二個網卡IP作為客戶機的網關
檢測客戶機 能否ping通 服務器
在客戶機ping 192.168.10.2 --10.2為服務器的ip
檢測 服務器端ping 192.168.20.20 ---20.20為客戶機ip
如果不通則手寫,增加路由:
(1)網段 -net
配置服務器的命令為 : 服務器網段為10網段 客戶機為20
route add -net 192.168.20.0/24 gw 192.168.10.254
我要到20.0網段 這個網段下一跳網關為10.254中繼器
配置客戶機的命令為 客戶機ip為20網段
route add -net 192.168.10.0/24 gw 192.168.20.254
我要到10網段 我的下一跳網關為20.254 ,
下一跳為我要到的下一個主機ip ,也就是我客戶機要到的網關
(2)到主機 -host
route add -host 192.168.10.254 gw 192.168.20.254
我要到的這個主機ip 我本機下一跳網關
6.)中繼服務器安裝 dhcp 設置中繼永久保存 啟動服務查看端口
配置好yum,掛載好了之后執行以下命令
yum clean all 清空緩存
yum -y install dhcp
打開中繼 設置永久保存
dhcrelay -i ens33 -i ens38 192.168.10.2 打開中繼,不是永久保存
中繼服務的2個網卡 服務器ip (有幾個網卡參與中繼都為-i ensxxx 加到后面即可)
netstat -antulp | grep :67 查看網絡狀態,過濾出67端口
永久保存 ---寫入其腳本:
cd /usr/lib/systemd/system
vim dhcrelay.service 永久有效去配置這個文件
在Exescstart 后面直接加 -i ens33 -i ens38 192.168.10.2
vim中繼配置永久保存
啟動服務
systemctl daemon-reload
systemctl enable dhcrelay.service --開機啟動
systemctl start dhcrelay.service --啟動服務
7.配置客戶機使其自動獲取ip
首先查看客戶機的網卡, 應該為vmnet2 --客戶機為20網段
vim ifcfg-ens33 --注釋其中內容
把BOOTPROTO=none 改為=dhcp --自動獲取
注釋掉 IPADDR 和 PREFIX=24
systemctl restart network --重新啟動網絡
Ifconfig ---查看網卡配置信息
dhclient -d ens33 自動獲取ip
重新啟動網絡再次查看
systemctl restart network --重新啟動網絡
Ifconfig --查看網卡配置信息
進行客戶機針對性測試
重啟客戶機網卡,或者獲得dhcp租約
dhclient -d ethX 為網卡獲取IP租約 dhclient -r:釋放租約