ネットワークアドレスが有効なホストアドレスにならないのはなぜですか?


18

だから...私はCCNAなどで勉強し、少なくとも過去8年ほどIPネットワーキングで働いていました。私は、サブネットのネットワークアドレスが有効なホストアドレスではないことを常に見て、言われました。最初に、これが真実であると知っていると言うことから始めます。私の質問はもっと...それが使用できない技術的な理由がありますか、それは仕様が設計されたときに勝手に同意しただけですか?ブロードキャストアドレスが使用できない理由を理解しています(実際に使用されているため)。問題は、使用されているネットワークアドレスが表示されている場合、通常はネットワークアドレスを使用しているルーティングのみです。これは事実です(ネットワークアドレスを期待しているときにのみネットワークアドレスが使用されています)、ネットワークアドレスを実際の有効なホストアドレスにできないという技術的な理由はありますか?

回答:


16

私の知る限り、特別なアドレスとしての「ネットワークアドレス」は、過去のクラスフルIPネットワークからの成果物です。現在、ネットワークアドレスの概念を持たないインターネット上でクラスレスドメイン間ルーティング(CIDR)を使用しています(上記のRFC 4632を参照すると、レガシーごとに256個のIPアドレスがリストされていることがわかります) 「C」ブロック。たとえば、ネットワークまたはブロードキャストアドレスの予約アドレスはありません(ただし、ブロードキャストは他のRFCで必須と定義されています)。

ただし、ネットワーク内の特定のホストにネットワークアドレスを割り当てないでください。ルーティングにはネットワークアドレスが不可欠です。この概念は、RFC(RFC 1812)で広く使用されています。ルーティングテーブル(routeコマンド)を見ると、ローカルネットワークアドレスを使用して、ローカルネットワークトラフィックをルーターを通過する必要のあるものから分離する方法がわかります。そのローカルネットワークアドレスがホストに割り当てられた場合はどうなりますか?

さらに悪いことに、このアドレスがネットワークアドレスでなくても、ゼロで終わるIPアドレスを割り当てない方が良いです。たとえば、ネットワークが10.10.0.0/255.255.0.0の場合、IPアドレス10.10.5.0はネットワークアドレスではありませんが、クラスフルIPネットワーク上でも完全に有効であるにもかかわらず、そのようなIPを割り当てない方がよいでしょう。一部のレガシーソフトウェア/ IPスタックには問題がある場合があります。

更新:ゴブリンロード

RFC 1812(5.3.5.2項)によると、ネットワークアドレスと呼ばれるものは、本来、ブロードキャストパケットを目的のネットワークに送信する「ダイレクトブロードキャスト」に使用されていました。この機能は、SMURF攻撃のために廃止されました。この機能は、RFC 2644で正式に変更されました。その後、さらなる実装、記載されている送信元アドレス(ネットワークアドレス)を持つパケットを静かにドロップする必要があります。これがどうあるべきかということですが、実際にいくつの実装が実際にそれを行うのかについて興味があります。

/ 31サブネット化がアドレス指定された場合、RFC 3021でこれがさらに追加されます。


5
@grawity:常にではありません。/ 31より大きいネットワークでのみ。たとえば、P2Pには2つのアドレスがあり、ブロードキャストアドレスはありません。
haimg

3
うーん...私は答えの最初の部分が好きです...それはクラスフルIPネットワークからのアーティファクトであるということです。2番目の部分に関する私の問題は、ルーティングテーブルがネットワークへのルーティングに特に使用されることです。私が理解しているように、ルーティングテーブルは、受信者がいないネットワーク(宛先IPがサブネット/ネットの一部ではない)にルーティングするためにのみ参照されます。これは事実です...ルーティングテーブルを見ると、その中のアドレスはネットワークアドレスであり、ホストアドレスではないため、これをホストパケットの宛先IPから分離しています。実際のトラフィックでは、ネットアドレスの宛先IPは使用されません。
ゴブリンロード

1
だから...これらの2つのインスタンスがすでに分離されている場合(ルーティングテーブルを見る必要があるかどうかを判断するときにルーティングテーブルと宛先IPのネットワークアドレス)に特に予約する理由はありますか?
ゴブリンロード

1
@Goblinlord:見つけることができる公式な理由はありません(最近のRFCなど)。ただし、非常に多くのソフトウェアは、ネットワークアドレスが「特殊」であるという前提で構築されているため、実際にはホストIPアドレスとして使用しない方がよいでしょう。
haimg

