07-14

2022-01-20

07-14

 「あのー。今冗長試験をしているんですがー、メイン側のWANを切った時は、上手くバックアップ側に切り替わったんですけれど、LAN側切った時は、バックアップ側に切り替わらないんですね。」
 「うん。」
 谷山はまず概要だけ喋ったのだろうと思って、都は相槌だけ打った。
 「それでー…、あのー、メイン側の回線はもともとあったもので、まあ、今回、バックアップ回線を新規に開通したんですね。今日そのLAN開通と、メインとの冗長試験を同時にやっているんですが、メインのLANインターフェイスに、デフォルトゲートウェイの冗長プロトコルの設定を追加する設定変更も実施してるんですね。」
 「うん。」
 都はまだ話の途中だと思って、さらに相槌を打った。
 「でー…。それで切り替わらない、ってことありますかね?」
 「な、なんだって?」
 谷山の話はそれで終わりだった。今ひとつ事情が明らかにならないまま話が中途半端に終わったので、都は少しこけそうになるような動作をしながら、不明瞭であることを訴えた。谷山は笑っていた。
 「いや、デフォルトゲートウェイの冗長プロトコルの設定追加したから切り替わらないとか、ちょっと意味がわからないよ…。」
 都は困ったような笑いを浮かべながら言った。
 「すいません…。」
 谷山は恐縮していた。
 「ちょっと見ないとわからないね。専用端末から客宅ルーターに入ってたりする?」
 客宅ルーターにログインしているのであれば、谷山にきちんと説明させるより、状況を自分で確認した方が早いと思い聞いてみた。PMによっては、東京のSEをつけない案件であれば、ルーターにログインせずに、海外オフショアセンターに任せっきりで工事を進める人もいるので、谷山がどっちでやっているかはわからない。もし、谷山がログインしていなければ、ルーターの管理番号などをもらって、都自身でログインして確認すれば良い。
 「あ、入ってます。」
 谷山は自身できちんと確認するやり方を取っていた。
 「ちょっと見せて。」
 都は谷山について行って、谷山の席まで行くことにした。ちょうど自分の席を通り過ぎるので、打ち出したネットワーク図は伏せて机の上に置いた。パンプスを履こうかどうか迷ったが、裸足でいたかったのと、谷山が自身の席へどんどん進んでしまうので、ついて行くしかなかった。
 谷山の席は都の席から島を3つほど離れたところなので、もし日勤帯で人がたくさんいれば、裸足のまま彼の席まで歩いて行くのはかなり恥ずかしかっただろう。今は都の席から谷山の席までの導線上に人はいなかった。谷山の席のさらに向こうには人がいたが、その人からは都の足元までは見えないだろうから、とりあえず構わないことにした。
 谷山が使っている専用端末は隣の席の人と共用で使っているもので、二人の机を渡している形で設えてある。ディスプレイには、ターミナルウィンドウが二つ開いていて、察するにどちらかがメイン、どちらかがバックアップの客宅ルーターだろう。
 「…で、今、メイン側のLAN側インターフェイスの断試験をしているんですが、お客さんから切り替わらない、と言われていまして…。」
 ぼそぼそと谷山は説明したが、それなりに困惑しているようだ。お客さんからの申告だ、ということなので、この冗長試験はお客さんの試験込みでやっているらしい。谷山の説明によれば、メイン回線だけで運用していた拠点に、新規でバックアップ回線を開通したという。そうであれば、バックアップ回線のお客さん試験は、メイン側を一旦切るなり、一時的にバックアップ回線が「メイン」として機能するよう、設定やルーティングを変更して実施するしかない。メイン回線が断になった時に、バックアップ回線で迂回して、遠隔地間データ通信を維持する、ということがバックアップ回線導入の目的のはずなのだから、おそらく、冗長試験にはお客さん試験も盛り込むよう、リクエストがあったのだろう。
 「WANの断の時は切り替わった、って言ってたっけ?」
 都はさっき聞いたばかりの話を念のため再度確認した。
 「はい。で…。今なんですが、メイン客宅ルーターのLANインターフェイスをシャットダウンしているにもかかわらず、BGPの広告が止まってないんですね…。これが原因なのかな、と思っているんですが…。」
