サマリ
- 正確には違うが、サーバサイドでは条件により結果的に同じものであることがある
- WindowsのGUIで設定しているものは本当にデフォルトのゲートウェイである
- Linuxでインターフェースファイルにゲートウェイを指定する場合
- デフォルトゲートウェイなら、DEFROUTE=yesを設定
- 単にそのインターフェースの出口を指定したいならDEFROUTE=noを設定
用語の整理
- ゲートウェイは別のネットワークへの出口(ルータ)のことを言う
- デフォルトゲートウェイは未知のルート(デフォルトルート)の場合に使用するゲートウェイを言う
- サーバのルーティングテーブルで 0.0.0.0/0 はルーティングの最長マッチにより最後に選択されるもので、これがデフォルトゲートウェイになる
補足
補足
- サーバサイドの設定と言う意味ではゲートウェイを指定するのは、複雑なネットワーク構成でない場合、デフォルトゲートウェイのみのため、ゲートウェイ=デフォルトゲートウェイとなることが多い(はず)。
- 複数NICでかつNICから出るネットワークがそれぞれ自ネットワークを超えて通信する必要がある場合、ゲートウェイとデフォルトゲートウェイを注意して設計・設定する必要が出てくる
- なお、セキュリティ要件が厳しい場合は、デフォルトゲートウェイを設定せず既知のネットワークやホストだけ通信するよう構成することもある
備考
経緯
調べることになった発端は、Windowsのネットワーク設定GUIで、デフォルトゲートウェイの表記があったため
(今まであまり気にしていなかった)
なので、
- Windows: インターフェース毎にデフォルトのゲートウェイがある、というように読み取れる
- Linux: インターフェースに設定できるのはGATEWAYでデフォルトゲートウェイにするかどうかを選択する、と読み取れる(インターフェースファイルへの設定で"GATEWAY"と"DEFROUTE"パラメータがある)
結論
結論としてはどちらも正しく、Windowsの設定でも実際には、通常は複数インターフェースでもデフォルトゲートウェイは1つのNIC分のみ指定する。(複数の別のNWに接続されたインターフェースで指定しようとすると警告メッセージが表示される※1)
※1 デフォルトゲートウェイを複数持たせてあるゲートウェイに障害が発生した時に切り替える代替パスとしての指定をするOSもあり、Windowsはこれに該当するようだ。