從零開始linux學(xué)習(xí)--DHCP trouble shooting(七)

????????筆者最近在調(diào)整DHCP的服務(wù),由于服務(wù)器是多網(wǎng)卡,因此涉及到dhcpd.conf的一些配置,在進(jìn)行dhcpd業(yè)務(wù)測(cè)試重啟的時(shí)候,筆者發(fā)現(xiàn)了一個(gè)很神奇的報(bào)錯(cuò):

????????看到了報(bào)錯(cuò)說明是筆者沒有在dhcpd.conf中寫明創(chuàng)建的dhcp池到底在哪個(gè)網(wǎng)卡上分配。

????????參考了大鳥哥的linux學(xué)習(xí)手冊(cè),dhcpd –V查看了筆者的dhcp版本。

????????雖然鳥哥在說明中表示5.x以上版本不再需要。那對(duì)于筆者4.2.5版本呢?

????????cat /etc/sysconfig/dhcpd

????????看到?jīng)]有,大寫的“WARNING”,還有下面的一段英文注釋,找個(gè)詞典一邊翻譯一邊理解就好了~筆者在yum上找到的4.2的版本也是不需要向鳥哥一樣聲明端口的。# be aware that dhcpd listens *only* on interfaces for which it finds subnet declaration in dhcpd.conf 所以,如果沒有像筆者一樣下發(fā)服務(wù)器所在vlan的IP地址,那么就需要在dhcpd.conf中聲明一個(gè)接口所在的空subnet就可以了。

????????但是更大的問題來了:

????????筆者為什么園區(qū)網(wǎng)卡的地址變掉了???按照之前的筆記,筆者配置的IP地址應(yīng)該是192.168.101.2??!而且筆者仍然ssh連接著呢。這個(gè)192.168.1.84地址是怎么存在的?

????????嚇得筆者趕緊回到第一章配置網(wǎng)卡的地方:cd /etc/sysconfig/network-scripts/

????????發(fā)現(xiàn)沒有錯(cuò)啊,我確實(shí)在第二章把default-gateway給刪掉了。

? ? ? ? ip route show看一看:

????????對(duì)比第二章筆者完成的路由表:

????????真真正正多出了關(guān)于192.168.1.0/24的路由??。

? ? ? ? ip add看一下網(wǎng)卡:

????????對(duì)比第二章筆者完成的網(wǎng)卡:

????????發(fā)現(xiàn)神奇的多了兩行,淺色的一行說明筆者網(wǎng)卡上確實(shí)有一個(gè)192.168.1.84的IP地址;深色的網(wǎng)卡表示這個(gè)地址是有租約的,該地址是自動(dòng)獲取的!由于接口IP和路由表都是完整的,因此該網(wǎng)卡上的兩個(gè)地址都可以被園區(qū)訪問。

????????感嘆一下神奇的centos7,比較centos6多了很多新奇的功能。

????????為何會(huì)出現(xiàn)這個(gè)192.168.1.84的IP地址呢?筆者作為網(wǎng)管來看那一定是除了筆者的服務(wù)器還有某臺(tái)dhcp設(shè)備!并且該設(shè)備趁筆者不注意偷偷的在網(wǎng)絡(luò)中發(fā)送192.168.1.0/24的地址。造成網(wǎng)絡(luò)中地址混亂。好,下面筆者就打算把它抓出來干掉。

????????在服務(wù)器上先看一看arp信息:ip neighbor

????????發(fā)現(xiàn)除了筆者192.168.1.84的地址之外還有幾個(gè)地址。如何找出是誰在搗亂(筆者姑且稱之為搗亂者)呢?按照dhcp請(qǐng)求響應(yīng)的過程,筆者如何區(qū)分搗亂者和受害者呢?

????????一個(gè)很重要的過程,參考dhcp server的8種報(bào)文類型,只有dhcp offer和dhcp ack兩種報(bào)文是dhcp服務(wù)器才會(huì)發(fā)送給客戶端的。那么只要在網(wǎng)絡(luò)中發(fā)現(xiàn)這兩個(gè)報(bào)文,該報(bào)文中的src ip address就一定是搗亂者的IP地址。

????????下載安裝tcpdump:yum install tcpdump.x86_64

????????發(fā)現(xiàn)安裝失敗了。yum把整個(gè)源都搜了一遍,顯示Name or service not known。同時(shí)筆者linux服務(wù)器嘗試解析百度域名也無法解析了。由于搗亂者在dhcp報(bào)文中包含了dns的字段信息,因此造成筆者在進(jìn)行dns解析的時(shí)候找到了錯(cuò)誤的dns信息。

????????cat /etc/resolv.conf

????????vi /etc/resolv.conf

????????刪除錯(cuò)的dns,只保留筆者正確的dns server。Ping一下百度測(cè)試,發(fā)現(xiàn)正常。

????????接下來就比較順利的利用yum安裝tcpdump。

????????手動(dòng)刪除192.168.1.0/24的路由,使路由與筆者第二章調(diào)整的路由表一致:ip route del 192.168.1.0/24

????????其實(shí),筆者看到dns就已經(jīng)很懷疑這個(gè)搗亂者是192.168.1.243這臺(tái)服務(wù)器了,畢竟多數(shù)時(shí)候沒有在網(wǎng)絡(luò)中搭建dns時(shí),dhcp會(huì)發(fā)送本地IP地址的dns信息。但是還是抓一下,確認(rèn)數(shù)據(jù)包是不是由該設(shè)備發(fā)送,筆者就從上述的一些地址來抓包吧:

????????tcpdump -i enp1s0f0 host 192.168.1.243 orhost 192.168.1.1 or 192.168.1.2 or 192.168.1.200

????????查看上面的報(bào)文,筆者確認(rèn)就是該設(shè)備在網(wǎng)絡(luò)中發(fā)送dhcp報(bào)文。

????????ip neighbor查看該IP的mac地址,并在網(wǎng)絡(luò)上通過mac地址找到該設(shè)備。將其從網(wǎng)絡(luò)上踢出,問題結(jié)束。

????????另外筆者查看了一下centos7的功能,發(fā)現(xiàn)是由于NetworkManager這個(gè)功能模塊使得會(huì)出現(xiàn)如上的錯(cuò)誤故障,筆者順手將其關(guān)閉:systemctl stop NetworkManager

????????筆者關(guān)閉了一段時(shí)間的網(wǎng)卡,使其無法再向已經(jīng)建立連接的DHCP server續(xù)約,一覺醒來這個(gè)地址就去掉了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容