谷山はぼそぼそしゃべるのだが、内容は明確に言っていることが多い。職場的にも、年齢的にも都の方が先輩だが、もし先輩後輩逆だったら、たぶん彼を怖い先輩として認識したんじゃないかと都は思った。あまり愛想が良いとは言えないタイプで、ぼそぼそと喋るのだが伝えるべきことはきっちり喋っている。もし都が彼の後輩で、彼に何か教えてもらっている時、彼の言っていることが理解できなかったり、わからなかったりしたら、もう一度彼に質問するのをきっと躊躇してしまうだろう。
 「え?これってLAN側ってダイナミックか何か回っているの?」
 都はちょっと混乱しておかしなことを聞いてしまった。LAN側でダイナミックルーティングが回っていたとしても、客宅ルーターのLANインターフェイスを特権で閉塞したと言っているのだから、その時点でそれは落ちてしまう。LAN側機器とトンネルを張り、そのトンネルでダイナミックルーティングを回していて、トンネルがWAN経由で上がってしまうことを防止する対策が漏れているため、落ちない、とかはあるかもしれないが、そんな特殊なことはやっていないだろう。谷山は基本的に東京でSEを置く案件はやっていないはずなので、そんな特殊な設計がされているとも思えなかった。
 「いえ、LAN側はコネクテッドとスタティックだけですね。」
 そう谷山が言う通りであれば、確かに変だ。
 「じゃあ、止まらないとおかしいね。」
 都はあまり考えずに言った。
 「そうですよね…。なので、デフォルトゲートウェイ冗長プロトコルを設定すると、BGPの広告が止まらないとかいう、バグなんかがあったりするんですかね…。」
 「んー…。これどっちがメイン?」
 確かに、ルーターなどのネットワーク機器がありえない動きをした時、機器のソフトウェアのバグであることはある。しかし、バグを疑う前に、コンフィグの間違いなどが本当にないのか確認する必要はあった。これはバグだろう、と思っていて、コンフィグ間違いや、設計の甘さが原因だったということは良くあることだ。都はバグかどうかについては話を流して、どちらのターミナルウィンドウがメイン側の客宅ルーターなのか聞いた。
 「あ、左側ですね。」
 「うーん。なんだろ。」
 都はちょっと唸りながら、専用端末のマウスを操作して、谷山が指定した方のターミナルウィンドウをクリックし、ログイン状態が保持できているか確認するため、リターンキーを数回叩いた。ホストネームだけの行が数回新たに作られたので、ログイン状態であることはわかった。ホストネームの右端に付く記号から、読み取り専用モードだと言うこともわかる。海外のオフショアセンターで設計、コンフィグをする案件については、東京の人間は、書き込み権限をもらうことは出来ない。トラブルシューティングに有益なコマンドの多くは書き込み権限でないと使えないので、東京にSEを置かない案件で、ややこしいトラブルに当たってしまうと、原因の究明や解決に時間がかかる。逐一海外オフショアセンターへ必要なコマンドの出力ログの取得を依頼し、送ってもらったものを解析、トラブルを緩和するコンフィグなどの対策を考案し、今度は海外オフショアセンターへそのコンフィグの実装などを依頼しなくてはならない。
 「あ、どうぞ、座ってください。」
 都が中腰のまま、専用端末を操作し始めたので、谷山は気を遣って、椅子を勧めてくれた。
 「あ、大丈夫だよ、ありがとう。」
 都は椅子に座ってしまうと、そのトラブルが長くなることを前提としている気がしていて、辞退しようとした。
 「いえいえ、立たせたまま見てもらうなんて、申し訳ないですので…。」
 谷山はもう一度勧めてきた。彼はおそらくは単に気遣いで言っているだけなのだろうけど、都は、立ったまま適当に見ていないで、腰を据えてちゃんと見てくれと、プレッシャーを掛けられているような気がした。
 「そーお。じゃあ、座っちゃうよ。」
 日本人特有の遠慮の応酬になると面倒臭いので、都はもう座ってしまうことにした。それに、土足で歩くことになっている床に裸足のまま立っていると、なんだか汚いところにずっと裸足をつけてるような気がして落ち着かなくなってきた、と言う勝手な事情もあった。砂浜にだったら、1時間でも好んで立っているだろうに。
