問題解説:WEBサーバーに繋がりません

みなさんこんにちは!大阪工業大学藪野好一です。
ICTSC5が終了してからもうすぐ1ヶ月ですね。とても時間の経過が早いと感じるこの頃です。

前回は、WEBアプリケーションを作ってみましたというタイトルでブログを書かせて頂きましたが、今回は大会1日目の午前に出題したWEBサーバーに繋がりませんという問題の解説をしたいと思います。

問題文

ある部署の追加に伴ってネットワークの改修を行った。しかし、改修後サーバーに繋がらなくなった。このトラブルの原因を特定し、正しく繋がるように設定を変更して欲しい。また、変更点と原因を詳しく説明して欲しい。

トラブルの原因

この問題は、WEBサーバーに繋がらないといっていますが、原因はサーバー側ではなく経路情報の交換が行われないというトラブルで、そのトラブルを解決してもらう問題でした。経路情報が正しく回っていない理由は2つあります。

1つ目は、MTUのサイズの不一致で、2つ目がアクセスリストの暗黙のdenyによるOSPFパケットの拒否でした。対向するインターフェイスのMTUサイズが一致しないと隣接関係を確立することが出来ないため、OSPFでの経路情報の交換が行えません。アクセスリストとは、通過するパケットの許可と拒否を設定することが出来るリストで、通過が許可されていないパケットは通過が暗黙的に拒否されます。今回最初に適用していたアクセスリストでは、OSPFの通過を許可する条件に一致しないため、OSPFパケットの通過が暗黙的に拒否されます。

この2つの理由によりOSPFによる経路交換が行われなくなりWEBサーバーに接続できない状態となっていました。

yabuno_issue

まとめると次のようになります。

  • MTU(Maximum Transmission Unit)
    • 一度の転送で送れるデータの最大量
    • 対向のインターフェイスのMTUのサイズが違うとOSPFの隣接関係が確立出来ない
  • ACL(Access Control List)
    • 通過するパケットの許可と拒否を設定することが出来るリスト
    • 通過が許可されていないパケットは通過が暗黙的に拒否される

解決方法

今回のトラブルでは、OSPFによる経路情報の交換が行われていないため、OSPFにより正しく経路情報の交換が行われるように設定の変更を行う必要があります。そのために、対向ルーターのMTUサイズを一致させ、アクセスリストをOSPFが通過できるように書き換えます。これにより、OSPFによる経路情報の交換が行えるようになります。

yabuno_answer

さらに、次の2点の修正も行うことによりトラブルの発生を抑制したり、トラブルシューティングを容易にすることが出来ます。

1つ目がMSSの調整です。MSSとは、TCPで受信可能なヘッダを除いたデータサイズです。MTUサイズがイーサネットの標準サイズである1500から変更されている場合はMSSサイズも設定することが推奨されています。今回最初に設定されていたMTUサイズは1360だったので、TCPヘッダ(20byte)とIPヘッダ(20byte)の合わせて40byteを引いた1320をMSSサイズとして設定します。

2つ目は、アクセスリストで暗黙的に通過が拒否されているicmp のunreachableパケットの通過を許可する設定への変更である。このicmp unreachableパケットの通過が拒否されると、宛先に届けられなかったという情報が正常に帰って来ないためトラブルの原因となります。そのため、icmpのunreachableも通過を許可するようにアクセスリストを書き換えることが望ましいと考えます。

出題意図

普段は当たり前のように経路交換を行っているルーティングプロトコルがうまく動作しない場合の例とそれによって起こるトラブルを知って欲しいという思いから問題を出題しました。

最後に

1問目のインターネットに繋がりません問題と一緒に出題したため、問題の難易度が高くなってしまったようで、正解率はとても低かったです。
もし、OSPFが回っていないというトラブルに遭遇した際にこの問題の事を思い出していただければ幸いです。

今回初めてトラブルシューティングコンテストに関わらせていただきましたが、多くの経験をさせて頂きました。この場をお借りしてお礼申し上げます。実行委員のみなさま、運営委員のみなさま、参加者のみなさま本当にありがとうございます。そしてお疲れさまでした。