作品集ポエム系デフォルトゲートウェイは同一ネットワーク内のホストじゃなきゃダメだよ2020-01-17#技術系#ネットワーク「なんだこのアホみたいなタイトルは」と分かっている人は思うかもしれませんが、道端を歩きながら、なぜかふと「デフォルトゲートウェイは同一ネットワーク内のホストじゃなきゃダメだよね?」と初歩的なことが気がかりになってしまったのでまとめときます。デフォルトゲートウェイには、同一ネットワーク内のホストを指定しなければなりません。そのホストのMACアドレスを知っている必要があるからです。(本当は順序が逆で、「同一ネットワークでないネットワークと通信するためにデフォルトゲートウェイが必要」なんですけどね...!)似たような意味かつより具体的に、いくつか言い換えてみます。「ARPでMACアドレスを解決できる」相手のIPアドレスをデフォルトゲートウェイの値として設定できます。「リンク上」にあるホストのIPアドレスをデフォルトゲートウェイの値として設定できます。「直接接続」しているホストのIPアドレスをデフォルトゲートウェイの値として設定できます。この3つの文章はほとんど同じ意味です。大前提ゲートウェイの動きを理解する上での大前提は、MACアドレスを知らないホストと通信することはできないということです。ホストは、自分のMACアドレス宛ではないEthernetフレームは破棄してしまいます(ブロードキャストなどは除く)。宛先IPアドレスが確かに自分のものだったとしても、宛先MACアドレスが自分宛でなければ、宛先IPアドレスが自分のものかを確認することもせずそのフレームを捨ててしまいます。デフォルトゲートウェイを設定すると何が起こるかあなたがルーターやパソコンだとしましょう。マッチしたのはデフォルトルート(0.0.0.0/0)だけでした。これは知らない宛先なので、このパケットを、(デフォルト)ゲートウェイに代わりに宛先まで届けてもらいたいです。上の、3つ目のステップで、デフォルトゲートウェイに設定したホストの、MACアドレスが必要になります。設定値としてはデフォルトゲートウェイのホストのIPアドレスが設定されています。そこで、設定されたIPアドレスから、そのホストのMACアドレスを調べたいです。したがって、「このIPアドレスを持ってる人はMACアドレスを教えてください」とARPリクエストをブロードキャストします。ここで、ゲートウェイとして設定されたIPアドレスが外部ネットワークのものだと、ARPリプライが返ってこないのでMACアドレスが分からず、先ほどの「バケツリレーのお願い」に失敗します。あるARPブロードキャストはネットワークを超えて外部に転送されないので、外部ネットワークのホストにこのARPパケットは届きません。何度ARPリクエストを送信してもゲートウェイのMACアドレスが分からず、送ろうとしていたパケットがいつまでたっても転送できないので、結局タイムアウトでパケットが消失するでしょう。同じネットワーク内のホストだけがこのARPリクエストを受け取り、返事をすることができるので、デフォルトゲートウェイは同一ネットワークのホストでなければならないのです。追記どのサイトも長ったらしくて読みづらいなと思って自分で書いてみたら長ったらしくて読みづらくなりました。図やイラストを載せるだけで相当分かりやすさが変わると思うけど面倒くさいので文字で済ませました。2020PostsAboutProfileWorks。