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 のテクノロジー スイートでデジタル変革をリード

推薦する

クラウド コンピューティングから価値を引き出すために CEO が実行できる 3 つのアクション

企業の CEO として、あなたは、この流行が終わった後にクラウド コンピューティング テクノロジーが...

Kafka Consumerについて学んでみましょう

これまで、Kafka の全体的なアーキテクチャ、Kafka プロデューサー、そして Kafka によ...

マイクロマーケティング時代: Weiboの価値を高める方法

今日のインターネットの発展により、Weiboを知らない人は本当に時代遅れです。特に電子商取引業界にと...

クラウドコンピューティングの災害復旧を実装する方法

組織がクラウド ストレージの使用を増やすにつれて、コストを削減し、運用効率を向上させるために追加のク...

ファン・ユン:ロサンゼルス cn2 vps、40 元 / 2g メモリ / 2 コア / 30g SSD / 10M 帯域幅無制限

新興企業のファン・ユンは、主にクラウドサーバーと独立サーバー事業を展開しており、クラウドサーバーは主...

運用データからチャネル詐欺を識別する 3 つの方法!

最近、CPの友人とチャットしていたとき、彼は泣きながら、広告会社のASOに20万元を投資したが、結局...

重慶銀行がアリババクラウドと提携し、金融インテリジェント変革を全面的に開始

8月24日、雲啓会議重慶サミットにおいて、重慶銀行とアリババクラウドは共同で「金融インテリジェント変...

推奨: weloveservers-38 ドル/年/2g メモリ/8 コア/60g ハード ドライブ/2T トラフィック

weloveservers は、年間 19 ドルの支払いでオリジナル モデルのリソースを 2 倍にす...

クラウドネイティブアーキテクチャの概要を理解していないと、

1. クラウド ネイティブとは何ですか? 1.1 CNCF組織クラウドネイティブについて話す前に、ま...

オンラインマーケティングを行うには? Yunke.com SEOは企業のマーケティング業務を支援します

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますインターネ...

張向東:モバイルインターネット船に乗るには

記者 | 梁俊燕インターン | 李 孟陽写真 | 王昭張向東はPCインターネットの盛況には乗れなかっ...

できるだけ少ない費用で、できるだけ多くのクラウドを楽しむにはどうすればよいでしょうか?

静止するアプリケーションで不変の情報を頻繁に使用する場合は、静的 Web ページから構築されたアプリ...