椅子の高さは背の大きい谷山に合わせて低くなっていて、背の小さい都にはちょっと低過ぎだ。ひとまず裸足を床から離せればいいやと思って、高さを調整するレーバーには触らず、椅子の脚に足を乗せて座った。
 ターミナルウィンドウでメインのルーターに保存されているコンフィグを見る。本当は稼働中のコンフィグを見たいのだが、それを見るには書き込み権限が必要なので、都たちには出来ない。デフォルトの24行づつ表示のままで見ているので、一応上からなめて行く。BGPに集約設定でも入っていて、網内に流れているルートをタネにしてしまい、広告を吐き続きているのかな、と思ったが、BGPの広告設定は、ネットワークをアドレス、サブネットマスクで指定して、合致したもののみ広告する設定になっている。集約設定も他のプロトコルからの再配送設定もなかった。広告設定は3ルートのみ。ダイナミックルーティングは、BGP以外には設定されていない。
 ひとまず、ここでメモリ内のコンフィグを見るのをやめて、一旦、インターフェイスの説明文一覧を表示するコマンドを叩いた。WAN側と思われる記述のインターフェイスは上がっていて、LANインターフェイスだとわかる記述のインターフェイスは、特権的に閉塞していることが表示されていた。一応、全インターフェイスにアサインされているIPアドレス一覧を表示するコマンドも叩いた。WAN側インターフェイスのIPアドレスと、LANインターフェイスのIPアドレスとはアドレス体系が全く異なっていたので、都はコンフィグからわかる、BGPのネイバーのIPと第3オクテットまで同じ方をWANインターフェイスだと認識して良かった。説明文とも一致している。
 次に、今現在BGPで実際に広告されているルートを確認する。BGPの状態を確認するコマンドを叩くと、BGPは上がっている。実際の広告ルートを調べると、2つほどルートが広告されている。一つはアドレス体系から、MPLSサービスの保守監視用として、プロバイダ側で客宅ルーターのループバックインターフェイスにアサインしているものだ。もう一つ、24ビットマスクのルートが広告されている。これがおそらくこの客宅ルーターのLANネットワークだろう。LAN側インターフェイスを落としているのであれば、そのループバックインターフェイスのIPのみ広告されているだけのはずだ。
 都はもう一度、保存されたコンフィグ情報を表示するコマンドを叩いた。もちろん、今現在、OSが走らせているコンフィグが同じものとは限らない。何かコンフィグ変更が加えられていて、セーブされていなければ、その見えない違いが影響していることも懸念されるが、まずは保存されているコンフィグと同じもので動いていると想定して、確認をする。
 都はスタティックルートのところを見てみた。BGPで広告指定しているものと同じネットワークアドレス、サブネットマスクのスタティックルートがある。そして原因と思わしきものはすぐに見つかった。
 「あー。たぶん、これかなー。」
 都は念のため、広告してしまっている24ビットマスクのルートが、この客宅ルーター上のルーティングテーブルにどうやって載っているかを確認するコマンドを叩いた。ルーティングテーブルにはネットワークアドレス、サブネットマスクが一致するルートがあった。本来、LANインターフェイスを閉塞していれば、消えていなければならないものだ。コマンドの出力には、スタティックで知っているとあり、ネクストホップのIPの表示もあるが、そのネクストホップはどのインターフェイスの先にあるか、という情報はなかった。次に、そのネクストホップIPがルーティングテーブル上でどうなっているかを確認するコマンドを叩いた。そのネクストホップIPへのルートは、そのIPアドレスを包含するもっと大きなサブネットになっていて、それはBGPで知っていることになっていた。