稼働中の商用ネットワークでVRRPの切替検証を実施しちゃった話


ご挨拶

初めまして @moriya-snj です。
この記事は「本番環境でやらかしちゃった人 Advent Calendar 2019 - Qiita」の15日目の記事です。
みなさん盛大にやらかしている様で安心しております。
今回は私が社会人3ヶ月目でやらかした重大事故の記録を包み隠さず暴露するとともに当時フォローしてくださった先輩や上司お陰でなんとかこの業界で生き抜くこと出来ていることの感謝をお伝えすべく、キーボードに手を伸ばしております。

何をしでかしたか

顧客AがIP電話を導入するため、新たにVoIP用ネットワークを構築することとなった。
機器の設置等は別部署が行うため、設置依頼を出し、完了の報告をもらったため、ネットワーク機器のコンフィグなどを流し込み疎通確認などを行うこととなった。

疎通確認が完了し、お次はVRRPの切替確認を行おうとしたが、ここで誤って稼働中の顧客Bのネットワークで作業してしまった。
何故その様なミスを犯したかというと、別顧客向けの同一サービスであったため、IPアドレス管理表が共用でかつ顧客名による絞り込み機能が存在しなかったのである。
当然機器名称の頭に顧客がわかる略称が記載はされていたが、完全にそちらを見落とし、日本語で書かれた説明文を見て判断してしまったのである。
また、想定ではPINGが一瞬NGで帰ってくるはずであったが問題なく疎通し続けていた。
たまたま復帰するタイミングとPINGの間隔が噛み合わなかったのかな?と判断し、何度か切替のための作業を行なってしまった。
これによりネットワーク切断を何回か発生させてしまった。

そのネットワークは前述の通りVoIPネットワークであり数秒のネットワーク断がかなり致命的な環境であった。
その結果顧客Bの業務が一時停止し、損害賠償物の大事件へと発展してしまった。

事件発覚と後処理

顧客から問い合わせを受けた営業チームから私の所属するチームへエスカレーションが来たのはやらかしから5分後くらいであっただろうか。
当時の課長が即座に状況調査をベテランのエンジニアに指示、ふと私が顧客Aのネットワーク検証を行っていることを思い出したのだろう。
「今はなんの確認をしているの?」と聞いてきたため、「VRRPの切替試験をしています。」と返答。
「それだ!すぐに中止しなさい!!!」課長の大声が室内に響き渡った。

その後すぐに状況は収束し、私のやらかしであったことは間違いなかった。
汗がだらだらと流れるもやたらと寒く感じたのは初めての経験である。

その後、課長に個室に呼び出される。
どんな叱責を受けるのか恐くてたまらなかったのを覚えている。
しかし、課長は私に怒鳴りつけることなく淡々と事態収束のための指示を出してくれた。
思い出せる限りの言葉を羅列してみよう。
「既に起きてしまったことをとやかく言っても仕方がない。」
「先方に謝罪しなくてはいけないが、頭を下げるのは俺たち上の人間の仕事だから気にしなくていい。」
「先方への報告のために何故起きてしまったのか?何をすれば防げるのか?をまとめて俺に報告してほしい。」
こんな感じのことを言われたと思う。

当時私の教育担当だったH先輩とともに課長に指示された原因報告と対応策を考える会議を行った。
その時最初に先輩に言われた言葉でだいぶ肩に乗った重圧が下がったのでその言葉も挙げておきたい。
「検証だからって稼働中の商用環境にログインできる環境で独り作業させたのは俺のミスだね。」
「日中帯に作業させちゃったのも不味かったね。」
「こんな感じでキミのミスはなんだったのか?どうしたら防げたか?一緒に考えて行こうか。」
こんなことを言われたと思う。
あぁ、自分一人の責任ではないのかと当時の私が心が救われる気持ちになり、前向きに原因と対策を考えられたのを覚えている。

既に転職してしまい、かつスマホ水没により連絡先も不明になってしまったN課長・H先輩、当時のお二人の言葉のおかげで今もこの業界でなんとかやってこれております。
この場をお借りしてお礼申し上げます。

結論

この事件で私が学んだとこをまとめておきたいと思います。

作業者として

  • ログインしたリモートホストが本当に正しいのかよく確認すること!
    • 環境名とかがプロンプトに出てるはずなのでコマンドを打つ前に確認しましょう
  • 手順はしっかり事前に確認すること!
    • テキストベースでも構わない。できればコマンドなどは作業中コピペで完結する様にしておくと良い
  • 想定する挙動をしなかった場合は直ちに作業を中断し周囲にヘルプを求めること!
    • 報・連・相は大事だよ!

先輩・上司として

  • 後輩・部下の責任は自分の責任。そのことを本人に伝えてあげてください
    • 本人を過剰に責めてはならない。何故なら本人が最も自分を責めているのだから
  • 落ち着いて状況確認と事態収集のための指示出しを
    • やらかした本人はパニックに陥り何をすべきか判断できない状態であることが多いので
  • 事態収集後のケアもしっかり
    • 一緒に予防策を考えるなど、後のケアもしっかりと行ってあげてください
    • 考えるのは本人にさせましょう。自ら考えることで身につくのです

終わりに

やらかし暴露というより先輩・上司に助けられたハートフルな話になってしまいました。
私も最近部下を持つ立場になり、当時のことを思い出しながら彼らに接する様にはしているつもりですが、なかなか難しいですね。
当時の先輩・上司には頭が下がる思いでいっぱいです。

明日は @n_takehata さんによる「rootユーザーのshell設定を変えてしまいサーバーにログインする方法がなくなってしまった話(予定)」です。
既に胃が痛くなってくるタイトルですねw
とても楽しみにしております。

ところで、本当は昨日のうちに記事をまとめて本日の0時丁度に記事を書こうと思っていたんですが、なんと障害が発生し調査・対応で記事を書く余裕がなくこんな時間になってしまいました。
障害っていつ起こるか分からないから恐ろしいですね。
まじ心臓に悪いわー(愚痴