平成19年春期 問53

野獣さん  
(No.1)
サブネットマスク255.255.0.0と設定したクライアントAの属するネットワークアドレスは10.1.0.0であり、サブネットマスク255.255.255.0と設定したクライアントB、データベースサーバDの属するネットワークアドレスは10.1.1.0となり、属するネットワークが異なります。

しかし、解説には『元々、自ネットワークに属している「データベースサーバD」「クライアントB」、および直接接続されている「ADSLモデム」との通信には支障ありません。』とあります。

つまり、サブネットマスクを適当に設定しても、クライアントA、クライアントB、データベースサーバD、ADSLモデム間の通信に影響を与えることはないということで合っていますか?
2017.03.27 18:35
通りすがりの者さん 
(No.2)
クライアントAが、クライアントB、データベースサーバDと通信できるために、クライアントAに設定すべきサブネットマスクを考えます。なお、ADSLモデムは直結ですから、サブネットマスクと無関係です。

クライアントA、クライアントB、データベースサーバDの3つのIPアドレスが同一ネットワークであるためには、これらのネットワークアドレスが同一の値である必要があります。

10.1.1.10、10.1.1.11、10.1.1.1の3つが、先頭ビットからの連続ビットが同一であるビット数は、28ビットです。したがって、クライアントAが、クライアントB、データベースサーバDと通信できるためには、サブネットマスクのビット数は、何ビットでもいいわけではなく、1~28ビットです。

言い換えると、クライアントAは、サブネットマスクが29ビット以上だとデータベースサーバDと通信できなくなります。なお、クライアントBとは、何ビットでも通信できます。
2017.03.28 18:33
野獣さん  
(No.3)
回答ありがとうございます。

おっしゃる通り、サブネットマスクは1~28ビットにする必要がありますね。

私が気になったことは、ネットワークアドレスが異なる場合の通信の手順です。
クライアントAからクライアントBに通信する際、

宛先アドレス:10.1.1.11
サブネットマスク:255.255.255.0
ネクストホップ:10.1.1.254

とルータを介するのか。
それともクライアントAのサブネットマスク255.255.0.0を基準とし、データリンク層であることからルータを介さずMACアドレスのみで相手を識別して通信するのか、という点です。

解説にある以下の一文が気になります。「クライアントAから見た」とはどういうことでしょうか?

クライアントAから見た各機器のネットワークアドレスは、サブネットマスクが誤って255.255.0.0に設定されたことで、すべて「10.1.0.0」と計算され、すべてのホストが自分と同じネットワークに属しているように見えることになります。
2017.03.28 20:33
通りすがりの者さん 
(No.4)
疑問の内容に直接回答する形ではありませんが、以下の内容で理解してください。

クライアントAからプリントサーバCへ通信する場合で説明します。(以降、機器名は、A、B、C、Dと略します)

まず、Aにおいて、サブネットマスクを正しく255.255.255.0と設定した場合です。
CのIPアドレス10.1.2.1が自分のIPアドレス10.1.1.10と同一ネットワークかどうかを調べます。CのIPアドレスとサブネットマスクのANDをとった10.1.2.0と、自分のIPアドレスとサブネットマスクのANDをとった10.1.1.0を比較すると異なるので、別ネットワークと判断します。別ネットワークとなると、デフォルトゲートウェイであるルータのIPアドレス10.1.1.254でARP要求を出してそのMACアドレスを入手した後にパケットを送信します。その結果、パケットはルータ経由でCに届きます。

次に、Aにおいて、サブネットマスクを誤って255.255.0.0と設定した場合です。
CのIPアドレス10.1.2.1が自分のIPアドレス10.1.1.10と同一ネットワークかどうかを調べます。CのIPアドレスとサブネットマスクのANDをとった10.1.0.0と、自分のIPアドレスとサブネットマスクのANDをとった10.1.0.0を比較すると同じなので、同一ネットワークと判断します。同一ネットワークとなると、CのIPアドレス10.1.2.1でARPを出しますが、そのMACアドレスを回答してくれる機器はありませんので、結果としてCへは通信できません。なお、問題文にあるルータのプロキシARP(代理ARP)がもし動作していれば、10.1.2.1でのARP要求に対してルータが自分のMACアドレスを(Cの代理のように)回答してくれるので、以降のCへの通信が可能になります。
2017.03.28 21:43
野獣さん  
(No.5)
何となくわかった気がします。

同一ネットワークかどうかは管理者が判断するのではなく、各ノードが自ノードに設定されたサブネットマスクを用いて判断するということですね。

Aのサブネットマスクが255.255.0.0の場合、Aから見るとA、B、C、Dはすべて同一ネットワークにあると判断されMACアドレスを用いてデータリンク層の通信を行おうとするが、CのMACアドレスがわからないため(途中でルータを介するからそもそも同じネットワークであるはずがない)、Cとの通信は不可能。

Aのサブネットマスクが255.255.255.0の場合、Cは別ネットワークであるからCがARPによってMACアドレスをAに返すから通信が可能。

以上のように理解することができました。
2017.03.29 19:11
通りすがりの者さん 
(No.6)
「同一ネットワークかどうかは管理者が判断するのではなく、各ノードが自ノードに設定されたサブネットマスクを用いて判断するということですね。」←これはOKです。

その後を表現を変えて置き換えます。

その前に、基本的なことです。
Xが同一ネットワークと認識しているYへパケットを送信する前には、YのIPアドレスでARP要求を出して、YのMACアドレスを入手し、それをY向けパケットの宛先MACアドレスにセットして送信します。
Xが別ネットワークと認識しているZへパケットを送信する前には、デフォルトゲートウェイのIPアドレスでARP要求を出して、デフォルトゲートウェイのMACアドレスを入手し、それをZ向けパケットの宛先MACアドレスにセットして送信します。

では、本題です。

Aのサブネットマスクが255.255.0.0の場合、Aから見るとB、C、Dはすべて同一ネットワークにあると判断します。BまたはDへの通信の前には、BまたはDのIPアドレスでARP要求を出して、BまたはDのMACアドレスを入手できます。Cへの通信の前には、CのIPアドレスでARP要求を出して、CのMACアドレスを入手しようとしますが、Cは同一ネットワークにいないため、ARP応答は返らず、その後のCへの通信はできません。このとき、ルータのプロキシARPが動作していれば話は変わりますが、ここではそれは置いておきます。

Aのサブネットマスクが255.255.255.0の場合、Aから見るとB、Dは同一ネットワーク、Cは別ネットワークにあると判断します。BまたはDへの通信の前には、BまたはDのIPアドレスでARP要求を出して、BまたはDのMACアドレスを入手できます。Cへの通信の前には、デフォルトゲートウェイであるルータのIPアドレス10.1.1.254でARP要求を出して、ルータの10.1.1.254のNICのMACアドレスを入手できるので、その後のCへの通信はできます。
2017.03.29 20:04

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop