記一次簡單域名干擾劫持導致鏈接被重置故障處理

   寫這篇文章的初衷很簡單,就是給有需要的人提供一個處理類似問題的思路,這個故障其實很簡單,有經驗的應該可以直接判斷出來了,但是在沒有經驗且沒有遇到過這種問題的情況下,可以稍加借鑑一下,我這裏僅僅是寫出一個思路,有問題可以提出來一塊討論。原諒我塗掉了一些東西,輕拍...

   最近在上架新設備的時候,替換舊設備的解析,在下發系統對該設備進行探測時直接報出了探測失敗的錯誤,涉及域名較多,首先我找到了下發系統負責人問他們錯誤原因,他們在下發系統設備上手動wget抓某個域名無法訪問,telnet 80端口是通的。

接着我要來了下發系統ip,查看訪問日誌,發現根本沒有訪問日誌,可是確實是訪問到了這個設備,並且探測設備也沒有收到狀態碼之類的信息,我在探測時候同時查看訪問日誌,也沒發現該ip的訪問記錄,所以判斷問題出在網絡層,沒有建聯成功,也沒有到應用層呢,於是決定抓包分析下原因。

一、

我固定某個域名的ip,打開瀏覽器訪問測試,結果如下:

wKioL1MPIUbDuJviAAIuAbboJh4668.jpg

有經驗的運維看到這個錯誤應該會大概猜出來問題出在哪裏了。

二、

瀏覽器訪問測試,鏈接被重置,直接無法訪問,於是登陸到重慶的一臺服務器,對該設備域名進行curl測試,並且兩端抓包,結果如下:

202爲客戶端,240server

wKioL1MPIXyCem90AAJTskzPndc143.jpg


首先大概解釋一下這個三次握手數據包流程。

1、client端給server端發送syn包(無問題)

2、server端給client端發送synack包(無問題)

3、4client端給server端發送ack確認包和開始get數據(正常)

5、server端給client端發送了一個FINack結束包(不正常)

6、7client端給server端發送了一個ack確認包和finack結束包(相對上一個包來看正常)

89server端給client端發送了rstack包(不正常)

   結論:

   從以上可以看出在第4個包get數據之後開始出現不正常,且第二個包時候可以看到server端到clientttl52


   三、

   這裏數據包傳輸就不多說了,我們注意看第5個包,server端到client端的時候,發送了一個FIN,ACK包,我們知道正常情況下這是不應該的,我們在注意看下面,TTL變成了118,與    上面結論中提到的ttl52不符合,且結合一中瀏覽器訪問的現象可以得出結果,這個server的機房出口很可能是做了防火牆的限制來控制域名的白名單等情況。

wKioL1MPIbmCqhRSAAKcZJ2TLI0041.jpg

  我們在server端查看抓到的數據包爲client端主動向server端發送了rst包,所以說機房出口或者某條路上有中間人在干擾正常訪問。不過要注意的是,“中間人”干擾這種方式並不    一定可以只根據ttl判斷出來,有的時候比較高明的干擾,ttl並不會太明顯的看出來,也存在有時候客戶端抓包中不會看到server端發送過來的FIN等異常數據包,因爲server端根本就懶    得理你。當然我們判斷異常的根本還是看三次握手的情況的。其實我們根據ttl有時候也可以大概的猜測出來這個“中間人”距離哪一端較近。

  當然事無絕對,我寫出來這個的目的只是提供一些平時處理故障的思路而已,有不對或者描述不準確的地方還請大家指正。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章