07-05
岸谷にさっきのメモとLSAタイプ1のログとを添付したメールを送ってから、都はCJ案件の既存コンフィグのチェックに取り掛かった。まずはMPLSと括弧書きのある方の本社から開いた。上から流して見ていく。ログの時刻表示に年表示をつけるオプションがなかったり、ログに行番号をつけるオプションがなかったりだけではなく、パスワードをログ表示の時に暗号化させないようになっており、コンフィグにパスワードが見えてしまっている。パスワードをわざと見せるようにしているベンダーも確かにいて、パスワードを忘れてしまった時にテキストで保存してあるコンフィグを見ればわかるということらしいのだが、運用としては疑問を感じる。
ちょっと雑なコンフィグだなと都は思った。インターフェイスの説明書きは小文字の英字がずらずらと並んでいるだけで見づらかったり、OSPFでインターフェイスを有効にする際のネットワーク指定はWANインターフェイスもLANインターフェイス両方含んでいるのに、OSPFのネイバー検出をWANインターフェイスで止めるコマンドは入っていなかったり。BGPのネイバーはピアのAS番号を書いてあるだけで、受信したアップデートを保持するようにするコマンドすら入っていなかったり。いくつかあるLAN向けスタティックルートは説明文がないので、一体何のためのものなのか初見では全くわからない。LAN配下のセグメントだろうといいたいところだが、それでは何のためにOSPFを回しているのか。
LAN側のダイナミックルーティングは、LAN側の機器がMPLSのWAN側で回っている異なるダイナミックルーティングからの再配送ルートを受信するために使うだけで、MPLSのWAN側へはスタティックルートで書いたルートを広告する、という案件もある。LAN側には細かいルートで回っていて、BGPの集約ルート生成に付随するトラブルを避けるため、集約ルートをスタティックルートで書いていたり、ダイナミックルーティングが回っている機器と回っていない機器があり、後者向けにスタティックルートを設定していたり。スタティックルートに説明文があれば意図は何となく掴めるものなのだが、この既存コンフィグのインターフェイスの説明文のセンスから鑑みるに、たとえこれらのスタティックルートに説明文がついていたとしても、わかりづらかったかもしれない。
BGPで広告しているルートはネットワークコマンドで指定されているが、集約ルート生成のコマンドも数本あった。しかし集約ルートはかなり広いサブネットマスクで生成されている。この集約ルート生成はマイグレーション後も維持するのだろうか。だとしたら、マイグレーション後は集約ルートを作るにあたって条件文を足してやらないといけない。もし他拠点のルートがこの集約に含まれると、BGPで受信したルートを種として集約ルートが生成されてしまう。メイン・バックアップ冗長構成のメイン側のルーターでこれをやってしまうと、LAN側が断になったとしても集約ルートを生成し広告し続け、他拠点からの通信はバックアップ側へ迂回することが出来ない。集約ルート生成コマンドが推奨されない所以の一つはここにあるが、この問題は集約生成に条件をつければ解決できる。他拠点のルートにもよるだろうが、気をつけないと、と都は思った。
ノートの新しいページを開いて、真ん中あたりに現在利用中のMPLSを表す楕円を描く。そこから線を一つ余白へ引き、線の終端に客宅ルーターを表す丸を書いた。そのルーターからさらに下に線を引き、その線を止めるように短く横に線を引く。その横線をガイドに使うようにして、下に現在本社からBGPで広告しているルートを、ネットワークとプレフィックス長の形で書き留めて行く。通常端末上でも空のテキストファイルを開き、しーじぇーるーと、というファイル名でデスクトップに保存した。括弧付きで本社と書いて改行し、その下にBGPのネットワークコマンドと集約生成の部分をコピーペーストしておく。後でネットワーク図をプレゼンテーションファイルで作成する時に使うためだ。ノートのメモから手書きで打つとどこかで間違いが出る恐れがあるので、ルートについては基本コピーペーストが良い。ルートが多くなれば多くなるほど、手書きによる書き間違いは出てきてしまう。ルートが少なくたって、思わず第3オクテットが4桁になってたりする。下手をするとコンフィグを実機にコピーペーストした時、ルーターに撥ねられて初めて気がつくことさえある。
VPNと括弧書きされた方の本社のコンフィグを開いた。インターネット越しに繋がっている他拠点と暗号化VPNを張っているコンフィグだ。これが海外拠点とインターネットVPNを張っているルーターということだろう。このルーターのメーカーだと使えるはずのバーチャルトンネルインターフェイスは使っておらず、暗号化する対象のパケットを定義し、定義されたパケットのみ暗号化、VPNの終端へ転送するコンフィグになっている。対向拠点毎に暗号化のポリシーが作成してあって、ポリシーの中には対向のルーターのIPが設定されている。つまり対向拠点はどこでも固定グローバルIPを買っているというこだ。ただインターネットへの接続を買っただけでは、通常の一般家庭のもののように、その家の終端機器のIPはインターネットサービスプロバイダが保有しているグローバルIPから空いているものが終端機器の接続時に動的に払い出される。その方が安上がりだが、インターネットにウェブサイトなどを公開するのは難しい。また、このお客の構成のようにインターネット上の拠点同士の暗号化VPN通信も普通の方法では確立することができない。どちらも必要な場合はグローバルIPを買わないといけないが、これは初期費用だけではなく月額費用もかかる。小さい拠点であれば固定IPは買わず、固定IPを持つハブとなる本社のような拠点と、ダイナミックに暗号化VPNを確立するデザインを採用すれば良い。このダイナミックに暗号化VPNを張るデザインがこのお客には使われているだろうと都は想定していたのだが、違った。
拠点毎の暗号化ポリシーは、それぞれどの拠点向けのものであるとポリシー名でわかるようにするためであろう、ポリシー名は海外の都市名になっていた。暗号化するパケットのマッチ条件が、送信元は全て、宛先はおそらく対向の拠点のLAN側のセグメントであろう、特定のセグメントとなっている。ポリシー名をコピーして先ほどのルートをまとめているテキストに貼り付ける。その下には暗号化対象のマッチ条件にある宛先ネットワークを、アドレス、プレフィックス長の形で書いておく。後で海外拠点の既存ルーターのコンフィグを見たときに、そのポリシー名の拠点のLANネットワークと、暗号化対象の宛先アドレスとは一致するはずだ。
本社のVPNルーターはWANインターフェイスを出口としたスタティックルートが、デフォルトルートの一本しかない。そしてWANインターフェスのインバウンドにパケットフィルタが掛かっていた。許可されているのは、プロトコルESPとUDPのポート500番で、宛先がこのルーターのグローバルIP、送信元が拠点毎の暗号化ポリシーに設定されている対向拠点のグローバルIP、となっているもののみだ。つまり、このルーターは海外拠点とVPNを張るだけのためのもので、通常のインターネット向けトラフィックはこのルーターを出ていけない。正確にいうと、デフォルトルートで出てはいけるが、このWANインターフェイスのインバウンドのフィルタのせいで戻っては来れない。またアドレス変換の設定もないので、LAN側がプライペートIPで構成されている以上、インターネットからの戻りパケットはインターネット上でルーティングがそもそも出来ない。
海外拠点へのルートはこの暗号化VPNのやり方だと、このルーターの上ではスタティックに細かく切る必要はない。しかしLANの機器では持っていないといけない。おそらくLANのL3機器で、このVPNルーター向けにスタティックルートを設定して、それらをOSPFへ再配送しているのだろう。そのルートをMPLSルーターが受け取り、それを種にして、集約ルートを作成する、と言うデザインのようだ。都はノートに目を落として、集約ルートを確認した。暗号化処理対象パケットの宛先ネットワークとなっているものは全て集約ルートの一つに含めることが出来た。BGPのネットワークコマンドにはその宛先ネットワークと一致するものが二つあった。全部ないところがまた雑だな、と都は思った。集約しているのに、集約ルートだけではなく元のルートも広告する設定になっているのも、何か意図があってと言うよりはただ雑なだけなのだろう。
本社の既存WAN設計はそれほど複雑ではなさそうで、だいたい把握できた。あとは各拠点のルーターのコンフィグを見て行ってネットワーク図に落として行こうと思ったところで声を掛けられた。集中していたらしく、都の側に近づいてきたのに気がつけなかった。