サブネットの違う機器とのデータ通信
こんばんわ。いつも拝見させていただいておりまして、今回初めて投稿させていただきます。内容はごくごく初歩的なものですがご勘弁を。
今日、会社で新しくネットワーク機器(詳細には無線LAN ルータ型アクセスポイント)をLANに追加したところ、見事につながりませんでした。原因はすぐにアクセスポイント側のサブネットが違っていた(PC:255.255.0.0 AP:255.255.255.0)ためとわかったのですが、ひとつ疑問に思えた事がありました。
A B
192.168.0.1 192.168.1.1
255.255.0.0 255.255.255.0
AA-AA-AA-AA-AA-AA BB-BB-BB-BB-BB-BB
なんらかの間違いで上記のような設定PCがハブ接続されている場合、AからBへ送信"しようとした"データはブロードキャストのためBにも届きますよね?(A側のARPキャッシュは静的に追加したものと仮定してください) この場合Bにおいては
1.MACが合致→L2的には自分のデータ
2.IPが合致→L3的にも自分のデータ、でもサブネットが違う?
サブネットが異なるPC同士の通信には同じケーブル上にあっても必ずルータが必要、ということを以前聞いたことがあるので上記の構成では通信はできないことになるのですが、ホントにそうなんでしょうか?またそうだとしたらそれは何故なんでしょう?「そういう仕様だからだ」と開き直りたいのですが、詳細な根拠があれば伺ってみたいなと思いまして思い切って投稿してみました。
また、今質問を書きながらふと思ったのですが、ARPキャッシュを追加しない(AのARPテーブルが空の状態)で送信しようとした場合、AのARPブロードキャストに対するARP返答をする機器はBとGWが両方答えると思うのですが、こういった場合はいったいどうなってしまうのでしょうか?
単純な質問ですが、なぜか複雑で多少意味不明な文になってしまって申し訳ありません。できればご教授お願いします。
コメント
ARPする相手は誰か
のばさん,こんにちわ。
>内容はごくごく初歩的なものですがご勘弁を。
いえいえ,初歩的な質問歓迎です。
さて,質問の件ですが,
答えを説明する前に,まず,パケット送信動作を復習しておきましょう。
1 パケットを渡す相手のIPアドレスを調べる
1-1 宛先が送信元と同一サブネットにあるときは,宛先のIPアドレス
1-1 宛先が他のサブネットにあるときは,デフォルトゲートウェイのIPアドレス
2 そのIPアドレスに対応するMACアドレスを調べる
2-1 ARPキャッシュに登録されていたら,ARPキャッシュのMACアドレスを採用する
2-2 ARPキャッシュになかったら,ARPリクエストをブロードキャストして応答をもらう
3 調べたMACアドレスにパケットを送信(ユニキャスト)
この動作を頭にいれて,質問のケースでの動作を追いかけてみましょう。
まず,AからBに送信するときは,
Aは,Bが同一サブネットだと思いますから,直接Bにパケットを送ります。
多分,このケースでは,Bにパケットが届くと思います。
そして,次にBからAにパケットを送り返しますが,そのとき,
Bは,Aが異なるサブネットに居ると思いますから,
デフォルトゲートウェイにパケットを送るはずです。
そのとき,デフォルトゲートウェイが存在しなければ,
パケットは相手に届きません。
一方,デフォルトゲートウェイが存在して,それが正しく設定されていれば,
(Aにパケットを届く状態になっていれば,ということ)
パケットはAに届くはずです。
ここまで説明すれば,だいたい答えは見えてくるでしょう。
答えのポイントはARPのことだけ考えるのではなくて,
その前の動作,つまり,送信元のPCが最初にどのIPアドレス宛てにパケットを渡すか,
というところにあります。
つまり,宛先が他のサブネットに存在する場合には,
宛先にARPするのではなく,ルータにARPするっていうことですね。
だから,サブネットをまたがって通信するときはルータが必要なんです。
ありがとうございます
先生こんばんわ。
お早いお返事ありがとうございました。
色々と見失っていたものが改めて見えたような気がしていました。片方向のみのデータ送信ばかり考えていて、両方向でのデータやり取りで初めて通信が成り立つという大原則が頭の中から飛んでいました。もう忘れないと思います。初心忘るべからず、ですね。
私の周りにはネットワークに詳しい人はおらず、おまけに日々疑問の日々なので(だからこの分野は面白いのですが)、ちょくちょく顔を出すことがあるかとは思います。そのときはよろしくお願いいたします。