Huayun Data: ping が失敗した場合は、家主に問い合わせてください - ping パケットからネットワーク転送の原理を分析する

Huayun Data: ping が失敗した場合は、家主に問い合わせてください - ping パケットからネットワーク転送の原理を分析する

クラウドコンピューティング事業の急速な発展に伴い、国内外のクラウドコンピューティング企業間の特許紛争はますます激しくなっています。クラウド コンピューティングなどの技術分野では、特許保有量が企業の究極の技術力を表すことがよくあります。今回の Huayun Data の「Smart Huayun」コラムでは、ping パケットからのネットワーク転送の原理を分析し、クラウド コンピューティング分野の最新のテクノロジとソリューションを皆様と共有します。

背景

「大家さん、電話がつながりません。」家を離れて働いて家を借りている人なら誰でもこのような経験をしたことがあると思います。 Ping の失敗は単純な現象ですが、実際には多くのプロセスが含まれています。今日は、ping が失敗した場合にどうするかについてお話します。

基本概念

本題に入る前に、いくつかの概念を紹介しましょう。

1. Pingパケット

ping パケットは ICMP プロトコルを使用します。 ICMP プロトコルとは何ですか?これはインターネット制御メッセージ プロトコルです。文字通りの意味は理解しにくいですが、その機能は非常に単純で、リンクを検出するためにいくつかの制御メッセージを送信することです。

プロトコルを理解するには、通常、まずそれがどのようにカプセル化されているかを確認します。あなたが調べた本はすべて偽物です。最善の方法は、自分でパケットをキャプチャすることです。パケットキャプチャツールにはさまざまな種類があります。私は Wireshark (Windows) と tcpdump (Linux) を使うのが好きです。パケット キャプチャ ツールの使用方法については、Baidu をご覧ください。

キャプチャされたメッセージは次の通りであり、段階的に分析されます。

まずイーサリアムのヘッダー

MAC アドレスはネットワーク カードを一意に識別するために使用されることがわかっており、現時点では、ネットワーク カードのハウス番号として理解できます。

DMAC: 宛先 MAC、つまりデータ パケットの送信先。

SMAC: ソース MAC、独自のネットワーク カードのハウス番号

タイプ: データパケットのタイプ

ヒント: ちょっとした知識ですが、ここに一文があります。レイヤー 3 転送の場合、DMAC は通常ゲートウェイの MAC アドレスです。レイヤー 2 転送の場合、DMAC は宛先の MAC アドレスです。これは、データ パケットがレイヤー 2 転送かレイヤー 3 転送かを区別する最良の方法でもあります。

[[258835]]

IP レイヤーを中心にいくつか見ていきましょう。

DSCP: *** の目的は、メッセージの優先度を区別することです。プロトコル メッセージには高い優先度が必要であることは誰もが知っています。

flags: フラグメントのフラグ。次のフラグメント オフセットは、フラグメントのオフセットを指します。

プロトコル: プロトコルタイプ。pingがicmpプロトコルを介して行われていることがわかります。

icmp のさらに重要な 2 つのタイプとコードは、icmp メッセージの目的を決定するために使用されます。

ここで、タイプ 8 コード 0 は ICMP 要求です。具体的な意味については RFC792 を参照してください。

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

何? RFC とは何ですか?私はKFCについてしか聞いたことがありません。大きな問題はありません。 Baidu にアクセスしてください。

[[258836]]

2. ARP

ARPとは何ですか?アドレス解決とは、IP アドレスに基づいて MAC アドレスを取得することを意味します。上記のメッセージもご覧になったと思います。誰かに ping を送信したい場合は、その人の IP と MAC を知る必要があります。ゲートウェイにメッセージを送信する場合は、ゲートウェイの MAC を知る必要があり、宛先にメッセージを送信する場合は、宛先の MAC を知る必要があります。

ARP プロセスは非常に簡単です。まずクライアントが ARP 要求を送信します。たとえば、IP アドレス 10.10.10.10 はわかっているが、Mac がわからない場合は、IP アドレスを取得するために ARP 要求を送信する必要があります。

