09-09

2022-02-06

 PCとルーターをコンソールケーブルとUSB変換ケーブルで繋ぎ、ターミナルソフトのログ取得も開始したので、デスクトップにあるバックアップ側ルーター用のスクリプトを開く。こちらは少しスクリプトが長い。インターネットとの接続用のコンフィグは、インターネットサービスプロバイダとのPPPoEの設定もあるし、MPLSプロバイダのインターネットゲートウェイとのIPSecの設定もある。IPSecで保護されたトンネルインターフェイスを上げて、トンネルインターフェイス越しにプロバイダエッジルーターとのBGPを張るまで出来て、初めてWAN開通となり、オフィスからMPLSの保守ルーター経由で接続できるようになるので、ここまで現場でコンフィグする必要があった。もっともオフィスからインターネットゲートウェイにはログインできるので、インターネット関連のコンフィグだけ入れるでも良いはずだが、ログイン手続きが保守ルーターと異なるので、手間を省きたかったからかもしれない。通常は現場作業員のスキルを考慮して、現場作業の手間を出来るだけ省くようにするものだが、今回は普段同じオフィスでSEをやっている人間が現場作業員として行く、と言うことでこの程度のスクリプトであれば問題ないだろう、と思われたのかもしれない。そもそも、日本国内の客宅ルーターの設置で、事前にコンフィグが入っていない、空のルーターを発送するやり方自体が特殊なのだが。そう言えば、都はこうなった経緯を結局聞けていなかった。
 スクリプトを見て、WANインターフェイスはギガビットイーサーネットの8とわかったので、岸谷に、WAN用のUTPケーブルで終端装置のイーサーネットポートと、ルーターのギガビットイーサーネットの8とを接続するよう依頼した。メイン側のルーターと筐体が異なるので、インターフェイスの数やポート番号が異なる。ハーフラックは奥行きもそんなにないので、岸谷はラックの裏側へ回り、一人で接続を完了させていた。
 「間宮さん、じゃあ電源おーん、してもいいですか?」
 「うん、お願い。」
 岸谷はラックの上から顔を覗かせて聞いてきたので、都はちょっと笑ってしまって返事をした。都はラックの前で、PCを前にしゃがんでいると、岸谷の可愛らしい顔がラックの天板の向こうから、小動物が顔を出すようにひょっこり出てきた。ルーターが起動し切ってから、メイン側と同じように、WANインターフェイスをコンフィグせずに開放だけして、終端装置の速度と通信方式を確認する。こちらのスクリプトも100メガ、全二重の固定設定となっていて、期待通り、WANインターフェイスはスピードが100メガ、通信方式は半二重でアップになっていた。終端装置も100メガ・全二重の固定設定であることが確認取れたので、都はスクリプト通り、WANインターフェイスの設定を固定設定へと直した。
 スクリプトは、まずインターネットの接続に必要な部分から流し込むことにした。物理のWANインターフェイスである、ギガビットイーサーネットの8にはPPPoEを使う旨の設定とダイヤラーインターフェイスとの紐付きを設定する。続いて、PPPoE接続を司る論理インターフェイスのダイヤラーインターフェイスを作成し、物理インターフェイスとの紐付け、PPPoEの確立のための対象パケット指定、PPPoEの認証方式・パラメーターなどの設定をする。IPアドレスはどこにも設定しない。たとえ固定グローバルIPの場合でも、インターネットサービスプロバイダのプロバイダエッジとPPPoE方式で認証を取る場合、IPアドレスは認証後、プロバイダエッジのPPPoEサーバから付与される。サーバ側で、このユーザーはIP固定となっていれば、たとえルーターの電源が落ちたり、回線断があったりしても、同じ固定グローバルIPがサーバーから付与される。
 インターネット接続部分のスクリプトは、ちょうどまとまっていたので、都はその部分をいっぺんにコピーして、一気に流し込んだ。PPPoE認証のダイヤラーインターフェイスが首尾よく上がる時に、自動で作られる二つのバーチャルのインターフェイスが上がったことを知らせるログは、ターミナルウィンドウにすぐ吐き出されてきた。インターネット向けルーティングのため、ダイヤラーインターフェイスに紐づいたデフォルトルートもコンフィグする。都はルーターの各インターフェイスにアサインされたIP一覧を表示するコマンドを叩く。ダイヤラーインターフェイスには無事グローバルIPがアサインされていた。ここでルーターの電源を一旦落として、再起動し、同じグローバルIPがアサンされることを確認してもいいのだが、そこまでの実施の指示は受けていないし、再起動にはそれなりに時間がかかる。またPMがいつ終わるんだと、平下に電話をかけてこないとも限らない。都はひとまず、MPLSプロバイダのインターネットゲートウェイまでPingを打って見て、到達することを確認した。インターネットなので、品質は保証できないものの、念のためサイズを1452バイトとして、1000発ほどMPLSプロバイダのインターネットゲートウェイまでPingを打ってみた。MTUサイズを1452バイトと小さくしたのは、PPPoEのオーバーヘッド、日本特有のインターネット網の接続事情から引くべきオーバーヘッドを考慮した値だ。これはスクリプトのダイヤラーインターフェイス部分にも、MTUサイズの指定として設定が入っている。この設置場所が都内ではないことと、週末の日中ということで、それほどインターネットが混んでいないからだろう、欠けなく全て到達した。
 「インターネットはおっけー、っと。」
 都はそう呟いてから、スクリプトファイルのウィンドウをクリックして、IPSec部分のコンフィグをざっと確認する。2ステップの鍵交換に必要なパラメーター、トンネルインターフェイスの暗号化設定など、必要なコンフィグは一通り揃っているので、IPSec設定や、トンネルインターフェイス、BGPふくめ、一気に流し込む。トンネルインターフェイスが一旦上がり、IPSecが未だ張れないために落ちるログが吐き出された。暗号化や鍵交換に時間がかかっているだけだろうと思い、都はスクリプトに残った、リモートログインに関するコンフィグも流し込んだ。
 都は文字通り、ふぅ、と一息吐いて一息ついたが、一向にトンネルインターフェイスもBGPも上がってこない。つまりプロバイダエッジルーターへ到達できていないことになる。プロバイダエッジルーターへ到達するためにはまずIPSecトンネルが上がらないといけない。都はインターフェイスにアサインされたIP一覧を表示するコマンドを叩く。トンネルインターフェイスは、開放されているが、プロトコルは落ちていた。スクリプトを見る限り、不足しているコンフィグはないし、暗号化アルゴリズム、ハッシュアルゴリズム、認証方式など、このMPLSにIPSecで拠点を接続するときに使われるパラメーターは、都の暗記しているものと照合しても間違いはない。すると、事前共有鍵か、トンネルインターフェイスの設定がどこか間違っている、ということが推測できる。都は、IPSecの鍵交換の状態をみるコマンドを叩いた。すると、最初の鍵交換が成立していない表示が出ている。
 コピーアンドペーストなので、都が間違えた、ということは考えにくいが、都は念のため、ターミナルウィンドウをスクロールアップして、事前共有鍵を流し込んだ箇所まで戻り、スクリプトのファイルをドラッグして並べて、見比べた。
 「B、6、小文字のc、x、8…。」
 都は1文字ずつ読み上げながら確認する。
 「どうしました?」
 平下が腰を折って、都の右の横顔を覗くように聞いてきた。岸谷は既に都の左隣にしゃがんで一緒にPCの画面を見ていた。
 「いえ、ちょっとIPSecが張れなくて、スクリプト通り流し込んだかどうか、確認してます。」
 都は落ち着いて言ったが、内心は焦っていた。IPSecが張れないというトラブルは珍しいものではないが、大抵は、インターネットサービスプロバイダのルーターが客宅ルーターの手前にあって、そのインターネットサービスプロバイダのルーターが原因なことが多い。それがお客用意のインターネット回線だと、都たちが全面に立ってトラブルシューティングをするわけにもいかず、お客に対して、インターネットサービスプロバイダと確認をするようお願いするしかない。インターネットサービスプロバイダのルーターには、きちんと事前に払い出された固定グローバルIPがLAN側にアサインされ、そのLAN側につないだ客宅ルーターは、その固定グローバルIPのままアドレス変換されることなく、インターネットへ抜けられるようになっているか、インターネットサービスプロバイダのルーターにファイアーウォールのような機能があって、IPSecのプロトコルを落としていないか、などを確認してもらわないといけない。しかし、インターネットサービスプロバイダにとってのLANが、都たちMPLSプロバイダにとってはWANだったりと、お客を挟むと用語の混乱も起きて、なかなか解決しないことも多い。
 今回は、客宅ルーターの手前にはL3機器はないので、そう言った要因でのトラブルはない。こういう場合、大抵は単純にプロバイダエッジルーターか、客宅ルーターのコンフィグの間違いが原因だ。さっきの高齢の客のしゃがれ声の、ほとんど恫喝と言って良いくらいの言い振りは、絶対に問題なく開通させろ、ということを暗に要求しているのだ。万が一コンフィグ間違いでWAN開通が長引くと、相当な温度の高さで問題になるのは間違いがなかった。客に遅い、何をやっているんだ、と疑問を持たれる前に、開通させる必要がある。
 都が確認した限り、事前共有鍵に間違いはない。岸谷にも念のため比較してもらったが、岸谷も差分はないと言う。と言うことは、このスクリプトが何かの雛形からの部分修正で作られたもので、インターネットゲートウェイのIPや、トンネルインターフェイスのIP、事前共有鍵など、このお客のルーター固有のパラメータを全て書き換えたつもりが、何かを書き換え忘れた、と言うのはありそうだ。インターネットゲートウェイは海外オフショアセンターの管轄なので、当然事前共有鍵の払い出しも、海外オフショアセンターだ。オフショアセンターの担当者から事前共有鍵の連絡が遅くて、スクリプトのその部分を上書きするのを忘れて岸谷に渡してしまったのか。これは一人でいくら考えても仕方ないかも、と都は考え、平下に声をかけた。
 「平下さん、すみません、ちょっとPMに電話してもらって良いですか?」
 都は少し早口になってしまったかもしれない。
 「はい、良いですよ。用件は何になりますか?」
 平下は冷静だった。炎上続きでこの上問題が出ることに神経質になっていても良いはずだが、まずはきちんと事態を見極める、と言う基本態度なのかもしれない。すぐに慌ててしまう都とはだいぶ違うなと、都は少し自己卑下の気持ちが頭を擡げる。
 「えっと、IPSecのプリシェアードキーが間違っているかもしれないので、これであっているのか、オフショアセンターの担当者に確認してほしいです。」
 「プリシェアードキー、ですか?」
 都の言った意味がよく理解できなかったようで、平下は聞いてきた。これは電話だけ掛けてもらって、代わってもらった方が良いだろうと思った。
 「はい、客宅ルーターとゲートウェイとでIPSec張るためには、暗号化のアルゴリズムとかのパラメーターが合致した上で、キーが、まあ、パスワードみたいなものなんですけど、それが一致しないといけないんですね。」
 都はそう言って、スクリプトの事前共有鍵のコンフィグの行を、上下1行ずつの余分な行で挟むように、ドラッグして範囲指定した。範囲指定した部分はテキストファイル上で薄い青でマーキングしたように色がつく。都は、スクリプトをただ流し込むだけだったので、あることを確認していないことに気が付いた。事前共有鍵には、その鍵をどのアドレスに対して使用するかの設定も含まれる。そのアドレスは、MPLSプロバイダのインターネットゲートウェイのIPでなくてはならない。さらにこれは、トンネルインターフェイスの設定にある、トンネルの張り先指定と同じでなければならない。範囲指定で色が変わったことで、フォーカス出来た。その一致しなければならないIPは一致していない。それに、鍵違いだけであれば、鍵交換のステータスは、鍵交換開始まで進めていて、そこで止まってしまっているログになっているはずだ。それがそこまで進めていない。これは平下にPMに電話してもらう必要はないかもしれないと、都は少し慌て気味に思った。