web-dev-qa-db-ja.com

2台のマシンが同じLAN上にあるかどうかはどうすればわかりますか?

大学院で授業を受けたのに、コンピュータネットワークが苦手です。

サブネットとマスクなどを忘れ続けています。

現在、私はDockerErlangで遊んでいて、分散プログラミングをしようとしていました。

4つのDockerコンテナを開始しました

([email protected]) # also known as Server 
([email protected])
([email protected])
([email protected])

ここで、@の後の数字は、IPコマンドから取得したそれぞれのifconfigsです。
これらのIPアドレスが与えられた場合、それらが同じLAN /ネットワーク上にあるかどうかをどのように判断できますか

質問が間違っていたり、愚かだったりすると、お詫びしますが、行き詰まります。

どうもありがとう

3
daydreamer

サブネットマスクを知っている必要があります。サブネットマスクは、アドレスのどのビットがサブネットを表し、どのビットがサブネット内のホストを表すかを示します。サブネットが/24(255.255.255.0)の場合、最初の3つのオクテットが一致するアドレスはすべて同じサブネット内にあります。

あなたの例では、サブネットマスクが/ 26以上(255.255.255.192以上)の場合、63が1つのサブネットのブロードキャストアドレスになるため、これらのアドレスは同じサブネット上にありますnot 、64は、別のサブネットの「ネットワーク」アドレス(ホスト番号は0)になります。したがって、サブネットマスクが/ 26以上の場合、これらのアドレスはユニキャストホストアドレスとして確実に機能しない可能性があります。

2
Spiff

IPだけでは、同じネットワーク上にあるかどうかを判断するのに十分ではありません。サブネットマスクも使用する必要があります。

IPアドレスは、4つの8ビットオクテットで構成されています。オクテットは、8つのバイナリビットのシーケンスです。したがって、各ビットは0または1のいずれかになり、各オクテットは2 ^ 8の異なる値、つまり256(0〜255)を表すことができます。これらのオクテットは4つあるため、28 + 8 + 8 + 8、つまり232に等しいアドレスの組み合わせが存在する可能性があります。これは4,294,967,296の可能なアドレスです。各バイナリビットの値は128、64、32、16、8、4、2、1であるため、そのバイナリビットがオンかオフかによって、そのビットの値を追加するか、追加しないかのどちらかになります。

マスクは、無視しているアドレスの量を示します。基本的に、1がある場合、アドレスが含まれるグループの一部ではないアドレスがあります。/24ネットワーク(またはマスクが255.255.255.0のネットワーク)の場合、2 ^ 32の可能なアドレスのうち2 ^ 24アドレスを減算しているため、グループ内に2 ^ 8アドレス、つまり256個のアドレスが残ります。

したがって、172.17.0.0/24のアドレスがある場合、そのネットワークには256個のアドレスがあり、172.17.0.0-172.17.0.255になりますが、一部はネットワークアドレス(172.17.0.0)として予約されます。 1つはブロードキャストアドレス(172.17.0.255)として予約され、ゲートウェイ(通常は172.17.0.1)も必要になります。

1
MaQleod