當前位置:首頁 >  IDC >  云計算 >  正文

華云數據:ping不通 找房東——從一個ping包來解析網絡轉發(fā)原理

 2019-03-04 15:19  來源: 互聯(lián)網   我來投稿 撤稿糾錯

  阿里云優(yōu)惠券 先領券再下單

隨著云計算業(yè)務的快速發(fā)展,國內外云計算企業(yè)的專利之爭也愈發(fā)激烈。在云計算這樣的技術領域,專利儲備往往代表著企業(yè)最新的技術實力。華云數據本期“智匯華云”專欄將從一個ping包來解析網絡轉發(fā)原理,與大家共同分享云計算領域的最新技術與解決方案。

背景

“房東,我ping不通了”,相信在外打工租房的各位都有過這個經歷吧。ping不通,一個簡單的現象,其實蘊藏著很多的過程,今天我們就來談談,ping不通該怎么辦。

基礎概念

在說這些之前,先介紹幾個概念:

1、ping包

ping包走的是ICMP協(xié)議,什么是ICMP協(xié)議呢,Internet控制報文協(xié)議,字面意思不好理解,作用很簡單,就是發(fā)送一些控制消息,來檢測鏈路。

要了解一個協(xié)議,我們一般先看它是怎么封裝的,查什么書籍都是假的,最好的辦法就是自己去抓一個包看看,抓包的工具有很多種,我喜歡用wireshark(windows)和tcpdump(linux),抓包工具怎么用,自行去度娘。

抓到的報文如下,一步步慢慢分析:

首先是以太頭

我們知道,MAC地址是用來唯一標識網卡的,暫時理解為網卡門牌號吧。

DMAC:目的mac,也就是你的數據包要發(fā)給誰,

SMAC:源mac,你自己網卡的門牌號

type:數據包的類型

Tips: 小知識,這里插一句,如果是三層轉發(fā),DMAC一般是你網關的mac地址,如果是二層轉發(fā),DMAC則是目的端的MAC地址,這也是區(qū)分一個數據包是二層還是三層轉發(fā)最好的方法。

IP層,主要看幾個吧。

dscp:最大的用處就是區(qū)分報文優(yōu)先級,我們都知道,協(xié)議報文需要高優(yōu)先級

flags:分片的標志,下面的fragment offset是指分片的偏移量

protocol: 協(xié)議類型,可以看到 我們的ping是通過icmp協(xié)議

icmp里面比較重要的2個 type和code,以此來決定這個icmp報文是干嘛的。

這里的type 8 code 0,是icmp request,具體這些代表什么意思,我們可以去查RFC792

https://tools.ietf.org/html/rfc792

WHAT?什么是RFC,我只聽過KFC,問題不大,自己去度娘。

2、ARP

ARP是什么,地址解析,所謂的地址解析就是根據IP地址來獲取MAC地址,上面的報文你也看到了,你要ping別人,要知道別人的IP,別人的mac,發(fā)到網關的需要知道網關的mac,發(fā)到目的端的需要知道目的端的mac。

ARP的過程很簡單,客戶端先發(fā)一個ARP請求,比如你知道了10.10.10.10這個IP,但是你不知道m(xù)ac,你就需要發(fā)一個ARP請求來獲取。

好了 我們照例抓一個包,來看看ARP是怎么工作的。

ARP的請求報文是一個廣播報文,所以他的dmac就是ff:ff:ff:ff:ff:ff,你知道了對方的IP,但是不知道對方的mac,所以你的target mac就填00:00:00:00:00:00就行,看上圖,這是一個ARP請求報文,我想知道10.51.30.122的mac是多少。ARP請求報文會在局域網廣播,如果你不是10.51.30.122,那么你收到這個報文后,會直接丟棄不處理,如果你恰好是10.51.30.122這個IP,那么就會做一個ARP應答。

我們再來看一個ARP應答報文。

10.51.30.122這個地址收到ARP請求后,會發(fā)一個單播報文給我,告訴我它的mac,同時他也會記錄我的mac和IP,在他那邊會保存我的ARP信息,同時我也保存了它的,下次我再找他,直接查ARP表就可以了,不再需要再發(fā)一起ARP請求,當然,如果ARP老化了,那么這樣的流程還得再來一次咯。

3、DNS

有些人喜歡ping百度,如果ping的是域名,那中間又多了一層處理,那就是域名解析,來來來,繼續(xù)抓包。

可以看到 我由于不知道百度的IP是多少,所以我先發(fā)給了114.114.114.114,域名解析服務器,他幫我解析以后再把IP告訴我。

于是我重新封裝報文,目的ip直接選擇了216這個地址發(fā)送了icmp request。

大功告成,ping也就通了。

排查

搞什么??文章的標題不是ping不通嗎,那你解釋一堆ping通干什么,其實我們從原理里面反推一下,ping不通的理由到底有哪些嘛~ 每一個環(huán)節(jié)都檢查一遍,那么問題不就迎刃而解了嘛~

來來來,我先來畫個圖,二層轉發(fā)不過網關我就不畫了,直接來一個三層轉發(fā)圖。