さて、ARP がどのように機能するかを確認するために、通常どおりパケットをキャプチャしてみましょう。

ARP 要求メッセージはブロードキャスト メッセージなので、その dmac は ff:ff:ff:ff:ff:ff です。相手の IP はわかっていますが、相手の MAC はわかりません。そのため、ターゲット MAC には 00:00:00:00:00:00 と入力できます。上の画像を見てください。これは ARP 要求メッセージです。10.51.30.122 の MAC を知りたいのです。 ARP 要求メッセージはローカル エリア ネットワーク内でブロードキャストされます。 10.51.30.122 でない場合は、このメッセージを受信した後、処理されずに破棄されます。 IP 10.51.30.122 の場合は、ARP 応答が行われます。

別の ARP 応答メッセージを見てみましょう。

ARP 要求を受信すると、アドレス 10.51.30.122 からユニキャスト メッセージが送信され、MAC が通知されます。同時に、私の Mac と IP も記録され、ARP 情報も保存されます。同時にその情報も保存します。次回接続するときに、ARP テーブルを直接確認できます。別の ARP 要求を送信する必要はありません。もちろん、ARP が古くなった場合は、このプロセスを繰り返す必要があります。

3. DNS

Baidu に ping するのが好きな人もいます。ドメイン名を ping すると、中間にドメイン名解決という追加の処理レイヤーが存在します。さあ、パケットのキャプチャを続けましょう。

ご覧のとおり、Baidu の IP がわからなかったので、まずドメイン名解決サーバーである 114.114.114.114 に送信して解決し、IP を教えてもらいました。

そこでメッセージを再カプセル化し、宛先 IP でアドレス 216 を直接選択して ICMP 要求を送信しました。

完了しました。ping が機能しています。

トラブルシューティング

どうしたの?記事のタイトルは「Ping が失敗しました」ではないですか?では、なぜ Ping の成功について詳しく説明しているのですか?実際に、原理を逆にして、Ping が失敗する理由を調べてみましょう。すべてのリンクをチェックすれば問題は解決します。

[[258837]]

さあ、まずは図を描いてみましょう。ゲートウェイを通過しない第2層転送は描かず、直接3層転送図を描きます。

[[258838]]

これは簡単な図です。手順を一つずつ書いてみます。 Baidu に ping するとします。通常、Baidu に ping を実行してインターネットにアクセスできるかどうかを確認します。

1. まず、クライアントは Baidu のドメイン名を解決して IP アドレスを取得し、さらに独自の ping パケットをカプセル化する必要があるため、最初にそれをドメイン ネーム サーバーに送信します (114.114.114.114 に設定されていると仮定します)。ドメイン ネーム サーバーが解決を手伝ってくれた後、Baidu の IP アドレス 220.181.57.216 が提供されます。ここで、ドメイン ネーム サーバーにアクセスします。どうやってそこへ行けばいいですか?もちろん、最初にルーティングテーブルを確認します。

明らかに、114.114.114.114 への直接ルートがないので、上の図の 192.168.0.1 であるゲートウェイに送信することしかできず、ゲートウェイがそれを処理します (ゲートウェイの MAC がわからない場合は、最初にブロードキャスト ARP をゲートウェイに送信し、ゲートウェイの MAC を取得して ARP テーブルを維持する必要があります)。その後、ゲートウェイはドメイン名解決の結果を私に返し、Baidu の IP アドレスを取得します。

2. 宛先 IP を使用すると、クライアントはメッセージをカプセル化する準備が整います。 3層転送なので、BaiduのMACアドレスを知る必要はありません。ゲートウェイの Mac だけを知っておく必要があります。 dmac=ゲートウェイmac、dip=Baidu IPで、pingパケットを直接送信します。ゲートウェイの Mac に ARP 要求が 1 回送信されているため、すべてのゲートウェイ ARP がクライアントの ARP テーブルに保存されています。

