
こんにちわ。
1つのPCに2枚のNICを挿して、AとBのネットワークにつなげています。
デフォルトゲートウェイはAのネットワークのみを指定しています。
で、Bのネットワーク向けのFTPなどをしてもちゃんとBの先のサーバに通信できているのですが、
このときのパケットは、どういう動きというか流れをしているのでしょうか。
Aのルータが受け取って、これはBのルータ向けだよとPCに戻して、
PCがB用のNICを見つけて、Bのルータに向けてパケットを出すのでしょうか?
あまりに初心者ですいません。。
よろしくおねがいします。
No.3ベストアンサー
- 回答日時:
OSがルーティングテーブルを見て、送信先のIPアドレスから送信に使用するNICを決定します。
コマンドプロンプトから、route printを実行するとルーティングテーブルを参照可能です。
質問者のPCのように、複数のネットワークに足を出している形態のことを、
一般にマルチホーミングと呼びます。
実際にマルチホームしているPCのルーティングテーブルの例ですが、こんな感じです。
192.168.1.0/24と192.168.168.0/24にマルチホームしています。
自分自身のIPアドレスは、192.168.1.129、192.168.168.1です。
デフォルトゲートウェイは192.168.1.1です。
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.129 1
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.1.0 255.255.255.0 192.168.1.129 192.168.1.129 1
192.168.1.129 255.255.255.255 127.0.0.1 127.0.0.1 1
192.168.1.255 255.255.255.255 192.168.1.129 192.168.1.129 1
192.168.168.0 255.255.255.0 192.168.168.1 192.168.168.1 1
192.168.168.1 255.255.255.255 127.0.0.1 127.0.0.1 1
192.168.168.255 255.255.255.255 192.168.168.1 192.168.168.1 1
224.0.0.0 240.0.0.0 192.168.1.129 192.168.1.129 1
224.0.0.0 240.0.0.0 192.168.168.1 192.168.168.1 1
255.255.255.255 255.255.255.255 192.168.1.129 192.168.1.129 1
255.255.255.255 255.255.255.255 192.168.168.1 192.168.168.1 1
全ての通信の宛先IPアドレスは、この行のいずれか1つに必ず合致します。
合致するかどうか、比較する際の基準は、longest matchと呼ばれます。
比較の方法は、若干専門的な説明になりますが、以下のとおりです。
宛先IPとNetmaskを、数学でANDと呼ばれる計算方法で計算します。
得られた値とNetwork Destinationが一致していれば、その行は合致する候補になります。
複数の行が合致候補になった場合、Netmaskが一番大きい行が最終的な合致結果となります。
Netmaskも同じ大きさの場合は、Metricが小さいほうが最終的な合致結果となります。
最終的に合致する行が見つかったら、Interfaceのところで示されているNICを使って送信します。
また、Gatewayのところで示されているIPアドレスが自分自身のものと同一の場合は、
自分が宛先への送信について責任を持って、直接送信を行います。
そうでない場合は、Gatewayに転送することで、以降の送信については任せる形になります。
より詳しく知りたい場合は参考URLをご覧ください。
いくつか具体例を挙げて説明します。
例1:宛先IP=192.168.1.2の場合
もっとも長く一致する行は
Network Destination Netmask Gateway Interface Metric
192.168.1.0 255.255.255.0 192.168.1.129 192.168.1.129 1
なので、192.168.1.129のインタフェースが選択されます。
送信の際使用する送信元アドレスは、選択されたインタフェースのアドレスになります。
ゲートウェイは自分自身のIPなので、宛先IPアドレスに対して自分自身が直接送信を行います。
例2:宛先IP=192.168.168.2の場合
もっとも長く一致する行は
Network Destination Netmask Gateway Interface Metric
192.168.168.0 255.255.255.0 192.168.168.1 192.168.168.1 1
なので、192.168.168.1のインタフェースが選択されます。
送信の際使用する送信元アドレスは、選択されたインタフェースのアドレスになります。
ゲートウェイは自分自身のIPなので、宛先IPアドレスにに対して自分自身が直接送信を行います。
例3:宛先IP=192.168.2.1の場合
もっとも長く一致する行は、
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.129 1
なので、192.168.1.129のインタフェースが選択されます。
送信の際使用する送信元アドレスは、選択されたインタフェースのアドレスになります。
ゲートウェイは自分自身のIPではないので、192.168.1.1に対して送信を行い、
あとは192.168.1.1に任せます。
このルーティングテーブルは、管理者権限を持っているユーザであれば、
行を追加したり削除したりすることが可能です。
このルーティングテーブルに基づいて、送信インタフェースとゲートウェイを決定した後は、
送信に使われるメディアに合わせてアドレス解決等の処理を行った上で、
実際の送信が行われます。
ほとんどの場合、メディアはイーサネットだと思いますが、
その場合、MACアドレスが送信に必要なので、必要に応じてARPを使い、
相手のMACアドレスを調べた後、送信するということになります。
調べた結果はコマンドプロンプトでarp -aを実行すると分かるように、
一定時間記憶され、再利用します。
--------------------------------------------
整理すると、
分かっているのは宛先IPアドレスのみの状態から、ルーティングテーブルを見て、
・使用するインタフェース
・送信元IPアドレス
・直接相手に送るか、Gatewayに転送するか
の3つを決定します。
その後、直接相手に送る場合は相手のMACアドレス、
Gatewayに転送する場合はGatewayのMACアドレスをARPで調べ、
NICからイーサネットに送り出す、という流れになります。
参考URL:http://www.microsoft.com/japan/technet/community …
想像を絶する丁寧なご回答、大変ありがとうございました。
内容もわかりやすく、まさに現在知りたかったことがよく理解でき、とても勉強になりました。
ご紹介いただいたURLのバックナンバーを読んで勉強したいと思います。
本当にありがとうございました。
No.2
- 回答日時:
これは、PCがB用のNICに対してパケット送信するね。
仮に次の構成を考えてみるどこぞのWebサーバー(IP不明)
|
Aのルータ(192.168.1.254/24)
|
君のパソコン ここより上がAのNIC、下がBのNIC
|
B用のFTPサーバ(192.168.2.200/24)
ここで、君のパソコンのIPアドレスを、Aが192.168.1.1/24、Bが192.168.2.1/24としよう。FTPサーバのIPアドレスは簡単のために192.168.2.200とする。
まず、複数送信先候補がある場合、どこに投げるかというのは「ルーティング」と言う。
君のパソコンがB用のFTPサーバに接続する際、システムはまず、相手のIPアドレスのサブネットを特定する。と言っても、相手が設定しているサブネットがわかるわけではないので、自分の中に登録されているものを使う。
ルート先のサブネットと一致すれば、パソコンはそこに向かってパケットを送信する。ここでいうルート先とは、AのNICとBのNICだ。今回、FTPサーバはそのままBのNICのサブネットと一致するので、Bに送信する。
どこぞのWebサーバにデータを投げる際、どこに投げて良いか分からないので、デフォルトゲートウェイに投げる。実際、デフォルトゲートウェイとは、先ほど言ったルーティングのルールとして「全ての条件(あて先)に該当する」ルート先、と言える。
これが、制的ルーティングとデフォルトゲートウェイのお話だ。
ほかにも、動的ルーティングというものもあるけど割愛。
制的ルーティングにはルーティングテーブルという物を用いる。このテーブルを見るには、DOS窓を開いて、
C:\>route print
とすると良い。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 通信機器・周辺機器 ネットワーク分割について 3 2022/10/24 09:23
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
- UNIX・Linux Rasberry pi のオンボードNICのMacアドレスが変わってしまう 3 2023/03/08 22:34
- ネットワーク ネットワーク構成図のアイコン素材のダウロードサイトでおすすめ教えてください 1 2022/06/03 05:09
- ルーター・ネットワーク機器 家庭内LANで10GbE 3 2022/11/14 02:03
- その他(悩み相談・人生相談) ファイル共有ソフトshareについて 1 2023/06/20 04:03
- ネットワーク ネットワーク資格情報について 2 2022/08/05 12:50
- 固定IP スマホやPCのIPアドレスについて教えてください。 5 2023/07/07 19:53
- Wi-Fi・無線LAN wifiルータ 5 2023/01/15 19:50
- ルーター・ネットワーク機器 2台のPCのネットワーク接続 1 2022/12/17 23:41
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
宛先の「'」(アポストロフィー)
-
Googleフォーム メール展開での...
-
BCCで送信したあと、誰に送った...
-
エクセルで、勝手にメール送信...
-
EメールでBCCのみで送信できま...
-
下書きメールが消えてしまいました
-
メール送信直後に『Delivery St...
-
メールの本文内にワードの文書...
-
Gmail 勝手にメールが送信される
-
エクセルからメールを送信する...
-
メールはBCCだけでも届くものな...
-
エクセルに「メール送信ボタン...
-
送信済みフォルダの新規フォル...
-
複数の人に同時にメールする
-
FAXを大量に指定時刻に送信でき...
-
「その後どうなりましたか?」...
-
サンダーバード送信時に送信フ...
-
本メールが届いてから2営業日以...
-
アウトルックの受信トレーの赤...
-
パーマネントエラーってなんで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
宛先の「'」(アポストロフィー)
-
エクセルで、勝手にメール送信...
-
BCCで送信したあと、誰に送った...
-
メール送信直後に『Delivery St...
-
EメールでBCCのみで送信できま...
-
Gmail 勝手にメールが送信される
-
送信済みフォルダの新規フォル...
-
メールはBCCだけでも届くものな...
-
メール送信 一部宛先エラー
-
下書きメールが消えてしまいました
-
エクセルからメールを送信する...
-
BCCで一括メール送信のエラーに...
-
エクセルに「メール送信ボタン...
-
NICを2枚さしたときのパケット...
-
EXCEL VBA メール送信でファイ...
-
メールのヘッダー
-
Beckyで件名なしのとき「宛先の...
-
一斉送信のリストが作成出来る...
-
FAXを大量に指定時刻に送信でき...
-
携帯メールの宛先非表示について
おすすめ情報