這是一個簡單的圖,下面我來慢慢的一步步的寫下步驟,假設我就去ping百度,一般現在看自己能不能上網不都是ping百度嘛。

1、首先客戶端要對百度的域名進行解析才能獲取到IP地址,才能進一步封裝自己的ping包,所以他首先發(fā)到域名服務器(假設我配置的是114.114.114.114),等域名服務器幫我解析好以后,給了我百度的IP地址,220.181.57.216,那么這里,我要去域名服務器,我是怎么去的呢,當然首先查看路由表。

很明顯,我沒有直接去114.114.114.114的路由,所以我只能發(fā)給網關,也就是上圖的192.168.0.1,由網關去處理(如果你不知道網關的mac,需要先發(fā)廣播ARP給網關,拿到網關的mac來維護ARP表),之后網關把域名解析的結果返還給我,我就有了baidu的IP地址。

2、有了目的IP,客戶端就準備封裝報文,因為是三層轉發(fā),我不需要知道百度的mac地址,我只要知道網關的mac就行了,dmac=網關mac,dip=百度IP,直接發(fā)送ping包,由于網關的mac上面已經發(fā)送過一次ARP請求了,所有網關的ARP已經保存在客戶端的ARP表了。

3、數據包到了網關,因為是到公網去,這里面的處理就不說了,用一條命令可以查看你的數據包經過了多少的躍點。

4、百度收到了我的ping包以后,于是如法炮制的獲取它的網關ARP信息,再把封裝好的icmp reply給我發(fā)了回來,等我的網關收到了這個reply以后,發(fā)現目的IP是我,通過路由直接轉發(fā)給了我,這里整個過程就完成了。

Tips:對于過來的數據包,網關會自行學習數據包的源mac信息,維護自己的mac表和ARP表。

好了,如果ping不通,那么你想想有哪些原因呢,一步步地去檢查,一步步地去抓包分析,你就能找到原因,ping不通,不用找房東,自己把網線捋一捋,不就通了啊。

申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!

相關文章

  • 2023全球云計算市場份額排名

    關注盧松松,會經常給你分享一些我的經驗和觀點。最近Synergy研究院發(fā)布了最新的全球云計算市場份額排名。亞馬遜依舊是以31%的的市場份額排名第一,微軟azure24%排名第二,Google云11%排名第三,阿里云4%排名第四。騰訊云和IBM、甲骨文并列2%。通過上面的圖片也可以判斷出:(1)云市場

    標簽:
    云計算應用
  • 青云QingCloud開源容器平臺KubeSphere助力微宏科技落地微服務架構

    杭州微宏科技有限公司于2012年成立,專注于業(yè)務流程管理和自動化(BPM&BPA)軟件研發(fā)和解決方案供應商。創(chuàng)始團隊畢業(yè)于浙江大學、清華大學、美國Rice大學和UniversityofTexas等海內外知名高校,曾服務于世界知名軟件公司和500強企業(yè)。公司在自建IDC機房的物理服務器上搭建了K8s集

    標簽:
    云計算應用
  • HashData 入選“綠色計算最具價值解決方案”,打造綠色計算數智動力

    12月13日-14日,由綠色計算產業(yè)聯(lián)盟(GCC)、邊緣計算產業(yè)聯(lián)盟(ECC)聯(lián)合舉辦“2023計算產業(yè)生態(tài)大會”(CIEC2023)在北京舉行。作為計算領域的權威會議,本次大會邀請了多位兩院院士、眾多產業(yè)專家,聚焦計算產業(yè)前沿技術、發(fā)展趨勢、創(chuàng)新應用及發(fā)展成果,以計算能力賦能千行百業(yè)??峥藬祿?H

    標簽:
    云計算應用
  • 身邊云搭建新用工時代智慧平臺,以數字技術賦能零工產業(yè)發(fā)展

    近日,暨南大學經濟與社會研究院和智聯(lián)招聘聯(lián)合發(fā)布《2023中國新型靈活就業(yè)報告》,對我國新型靈活就業(yè)最新發(fā)展趨勢進行了詳細分析。報告認為,靈活就業(yè)已經成為傳統(tǒng)就業(yè)的重要補充,甚至在個別特定行業(yè)、職業(yè)已經占據主要地位,如何規(guī)范好靈活就業(yè)的發(fā)展,是數字經濟時代的一個重要命題。數字浪潮孕育“新個體”,靈活

    標簽:
    云計算應用
  • 青云科技入選中國物聯(lián)網企業(yè)投資價值50強,加速企業(yè)業(yè)務場景創(chuàng)新

    近日,2022“物聯(lián)之星”物聯(lián)網行業(yè)年度榜單的結果正式公布!青云科技(qingcloud.com,股票代碼:688316)憑借著卓越的產品和應用,脫穎而出,在眾多優(yōu)秀企業(yè)中名列中國物聯(lián)網企業(yè)投資價值50強?!拔锫?lián)之星”評選活動始于2007年,歷經15個年頭的發(fā)展和沉淀,是中國物聯(lián)網行業(yè)規(guī)格隆重、影響

熱門排行

信息推薦