3. データ パケットがゲートウェイに到達します。パブリックネットワークに送信されるので、ここでは処理の詳細については説明しません。 1 つのコマンドを使用して、データ パケットが通過したホップの数を確認できます。

4. Baidu は私の ping パケットを受信すると、同じ方法でゲートウェイ ARP 情報を取得し、カプセル化された icmp 応答を私に返します。ゲートウェイはこの応答を受信すると、宛先 IP が私であることを認識し、ルーティングを通じて私に直接転送します。ここでプロセス全体が完了します。

ヒント: 着信データ パケットの場合、ゲートウェイはデータ パケットの送信元 MAC 情報を独自に学習し、独自の MAC テーブルと ARP テーブルを維持します。

さて、ping が失敗した場合は、その理由について考えてみましょう。段階的に確認し、パケットをキャプチャして段階的に分析すると、原因を見つけることができます。 ping が失敗した場合は、家主に連絡する必要はありません。ネットワーク ケーブルを自分でまっすぐにすれば接続されます。

<<:  南京-アマゾンAWS共同イノベーションセンターが正式に開設

>>:  メーカーが PTC と Rockwell Automation のテクノロジー スイートでデジタル変革をリード

推薦する

KubeSphere の新世代クラウドネイティブ データ ウェアハウス、Databend を発表

導入Databend は、クラウド オブジェクト ストレージに完全に特化した次世代のクラウド ネイテ...

クラウド バックアップ ソリューションが解決できるビジネス上の問題

大量のデータを保有することは、法的に義務付けられており、組織にとっての責任でもあります。多くの組織は...

SEO開発は引き続き挫折しており、ブランド構築が差し迫っている

実は、SEOは終焉に近づいているという声は今年3月から出始めており、当時、百度の一連の実践から、SE...

アメリカのソーシャルエンターテイメントウェブサイトGetGlueが1200万ドルを調達

新浪科技報、北京時間1月12日朝のニュースによると、米国のソーシャルエンターテイメントウェブサイトG...

Amazon Web Services: インテリジェンス、専用設計、統合保護に重点を置き、クラウド ストレージのイノベーションを加速

今日、あらゆるビジネスはデータ主導型であるべきです。データからクラウド サービス、ユーザー エクスペ...

SmartVPS (香港) シンプルレビュー

午後、私が仕事中だったとき、smartvps の社員を名乗る人物が QQ で私を追加し、彼らの VP...

Vaicdn: 登録/実名CDNは不要、帯域幅が大きく、防御力が高く、攻撃がレイテンシに影響を与えない

vaicdn はインテリジェントな加速とセキュリティ保護サービスを提供しており、1S 内で悪意のある...

クラウド コンピューティング ロードマップを構築するためのベスト プラクティス

クラウド コンピューティング ロードマップとは何ですか?なぜそれを持つことが重要なのでしょうか?これ...

CBRCはP2Pを調査するために非公開会議を開催し、年末までに規制規則を発行する可能性があります

はじめに: P2P 業界が中国銀行業監督管理委員会の監督下に置かれたことを受けて、中国銀行業監督管理...

クラウドコンピューティングが急速に成長するにつれ、企業はコスト管理に注力している。

クラウド コンピューティングが普及し、急速に成長し続けるにつれて、企業には潜在的に増大するコストに対...

ビジネスのためのビデオマーケティング戦略を作成する方法

企業はあらゆる前向きな考え方や仕事のやり方を試みています。関連調査によると、近年ビデオ視聴者の数は増...

熊張浩の検索結果を印刷する際の注意点

月給5,000~50,000のこれらのプロジェクトはあなたの将来です今日は、Xiaobao Yueが...

100GB SSBパフォーマンステストを例に、ByteHouseクラウドデータウェアハウスでデータ分析の旅を始めましょう。

I. 従来のデータ ウェアハウスの進化: クラウド データ ウェアハウス近年、データの「爆発的な」増...

デジタルオーシャンはどうですか? [年] Digitalocean のニューヨーク データ センターの簡単なレビュー

1年が経ちました。あなたのデジタルオーシャンはいかがですか? DigitalOcean のネットワー...