溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

工欲善其事,必先利其器 – 網(wǎng)絡(luò)抓包

發(fā)布時(shí)間:2020-07-26 02:53:22 來源:網(wǎng)絡(luò) 閱讀:595 作者:hongliang_liu 欄目:網(wǎng)絡(luò)安全

抓包(packet capture)就是將網(wǎng)絡(luò)傳輸發(fā)送與接收的數(shù)據(jù)包進(jìn)行截獲、分析,甚至可以用來轉(zhuǎn)發(fā),重傳等等,抓包可使用的場(chǎng)景很多,排錯(cuò)、驗(yàn)證、測(cè)試、核對(duì)等,我就舉幾個(gè)例子來說明吧。


場(chǎng)景一、在一臺(tái)存儲(chǔ)上啟用了SNMP服務(wù),隨后想通過驗(yàn)證UDP161/162的偵聽狀態(tài)來確認(rèn)服務(wù)是否確實(shí)啟動(dòng)了。


詳情:最簡(jiǎn)單的方式就是用進(jìn)入存儲(chǔ)的OS運(yùn)行類似netstat –anop查看UDP端口狀態(tài),還有些同學(xué)會(huì)條件反射的說telnet一下唄或者用nmap的工具做端口掃描,但是最后發(fā)現(xiàn)結(jié)果是Open | Filtered,這又有什么意思?除非找到這些工具的使用說明,否則無法明白其輸出的意思。但有的時(shí)候就是沒有太多參考文檔,比如netstat顯示的UDP端口狀態(tài)列都是空的,沒有任何狀態(tài),這代表什么呢?其實(shí)網(wǎng)絡(luò)抓包可以幫助我們。你可以在telnet的同時(shí)抓包,結(jié)果會(huì)發(fā)現(xiàn)telnet發(fā)起了TCP SYN包,立刻就被對(duì)端給Reset掉了,所以用telnet的提議是錯(cuò)誤的,用TCP去驗(yàn)證一個(gè)UDP端口是否在偵聽,顯然是南轅北轍了。同樣,做nmap掃描的同時(shí)抓包,你會(huì)發(fā)現(xiàn)原來UDP使用ICMP返回消息來判斷端口狀態(tài)。如果端口關(guān)閉,那么對(duì)端會(huì)返回port unreachable,如果沒有任何ICMP返回呢?那就說明中間存在包過濾邏輯,這也是為什么nmap掃描顯示open | filtered,nmap也無法確認(rèn)端口狀態(tài),因?yàn)闆]有任何ICMP消息返回。所以,nmap的掃描結(jié)果不能判斷端口狀態(tài),必須采取其它手段。不過這不是這個(gè)場(chǎng)景的重點(diǎn),我們的重點(diǎn)是可以通過抓包看到應(yīng)用程序的行為。

總結(jié):判斷端口狀態(tài)的方式很多,但你是否采用了正確的方式,完全可以通過抓包來判斷,它會(huì)告訴你一個(gè)應(yīng)用程序的行為,幫助你發(fā)現(xiàn)原因。


場(chǎng)景二、發(fā)現(xiàn)應(yīng)用程序與服務(wù)器之間的通信很慢。


詳情:為什么拿這個(gè)場(chǎng)景來說,因?yàn)樽グ蛯?duì)TCP的分析在這個(gè)場(chǎng)景里幾乎就直接問題原因所在了。通過分析TCP分段,我們發(fā)現(xiàn)了traffic pattern的變化,延遲由正常的幾個(gè)ms逐漸轉(zhuǎn)變?yōu)榱耸畮讉€(gè)ms,并在之后的流量中看到了Window Full以及最終的ZeroWindow消息。對(duì)TCP熟悉的同學(xué)立馬能夠判斷出接收端存在處理能力的問題,導(dǎo)致無法及時(shí)清理TCP接收緩存,使得隊(duì)列長度越來越長,根據(jù)Little Law和Utilization Law,響應(yīng)時(shí)間會(huì)呈指數(shù)上升,這也為什么我們會(huì)觀察到響應(yīng)時(shí)間的變化。還有同學(xué)提問中間的交換機(jī)/路由器是否有可能發(fā)生這樣的過載?當(dāng)然是肯定的,但我們這個(gè)場(chǎng)景里不是這個(gè)問題,為什么?因?yàn)槲覀冏グ鼪]有看到任何重傳。

總結(jié):抓包在這個(gè)case幫你排除了看起來最有可能是網(wǎng)絡(luò)問題的問題,TCP的行為非常清晰的指出了問題所在。


最后,給到大家一些建議:


  • 網(wǎng)絡(luò)包在大部分時(shí)候能夠告訴你真相,所以用好它很有價(jià)值。

  • 網(wǎng)絡(luò)包告訴你發(fā)生了什么,但不會(huì)告訴你為什么發(fā)生,理解協(xié)議行為和分析是你的任務(wù)。

  • 不要只看文檔,嘗試抓一下包,因?yàn)檎嫦嗫赡芎臀臋n是不同的。

  • 面對(duì)海量數(shù)據(jù)包,需要訓(xùn)練你的眼睛和大腦來過濾消息

  • TCP其實(shí)是老好人,不要總是責(zé)怪它。理解它,分析它,你會(huì)發(fā)現(xiàn)錯(cuò)誤大部分時(shí)候是在別的地方。

  • 新一代數(shù)據(jù)中心網(wǎng)絡(luò)十分復(fù)雜,用好工具,會(huì)幫你解決很多難題。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI