以下の図のネットワークがある。 Windowsパソコン(PC1~PC100)のIPアドレスは,ルーター1上で動作しているDHCPサーバーから動的に払い出されている。また,ルーター1でアドレス変換が行われており,日常業務で利用するインターネット接続は問題なく実施できている。 この環境で,新たに一部の業務で192.168.21.0/25上にあるサーバーAと通信する必要ができたため,Linuxマシンであるルーター2を増設して設定することにした。どのような設定を追加するのがよいか,このケースにおいて最も適切だと思われる設定を,選択肢から一つ選びなさい。 なお,サーバーAが接続されているネットワークは今後拡張される予定がある。またサーバーAのルーティング設定は適切に行われているものとする。

ルーティング設定の追加

[選択肢]
a. ルーター1がDHCPで配布するデフォルト・ゲートウエイのアドレスを「192.168.10.2」に設定,ルーター2に「route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.10.1」を設定
b. PCに「route add 192.168.21.0 mask 255.255.255.0 192.168.10.2」を設定
c. ルーター1に「route add -net 192.168.21.0 netmask 255.255.254.0 gw 192.168.10.2」を設定
d. ルーター1がDHCPで配布するデフォルト・ゲートウエイのアドレスを「192.168.10.2」に設定,ルーター2に「route add -net 10.10.10.0 netmask 255.255.254.0 gw 192.168.10.1」を設定
e. ルーター1に「route add -net 192.168.20.0 netmask 255.255.254.0 gw 192.168.10.2」を設定

[解説]
 問17の正解は,選択肢eの「ルーター1にroute add -net 192.168.20.0 netmask 255.255.254.0 gw 192.168.10.2を設定」です。

 この問題は,ルーティングの設定内容について問うものです。LinuxマシンとWindowsマシンのrouteコマンドを使った問題ですが,ルーティングの基本的な知識があれば解ける問題です。

 特定のネットワークあての経路情報は,Linuxマシンでは「route add -net ネットワーク・アドレス netmask サブネット・マスク gw ネクスト・ホップ」,Windowsパソコンでは「route add ネットワーク・アドレス mask サブネット・マスク ネクスト・ホップ」と設定します。

 選択肢aは, DHCPで配布するデフォルト・ゲートウエイのアドレスをルーター2に設定しています。ルーター2ではデフォルト・ゲートウエイをルーター1にしています。というのも,アドレス0.0.0.0,サブネット・マスク0.0.0.0というのは,デフォルト・ゲートウエイの設定を意味するからです。PCからサーバーAあての通信が発生した時は,まずデフォルト・ゲートウエイの設定により,パケットがルーター2に送られます。サーバーAのアドレスはルーター2が接続されているネットワーク上(192.168.21.0/25)ですので,明示的にルーティングの設定を行っていなくてもパケットはサーバーAに送信されます。

 サーバーAのルーティングは適切に設定されていますので,サーバーAを出た戻りのパケットはルーター2に転送され,ルーター2に接続されているネットワーク上にあるPCに送られます。また,インターネットあての通信はルーター2に転送された後,ルーター2のデフォルト・ゲートウエイの設定に従い,ルーター1に転送されます。ルーター1のインターネット接続の設定は正しく設定されていますので,ルーター1からインターネットへの通信は正しく実行されます。インターネットからの戻り通信は,ルーター1まで到着した後,同一ネットワークに接続されているPCに直接送られます。従って,選択肢aは正しくルーティングされます。

 選択肢bは,PCに静的ルーティングを設定をすることで,192.168.21.0/24あての通信をルーター2に転送するようにしています。PCからサーバーAあての通信が発生した場合は,静的ルーティングの設定に従って,ルーター2に送信されます。以降は選択肢aと同様にして通信が行われます。従来よりPCからインターネットあての通信はできていたので,PCのデフォルト・ゲートウエイはルーター1に設定されていることがわかります。そのため,PCからインターネットあての通信は静的ルーティングを追加した後も,デフォルト・ゲートウエイの設定に基づき,ルーター1に送られ,以降は選択肢aと同様にして通信が行われます。従って,選択肢bは正しくルーティングされます。また,サーバーAが接続されているネットワークのアドレスは192.168.21.0/25ですが,192.168.21.0/24というアドレスはこれを包含していますので,ルーティング上の問題は発生しません。また,問題文に「ネットワークは将来拡張される予定がある」とあり,それを見越してあらかじめルーティング範囲を広めにとっておくことも,よく行われる対策です。

 選択肢cは,ルーター1に192.168.21.0/23というあて先の設定をしようとしています。注目すべきは,サブネット・マスク長が23ビットになっているところです。192.168.21.0というアドレスは,192.168.20.0/23というアドレス・ブロックの中に含まれる1アドレスに過ぎません。よって,ネットワーク・アドレスとしてこのような設定はできません。現に,入力しようとすると,エラー・メッセージが出て入力できません(下図)。従って,選択肢cは誤りです。

エラー・メッセージ

 選択肢dは選択肢aと似ていますが,ルーター2では10.10.10.0/23というアドレスをルーター1にルーティングしています。この場合にPCからインターネット上のサイトに通信しようとすると,パケットはまずルーター2に到達しますが,ルーター2では10.10.10.0/23以外のあて先へのルーティング情報がないため,選択肢aのようにルーター1に転送することができず,通信は失敗します。従って,選択肢dは誤りです。

 選択肢eはルーター1上で192.168.20.0/23あての通信をルーター2に転送するように設定しています。PCからサーバーAあての通信が発生した場合は,選択肢bに記載したように,PCのデフォルト・ゲートウエイはルーター1であるため,まずルーター1に送信されます。ルーター1ではルーティングの設定に基づきルーター2に転送します。以降は選択肢aと同様にして通信が成功します。インターネットあての通信は選択肢bと同様の考え方で成功します。従って,選択肢eは正しくルーティングされます。

 では,選択肢a,b,eでどれが一番「妥当」かを考えます(下図)。選択肢bは,インターネットとサーバーAへの通信がいずれも最短経路で到達するというメリットがあります。しかし,100台のPCの各々に静的ルーティングの設定をする必要がありますので,せっかくTCP/IPの設定をDHCPで管理しているメリットが薄れてしまいますし,管理の手間もかかります。従って通常の環境では,妥当とは言えないでしょう。

どの設定が一番妥当か?

 選択肢aとeはある意味一長一短です。選択肢eではインターネットへの経路が,選択肢aではサーバーAへの経路が遠回りになります。どちらを取るかですが,インターネットは「日常業務で利用」,サーバーAは「一部の業務で」利用という記載が問題文にあるので,この問題のケースでは,インターネットへの通信経路がより近くなる選択肢eの設定が妥当だと考えられます。従って,この問題では正解を選択肢eにしました。

 もちろん,サーバーAへのトラフィック量がインターネットのトラフィックよりも多いといった要件がある場合は選択肢aが正解になることもあるでしょうし,元々静的IPアドレスの環境で,各PCの構成管理も一元化できている環境では選択肢bが最適な場合もあると思います。このようにルーティングの方法が何通りか考えられる環境では,他の要件を勘案した上で最適なルーティングを考えていく必要があります。