1
ネットワークアドレスもホストになることができるcisco configエントリがあります。これは少なくとも10年間使用されています...使用したことも、テストしたこともありません。私が担当するネットワークでホストが.0または.255で終わることを許可しませんが、/ 24s未満、@ Home、およびCoreOS sanbrunocableの/ 23および/ 21のホストとして中央の.0および.255を発行し、手動でそれらを予約しました。
ネビンウィリアムズ

5

したがって、実際的な答えは次のとおりです。による:

  • 正確なアドレス、および多くのRFCでのその意味
  • オペレーティングシステムのバージョンとリビジョン
  • ...そして、あなたのルーターと他のすべてのアップストリームルーターの
  • ...そして、これらのルーターのすべてのネットワーク管理者の知性と洗練度...

これをテストする際に、どのサイトにアクセスしても問題は発生していません。最終的にはすべてネットワーク管理者の気まぐれに任されているようです。通常、アップストリームデバイスがアドレスがネットワークまたはブロードキャストアドレスの一部であるかどうかを判断する方法はありません。それは単に大きなブロック内のアドレスであるためです。...ネットワークアドレスを使用します。ただし、ネットワークアドレスが割り当てられ、ネットワーク管理者が明示的にブロックしていない限り。

TCP-IPスタックの実装のバリエーションがいくつあるのか、どのように対応するのか、しないのか、正確にどのように、どこでマークを逃すのかについて、非常に詳細な統計を持っているセキュリティアナリストとハッカーがいるはずです。 。

実際、私はこれを自分のネットワークアドレスから参照して投稿しています。

このカードの家を修正するためのより良い解決策がない限り、私を悪いネチズンと呼ばないでください。現実には、人々がそれを使い始める前に、人生のほとんどのことと同じように、完全に愚かさのないデザインを思い付くために、本当に賢い人は誰も座って、考えられるすべての反復でこのすべてを熟考していません 結果?多くのものが足りない、および/または翻訳で迷子にならない標準。

現実の世界へようこそ。それで、とらえどころのない最適な理想を追いかけることを思いとどまらせてはいけません...手を汚して時間と人生を捧げる意思がない限り、「公式」チャンネルまたはフォーラムからのサポートを期待しないでください必要なコンセンサス、およびその周りの政治のナビゲート。

ですから、他のポスターが言おうとしていたことと思います。この公式ポリシーを作成し、本番環境で使用したいのであれば、あなたは自分自身です。(しかし、とにかくそうではありませんか?)幸運なことに、コンピューターインテリジェンスに、IPv4およびIPv6およびそれらのすべての壊れた実装と下位互換性のあるIPv8を設計してもらいます。


もちろん、ネットワークアドレスを使用している場合、一部のネットワークスタックがブロードキャストとして扱うため、割り当てられているデバイスはあらゆる種類のブロードキャストトラフィックを受信する可能性があります。ただし、これらは静かにドロップされるだけなので、通常はあまり干渉しません。しかし、これを取り巻く特異性に依存するネットワークエクスプロイトの数に興味があります
...-Dagelf

2

私はネットワークを初めて使用しますが、2セントも提供します。

xxx0〜xxx15の/ 28サブネットワークがある場合、事前定義されたルールに従って、14の使用可能なホストと2つの残りのホストがあります。残りはネットワークおよびブロードキャスト用です。

上記のルールに従う代わりに、実際に16個すべてのホストを使用できます。その場合、問題はありません。しかし、ネットワークの外部で通信が必要な場合、情報を送信または受信するためのリソースが不足しているため不可能です。

説明は得意ではありませんが、別の言い方をします。

私が通りの家に住んでいて、通りに14の家が含まれていた場合。幹線道路にアクセスするための車線の出入り。

私の郵送先住所は、1〜14 Personal Street、Off Network Roadの範囲です。

それは郵便配達員にとっては問題にならないでしょう。ここで、開発者が貪欲になり、さらに2つの家を追加し、車線をなくしたと仮定しましょう。

その後、私の新しい住所は1-16 Personal Streetの範囲になります

この例では、郵便配達員が困っています。

これは推測です。私が雄牛を話しているかどうかを教えてください。


0

ネットワークアドレスを使用すると、固定サイズ(4バイトIPv4)の宛先列と固定サイズのバイナリ操作を使用してルートテーブルを構築できるため、ホストルーティングとネットワークルーティングは実際には同じものになります。

