
こんにちわ。
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
LANカードを 2枚挿して 社内LANとインターネットを 使い分けたい
その他(インターネット接続・インフラ)
-
2枚のNICを使いNIC1をインターネット、NIC2をPC間ファイル転送に使いたい
ルーター・ネットワーク機器
-
NICを2枚差しするとpingが通らない
SSL・HTTPS
-
4
NICを2枚差しで、インターネット用とPC間のファイル共有用に使用したいのですが上手くいきません
ネットワーク
-
5
PCにNICを2枚挿しした時のファイアウォール設定
セキュリティホール・脆弱性
-
6
NICを2枚挿したときのデフォルトNIC
SSL・HTTPS
-
7
1台のPCから二つのネットワークに接続する方法
その他(コンピューター・テクノロジー)
-
8
複数のネットワークアダプタを使い分けるには?
その他(インターネット接続・インフラ)
-
9
NIC2枚とPC3台で別セグメントネットワーク
SSL・HTTPS
-
10
C言語のsocket関数で、複数NIC実装PCはどうなるのでしょうか?
C言語・C++・C#
-
11
1つのパソコンで複数のネットワークに接続するには
ファイアウォール
-
12
1台で複数セグメント持つ際の設定(Linux)
UNIX・Linux
-
13
NIC 2枚差しの設定
その他(コンピューター・テクノロジー)
-
14
1台のPCに2本のLANケーブルを接続すると?
その他(インターネット接続・インフラ)
-
15
片方のPCからはPINGが飛ぶのに、片方からはrequest timeout。なぜでしょう。
ルーター・ネットワーク機器
-
16
2つのLAN環境でアプリケーション毎に使用するLANを設定する方法について
その他(インターネット接続・インフラ)
-
17
同一NICに2つのIPアドレスを設定した時のIPアドレスの使い分けについて
UNIX・Linux
-
18
vmware上のゲストOSにpingが通らない
SSL・HTTPS
-
19
PINGが通るのにネットワークに繋がらない
SSL・HTTPS
-
20
NIC毎のホスト名
UNIX・Linux
関連するQ&A
- 1 AとBの2つに分けたLANを構築したい
- 2 高校生の彼女(A子)のエロ動画が拡散されているらしいです。 今日A子のクラスの男子2人(a太)から聞
- 3 LANケーブルが挿さっているとOSの起動に時間がかかります
- 4 a をSHA256ハッシュすると CA978112CA1BBDCAFAC231B39A23DC4DA
- 5 A建屋とB建屋間の無線LAN
- 6 ホームページに50枚くらい写真を掲載しました。1ページに50枚です。
- 7 ヤフーオークションの写真掲載は3枚と決められていますが、3枚以外に写真を掲載している方がいます。
- 8 NICドライバーの件について
- 9 IEEE802.11nは、gやbやaも使えますか?
- 10 NICは何種類くらいあるのでしょうか。
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
メール送信直後に『Delivery St...
-
5
送信済みアイテムの再利用
-
6
エクセルで、勝手にメール送信...
-
7
下書きメールが消えてしまいました
-
8
EメールでBCCのみで送信できま...
-
9
Excelファイルをマクロボタン一...
-
10
携帯電話メールの一斉送信について
-
11
メールのヘッダー
-
12
word2007から電子メールが送信...
-
13
複数アドレスに一括送信できる...
-
14
BCCで一括メール送信のエラーに...
-
15
複数の人に同時にメールする
-
16
iMessageが配信済みのままとい...
-
17
免許証などの画像を、ネット上...
-
18
「その後どうなりましたか?」...
-
19
メールの返信したくない時、ど...
-
20
音楽を送るには?
おすすめ情報