當(dāng)前位置:首頁 >  IDC >  云計算 >  正文

華云數(shù)據(jù):ping不通 找房東——從一個ping包來解析網(wǎng)絡(luò)轉(zhuǎn)發(fā)原理

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

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

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

背景

“房東,我ping不通了”,相信在外打工租房的各位都有過這個經(jīng)歷吧。ping不通,一個簡單的現(xiàn)象,其實蘊藏著很多的過程,今天我們就來談?wù)劊琾ing不通該怎么辦。

基礎(chǔ)概念

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

1、ping包

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

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

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

首先是以太頭

我們知道,MAC地址是用來唯一標(biāo)識網(wǎng)卡的,暫時理解為網(wǎng)卡門牌號吧。

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

SMAC:源mac,你自己網(wǎng)卡的門牌號

type:數(shù)據(jù)包的類型

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

IP層,主要看幾個吧。

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

flags:分片的標(biāo)志,下面的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是什么,地址解析,所謂的地址解析就是根據(jù)IP地址來獲取MAC地址,上面的報文你也看到了,你要ping別人,要知道別人的IP,別人的mac,發(fā)到網(wǎng)關(guān)的需要知道網(wǎng)關(guān)的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請求報文會在局域網(wǎng)廣播,如果你不是10.51.30.122,那么你收到這個報文后,會直接丟棄不處理,如果你恰好是10.51.30.122這個IP,那么就會做一個ARP應(yīng)答。

我們再來看一個ARP應(yīng)答報文。

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

3、DNS

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

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

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

大功告成,ping也就通了。

排查

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

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

這是一個簡單的圖,下面我來慢慢的一步步的寫下步驟,假設(shè)我就去ping百度,一般現(xiàn)在看自己能不能上網(wǎng)不都是ping百度嘛。

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

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

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

3、數(shù)據(jù)包到了網(wǎng)關(guān),因為是到公網(wǎng)去,這里面的處理就不說了,用一條命令可以查看你的數(shù)據(jù)包經(jīng)過了多少的躍點。

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

Tips:對于過來的數(shù)據(jù)包,網(wǎng)關(guān)會自行學(xué)習(xí)數(shù)據(jù)包的源mac信息,維護(hù)自己的mac表和ARP表。

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

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

相關(guān)標(biāo)簽
華云數(shù)據(jù)
云計算應(yīng)用

相關(guān)文章

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

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

    標(biāo)簽:
    云計算應(yīng)用
  • 青云QingCloud開源容器平臺KubeSphere助力微宏科技落地微服務(wù)架構(gòu)

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

    標(biāo)簽:
    云計算應(yīng)用
  • HashData 入選“綠色計算最具價值解決方案”,打造綠色計算數(shù)智動力

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

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

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

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

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

熱門排行

信息推薦