次のようなルーティングテーブルを想像してください:(このPCは別のPCおよびネットワークカードと並列接続されています)

Dest           Mask    Dev
192.168.0.123  /32     plip0   # This is a single host
192.168.0.0    /24     eth0    # This is a network

IPアドレスとネットマスクのANDは、必要なものを正確に提供します。4バイトの数値は、さらに計算することなく各行と比較できます。

したがって、ホスト番号ゼロは、AND演算後、そのアドレスがネットワーク全体を自然に表すという意味で特別です。

ネットワーク番号をホスト番号として使用することにした場合、次のような表が作成されます。

Dest           Mask    Dev
192.168.0.0    /32     eth0    # This is the host (it's a redundant line)
192.168.0.0    /24     eth0    # This is the network

これは正当なように思えるので、ネットワークアドレスの概念はルーティングの理由で使用されるため、それを特別なアドレスとしてマークし、ホストアドレスとしての使用を禁止することが任意に決定されたと思います。

まあ...実際にはそれほど簡単ではありません。私はそれを試してみることにしました(!!!):

# route add -net 192.168.0.0/32 eth0
# ping 192.168.0.0
Do you want to ping broadcast? Then -b
# telnet 192.168.0.0
Trying 192.168.0.0...
telnet: connect to address 192.168.0.0: Network is unreachable

現在、ネットワークプログラムでは、ネットワーク番号を通常のアドレスとして使用できません。


あなたの最初のルーティングテーブルの例を考えると、それは物事を行うための本当に悪い方法だと思います...あなたが.0.0サブネット上に他のホストを持っている場合、静的にルートを設定せずに相互に適切に通信する方法と.0.123ホストひとつひとつのホスト?それは本当に物事を行うための適切な方法とは思えません。
ゴブリンロード

これは単なる架空の例です。私はそのようなテーブルをセットアップすることは決してありません:-) .123ホストはポイントツーポイント接続で接続され、残りは通常のイーサネットネットワークです。他のマシンに.123ホストにアクセスさせたい場合は、追加の作業を行う必要がありますが、不可能ではありません。
デビッドコスタ

0

この質問に対する答えを探しているうちに、シスコからこの記事に出会いました。その記事からの次の引用は、私が思うにうまくまとめています。

[...] IPアドレス172.16.1.10を検討します。このIPアドレスに対応するサブネットアドレスを計算すると、到着する回答はサブネット172.16.0.0(サブネットゼロ)です。このサブネットアドレスは、最初にサブネット化されたネットワークアドレス172.16.0.0と同一であるため、サブネット化を実行するたびに、区別できないアドレスを持つネットワークとサブネット(サブネットゼロ)を取得することに注意してください。これは以前は大きな混乱の原因でした。

混乱を避けることは、私にとって十分な理由です。


私はこの質問がかなり前に提起されたことを知っていますが、私はただこのことをレビューしていました。引用する記事は、「サブネットゼロ」またはネットワークアドレスの最初のサブネットについて述べています。これは完全に異なるものであり、私が取り組んでいる現代のネットワークでは、すべてのスイッチで「ip subnet-zero」機能が有効になっています。また、最近ではすべてのスイッチでデフォルトで有効になっていることにも言及しています(2003年頃にリリースされたバージョン12以降)。
ゴブリンロード

0

RFC 1122(「インターネットホストの要件-通信層」)で禁止されています。

IPアドレスは、<Host-number>、<Network-number>、または<Subnet- number>フィールドのいずれに対しても値0または-1を持つことは許可されていません


0

ネットワークアドレスはホストアドレスとは見なされませんが、単なる数字です。ポイントツーポイントネットワークなどのアドレスが制限された領域では、/ 30マスクが頻繁に使用されますが、それでもホストアドレスが使用されます。より少ないプラクティスですが、同じ原則を達成するために、/ 31マスクを使用し、一方の端をネットワークアドレスとして使用し、他方の端をブロードキャストとして使用します。

Router(config)#int gi0/0
Router(config-if)#ip add 10.0.0.0 255.255.255.254
Router(config-if)#no shut


Router2(config)#int gi0/0
Router2(config-if)#ip add 10.0.0.1 255.255.255.254
Router2(config-if)#no shut


        .0        .1
[Router]-----------[Router2]
   network      broadcast
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.