我想換一下電腦的IP地址,做測試用,自己的電腦是使用dhcp獲取IP地址的,當前獲取的IP地址已使用,想自動獲取一個其它的IP地址做測試使用,但是無論使用ipconfig/relase釋放多少次,最后使用ipconfig/renew獲取的IP地址還是之前的IP地址,這是為什么?
對于這個問,一般人真的不絕對講不了這么詳細,不信你往下看,絕對讓你茅塞頓開。
一般人理解,肯定就是租期
對于這個問題,大多數(shù)人都會知道,那肯定是你的IP地址租期沒到期,雖說你ipconfig/relase釋放IP地址,但是你在重新獲取的時候,由于IP地址還在這個租期內(nèi),你當然獲取的還是之前的IP地址。
假如就算你現(xiàn)在把租期更換成了2分鐘,你現(xiàn)在ipconfig/relase一下之后,等租期到期后,你等了3分鐘,在續(xù)租IP地址,但是如果在2分鐘過期之后,這個IP地址,才真正的從DHCP地址池釋放出來,你實際等了1分鐘,但是如果這1分鐘內(nèi),沒有新設(shè)備接入到這個網(wǎng)絡(luò)把你之前獲取的IP地址占用,你還是會獲取到之前的IP地址的。
ipconfig/release、ipconfig/renew IP地址請求過程
如果你還想知道更具體的原因,那么下面我來讓你看一下,從底層抓包分析看一下,為什么你還是獲取的之前的IP地址。
我們打開wireshark抓包工具,然后使用ipconfig/relase釋放IP地址,然后再使用ipconfig/renew續(xù)約IP地址。
然后,我們就抓到了如下圖所示數(shù)據(jù)包:
我們先看一第一個包DHCP relase,可以看到電腦的IP地址是192.168.0.254,使用的是DHCP請求釋放這個IP地址。
Client IP address:192.168.0.254,電腦當前客戶端IP地址是192.168.0.254。
釋放完成之后,再使用ipconfig/renew去續(xù)約Ip地址。
這里就有四個包,這四個包之前也已經(jīng)和大家分析過了,有感興趣的老鐵,請參考:詳細的電腦請求DHCP的IP地址過程,有了這篇文章,再也不怕別人問什么是DHCP了。
其實現(xiàn)實是這樣的,當你ipconfig/release之后,ip地址被釋放掉,當你ipconfig/renew時,這時第一個discover請求DHCP發(fā)現(xiàn)包時,Client Ip address:0.0.0.0,說明現(xiàn)在電腦沒有IP地址了,但是這時DHCP discover選項里有個option 50,這個選項就已經(jīng)表明,我要請求192.168.0.254,這個IP地址了。
如果是一臺新電腦接入到網(wǎng)絡(luò),電腦發(fā)現(xiàn)的第一個dhcp discover的包時,在discover包中,是沒有option 50選項的。
只有已經(jīng)接入過網(wǎng)絡(luò)的電腦,請求過IP地址的電腦,才會在重新獲取IP地址時,discover包中才會有option 50選項。
其實,這時雖說電腦在discover,第一階段就申請192.168.0.254這個IP地址,你們說,DHCP會按這個要求給它嗎?
其實這要看DHCP有沒有把這個IP地址分配出去,如果沒有分配出去,就會按discover中的option 50選項,優(yōu)先將這個IP地址分配給這臺電腦。如果已經(jīng)分配給其它電腦了,在dhcp服務(wù)器offer的時候,會提供給你一個其它的IP地址,就算你在discover里面請求的是192.168.0.254,dhcp在offer階段,也不會提供這個IP地址給,dhcp offer給你一個新的地址192.168.0.253,這時你就會在request時,請求192.168.0.253這個IP地址了。
這時還在discover階段的時候,電腦已經(jīng)知道自己要請求什么IP地址,除非路由器,已將這個IP地址分配給其它設(shè)備了,否則還會把這個IP地址分配給你電腦。
這就是為什么使用ipconfig/release釋放IP地址后,再使用Ipconfig/renew續(xù)約IP地址還是之前的IP地址。
當電腦釋放IP地址之后,電腦無論你提供什么地址給,我就在discover第一階段,請求我之前獲取的IP地址。
好的,你請求這個IP地址:192.168.0.254,我就提供這個IP地址給你,在DHCP offer階段,你的客戶端IP地址就是:192.168.0.254了。
在第三階段,你的電腦請求IP地址階段中,dhpc選項中,還是有個option 50,請求的IP地址就是dhcp offer提供的IP地址192.168.0.254。
在第四階段,當電腦請求之后,DHCP服務(wù)器就確定把這個IP地址分配給這個電腦了。
新電腦第一次請求IP地址過程
當一臺電腦沒有從路由器獲取過Ip地址時,他的第一個DHCP包就是DHCP discovery,這個dhcp discover中是沒有option 50選項的,因為剛接入的電腦不知道該請求什么IP地址。
當?shù)谝粋包,找到dhcp后,dhcp服務(wù)器發(fā)現(xiàn)有客戶端再找dhcp服務(wù)器,于是dhcp收到這個包后,好的,我知道了,我給你個IP地址,你看這個IP地址可以嗎?
第二階段,于是DHCP服務(wù)器向電腦發(fā)送了一個offer包,提供一個IP地址給這個電腦。
我給你的IP地址是,your
client
IP address:192.168.12.100
這時電腦收到了來自dhcp服務(wù)器提供的offer數(shù)據(jù)包,電腦打開一看,哦,你給我提供的IP地址是192.168.12.100,正是我想要的。
這時電腦就向服務(wù)器請求,說,我請求要使用這個192.168.12.100 IP地址,把這個IP地址給我吧。
這時在第三階段電腦向DHCP發(fā)送request數(shù)據(jù)包時,在第三階段,dhcp中才會有option 50選項,請求的IP地址。
這時DHCP服務(wù)器,就確定,說好的,我就把這個Your
clietn
IP address:192.168.12.100地址給你了。最后一個是ack確定包,這時這個DHCP請求IP地址就結(jié)束了。
|