ZIPを展開したら、まず index.html を開きます。そこから topology.yaml のインポート、事前チェック、合否判定へ進みます。
直る目処は見えた、でも、その手前に置くものがある
新オフィス移転後の外線通話障害。ここまで、内線は通っているのに外線着信は鳴らず、外線発信は信号だけが両向き通って音声は片側だけ落ちる、という分かれ方を観測してきた。続報の手前で並べた材料はこうだ。境界ルータから外向けに出ていく通話の中身、つまりお客様側へ届く案内の中に、社内側でしか有効ではない住所が、そのまま書き残されている。一方で、お客様側から戻ってくる音声を社内側のどの相手へ届ければよいかの対応付けが、境界ルータの変換表には残っていない。
「信号は通る、声は片側だけ落ちる、というずれ方は、境界ルータが通話の中身を覗かないまま外へ流しているところで起きている可能性が高い」と続報には書いた。可能性が高い、までは言える。いつ、誰の判断で、その覗かない状態になっていたかは、まだ言えない。
その状態で、今日のあなたの手元に来ているのは、修正を入れていい合図ではない。修正の手前でそろえるべき条件がそろっているか、を確かめる役回りだ。隣で同じ続報を見直しているのが、瀬戸。研修中の運用1チーム1年目だ。斜め向かいでは、新人研修担当の氷室が、続報の紙を片手にこちらを見ている。


「原因が見えた」と「直していい」は、別の紙に書いてある
「中身に内側の住所が残ってるって続報で書いたじゃないですか。じゃあもう、境界ルータに『中身を覗いて住所を書き換える』機能を入れちゃっていいですよね? 直せば直るんだから」と瀬戸が言う。
氷室の赤ペンが、机を一度叩く。
「ちょっと、今の本気で言ってる? 続報のどこに『今すぐ変えてよい』って書いたの。書いたのは、『可能性が高い』と『次に決めること』。決めることを、決めずに飛ばして手だけ動かそうとしてるの、気づいてる?」
「あ……でも、続報で氷室さんも『この方向で確度は高い』って認めて——」
「認めたのは観測の方向よ。観測の方向が見えたら、次に並べるのは別の紙。変える場所が、いま観測で見えている分かれ方と本当に一致しているか。変えたあとに戻らなかったとき、どう戻すか。戻る基準は何で、どこまで戻ったら『戻った』と言うのか。利用者側に何を返すと、相手は通常運用へ戻していいと判断できるのか。この四つを並べる紙よ。それを書かずに『直していいですよね?』って、口で先に直しちゃってるの、わかる?」
瀬戸の肩が、わずかに下がる。
「えっと……原因が見えた、と、変えていい、は別の紙、で。変えていい、の紙には、変える場所、戻し方、戻る基準、利用者への合図、の四つが要る、ってことですか?」
「その並びを、欄に書きなさい」
四つの欄を、まず手元の紙に立てる。氷室に渡す前の自分用の枠だ。
- 変える場所は、境界ルータの、外向け通話の中身を扱う部分だけ。社内側の他のサービスや、内線側の通話に触らない範囲に絞る。
- 戻し方は、入れた行を一行だけ取り消す形にする。設定全体を巻き戻すのではなく、入れた変更だけを取り消せる形でないと、入れる前の状態に戻れない。
- 戻る基準は、外線着信が一回鳴るかどうかだけでは足りない。続報で読み取ったずれが、両側でほどけているかを並べないと、戻ったとは言えない。
- 利用者への合図は、携帯転送をやめて通常運用へ戻していいと相手が判断できる材料。こちらの内部観測の細部ではない。
三つのやり方が並ぶ、最初に取る一行はどれか
直し方は一つではない、というのが氷室の最初の説明だった。手元には三つのやり方が並んでいる。
ひとつめは、境界ルータに「外へ出ていく通話の中身も覗いて、社内側の住所が書かれていたら外向けの住所へ書き換える」役を、最小の一行で持たせるやり方。境界ルータ側の設定だけで完結する。今日この瞬間に入れて、ダメだったら一行で戻せる。
ふたつめは、外向け通話の通り道に、新しい中継役の機器を新しく入れるやり方。社内と外部の境目で、通話の中身の出入りをすべてそこに集約する。直し方としては筋がよく、長く運用するには有力な形だが、機器の選定、配線、運用の引き取り先まで含めて、今日のうちに動かせる話ではない。
みっつめは、社内の電話機側に、外向けの住所を自分で覚えにいく仕組みを持たせるやり方。境界ルータ側ではなく端末側で解く。これも筋はあるが、電話機の機種や事業者側の対応状況に依存して、今日の影響を今日のうちに止めるための一手としては動きが重い。
「全部直しちゃえばいいじゃないですか」と瀬戸。
「全部直すって、何時間ある話の前提で言ってるの。今、営業部の急ぎ案件が携帯転送で回っている、っていう紙、いま目の前にあるでしょ。長期で見るべき形と、今日の影響を止める一手は、別の欄に分けるの。長期の形は、復旧後に残す紙の中で、検討対象として並べておけばいい。今日入れる一手は、観測で見えている分かれ方を、入れた瞬間にほどける範囲に絞る。範囲を絞れない一手は、ダメだったとき何が原因で戻らなかったか、本人にも分からなくなるの」
「つまり、今日入れるのは、観測の分かれ方と一対一で対応していて、ダメだったら一行で戻せる、いちばん近いところに当てる一手、ですか? 長期の形の議論は、報告書の『記録へ戻す事項』に置いて、別の紙で動かす、と」
「『先に並べてから触る』の順番、腑に落ちたわね」
今日の手元に当てるのは、ひとつめ。境界ルータの中身を覗く役を、最小の一行で立ち上げる選択だ。ふたつめとみっつめは、報告書の『記録へ戻す事項』のところに、恒久的な形の候補として残す。今日のうちに決め切る話にしない。
入れる前の紙を、入れたあと並べる用に持っておく
承認は運用リーダーに通している。今日の影響を今日のうちに止めるためのいちばん近い一手で、ダメだったら入れた行だけを一行で取り消せる、戻し条件は5分以内に外線着信と双方向音声、利用者側の確認が戻らなかった場合、という線で通っている。
「直す前に、念のため、入れる前の境界ルータの状態を、紙で残しておきます」とあなたが言う。
氷室がうなずく。「直したあと、何が変わったかを並べられるようにしておかないと、復旧確認の紙のところで、何と比べた『戻った』なのかが書けないから。それと、ダメだったとき、入れた瞬間に出てきた挙動と、入れる前の挙動と、何がどう違うかが言えないと、戻し判断も付かない」
入れる前の境界ルータの状態は、こうだ。社内側の住所を外側の住所に置き換える、いちばん大枠の役は入っている。ただし、外へ出ていく通話の中身まで覗いて、中身に書かれた社内側の住所を外側へ書き換える役は、入っていない。続報のときに見た「中身に内側の住所が残っている」状態は、ここから来ていた。
ip nat inside source list 1 pool POOL overload
!
! ip nat service sip udp port 5060 (not configured)
下の行が、入っていなかった行だ。入れるのは、この一行だけ。
configure terminal
ip nat service sip udp port 5060
end
戻すときの一行も、同時に手元のメモへ書いておく。
configure terminal
no ip nat service sip udp port 5060
end
「電話のシステム全部、いったん再起動しちゃえば早いんじゃないですか? それで戻らなかったら、入れる、で」と瀬戸が言いかける。
氷室の赤ペンが、もう一度机を叩く。
「ちょっと、いまの飛ばし方は観測のどこにある? 内線が通っている、という観測がいま手元にある、その紙が目の前にあるでしょ。再起動を先にかぶせたら、内線可・外線着信不可・外線発信片通話、っていう分かれ方が、消えるの。再起動後に状態が同じだったとしても、再起動でいったん消えたものが、もう一度同じ並びで戻ってきただけなのか、まだ何か残っているのかが、何の確認をしても分からなくなる。手元の分かれ方は、最後まで生かしたまま、入れる行だけを当てるの」
「えっと、観測で見えている分かれ方は、変える前に潰さない。変えるのは、その分かれ方と対応している一行だけ、ですか?」
「言い直せたなら、続報はそこで閉じていい」
入れた後、戻ったと言うために並べる五つの確認
設定を入れたあと、外線着信を一回かけてもらう。営業部側の電話が、確かに鳴る。発信もしてもらう。先方に出てもらって、こちらの声が届く、向こうの声もこちらに届く、両方が成立する。
ここで止めるな、と氷室の赤ペンは言う。


「鳴ったから戻った、にしないで。続報で書いた『信号は通って音声だけ片側に落ちている』って分かれ方を、両側でほどいたって言える紙を、ちゃんと並べてくれる?」
並べる紙は、五つに分かれる。
ひとつめは、境界ルータの設定。入れる前は外向けの通話の中身を覗く役が入っていなかった。入れた後は、その役が一行入っている。差分は一行だけだから、戻すときも一行で済む。これが、入れた変更そのものの記録だ。
ふたつめは、境界ルータの変換表。続報の段階では、通話の信号の往復は変換表に乗っていたが、声を運ぶ通信のための行が、変換表に入っていなかった。入れた後で同じ表を見ると、信号の往復と、声を運ぶ通信の両方が並んで載っている。お客様側から戻ってくる声を、社内のどの電話へ届ければよいかの対応付けが、表の上で初めて成立している。
show ip nat translations | include 5060|RTP
みっつめは、外へ出ていく通話の中身そのものだ。続報のときは、中身の中に社内側の住所が書かれたまま外へ出ていた。入れた後、同じ場所を見ると、中身に書かれているのは外側の住所に書き換わっている。お客様側のサーバが、その住所宛に声を返してくれば、外側の住所のところで境界ルータが受け取り、変換表に従って社内の電話まで運ぶ。続報で書いた「中身に内側の住所が書かれたまま外へ出ている」という状態が、両側でほどけているのは、この三つめの紙で初めて言える。
よっつめは、外線着信そのもの。お客様側からのかけ直しを一回もらって、営業部の電話が鳴り、出て、こちらの声、向こうの声、両方が往復する。これが、利用者の手元で「戻った」と最初に感じる動きだ。
いつつめは、利用者側の確認。営業部・顧客接点窓口へ、外線着信と外線発信の双方向音声が戻ったかをチャットで聞く。返事を待つ。携帯転送をやめて通常運用へ戻していい、と相手が判断したら、その合図をもらうところまでが、利用者側にとっての「戻った」だ。
五つそろって、初めて「戻った」が紙に書ける。一つでも欠けたら、欠けているところを別の紙へ書き出して、戻し条件の5分が来るまでに判断する。
「鳴ったから戻った、で出しちゃダメな理由って、結局、利用者がまだ携帯転送を続けてるかもしれないから、ですよね?」と瀬戸。
「だけじゃない」と氷室。「中身が書き換わってない状態で、たまたま一発目だけ通ることもある。鳴った、で終わらせると、二発目で同じ落ち方が出てきたとき、入れた一行のせいで起きたのか、入れる前から残っていた別の問題なのか、区別できなくなるの。五つそろうまでは、戻った、って書かない。これ、報告書の検証結果のところで、後で利く話よ」
「つまり、ひとつでも欠けたまま『戻った』を出すと、後で別の障害が来たときに、今日の修正がどこまで効いていたかの紙が、後ろから消えていく、ってことですか?」
「事実と解釈を、ようやく別の欄に置けたわね」
五つ並んだのを確認したあと、顧客接点窓口へは、短く返す。
新オフィス移転後の外線通話は、外線着信と双方向音声の復旧を社内側で確認しました。境界ルータ側で必要な変更を行っています。携帯転送を継続いただいている運用は、通常運用へ戻していただいて差し支えありません。残り、お気づきの不具合があればご連絡ください。
復旧時刻は、五つの確認がそろった時点を書く。
報告書の側に残すのは、書ける範囲と、書けない範囲の両方
復旧確認が紙に並んだあと、氷室に渡す主成果物は、報告書のほうだ。営業部・顧客接点向けの完了共有は、短く返したところで終わっている。氷室の手元には、もう一段別の整理が要る。新人研修担当として運用1チームに常駐しているが、本職は設計課のシニア。今日の一件を、次回以降の対応で短く扱えるようにするには、どこまでが今日言えて、どこからが今日は言えないかを、混ぜずに残しておかないといけない。
報告書の側で並べるのは、六つに分かれる。
ひとつめは、復旧した事実。新オフィス移転後の外線着信不可・外線発信片通話を、境界ルータの変更一行で復旧確認まで進めた。設定、変換表、中身の書き換わり、外線着信、利用者確認の五つで戻ったと言える、ということ。
ふたつめは、原因として言える範囲。境界ルータが、外へ出ていく通話の中身を覗いて社内側の住所を外側へ書き換える役を持っていなかった。それを持たせる行が、入っていなかった範囲までは、観測で言える。
みっつめは、まだ言えない範囲。その行が、いつ、誰の判断で、どんな経緯で入っていない状態になっていたか。新オフィス移転前の設定と、移転後の設定の、どの段で外れたか。これは、今日の手元の観測からは言えない。変更履歴に立ち戻って確認する必要があり、今日の報告書の中で原因者として誰かを名指しできるところまでは届いていない。
「『移転作業のとき、誰かが消したんじゃないですかね』って、いちおう書いといた方が、後で原因者を追いやすくなりませんか?」と瀬戸。
氷室の赤ペンが、机を二度叩く。
「ちょっと待って。観測の向きどこ? 推測を、推測のまま書類に残したら、その文字がひとり歩きするの。後から変更履歴を確認した人が、その紙を先に読んでいたら、無実の作業者を最初から疑う前提で記録を読み始めるのよ。書いていいのは、観測で言える範囲だけ。言えない範囲は『未確認』の欄に置いて、確認する手段と、確認の担当を、同じ紙に書き出して残す。推測の名前を、確認前の紙に書かない」
「えっと……まだ言えない範囲は、推測の名前で埋めない。代わりに、確認する手段と担当を残す、ですか?」
「その並びを、欄に書きなさい」
よっつめは、実施した修正。境界ルータに、外向けの通話の中身を覗く役を、最小の一行で持たせた。戻すときの一行と、戻し条件の5分以内の判断、運用リーダーの承認、までを併せて記録する。
いつつめは、検証結果。設定、変換表、中身の書き換わり、外線着信、利用者確認、の五つがすべて並んだことを、復旧時刻と一緒に残す。
むっつめは、記録へ戻す事項。今日入れた一行の役は、機器のメーカーやコードによっては、特定の場面で別の不具合を起こす既知の話がある。今日の影響を止めるには有効だが、長く運用に残すかどうかは、別の議論として置く。今日の修正で十分か、外向け通話の通り道に新しい中継役の機器を入れて集約するか、社内の電話機側に外向けの住所を覚えにいく仕組みを持たせるか。この三つの並びと、それぞれの利点と注意点を、設計議論の俎上に乗せる紙へ送る。さらに、新オフィスの拠点設定台帳には、外向け通話の中身を扱う役の有無を、今後の確認項目として常設で載せておく。次に同じ並びの障害が来たとき、最初に開く紙としてここを使えるように、というのが、今日の一件で残せる最初の短縮材料だ。
「ぜんぶ直してから、書類は『直りました』だけでいいんじゃないですか? 余計なこと書くと、長くなるし」と瀬戸。
「それ、観測のどっち側からの話? 『直りました』だけで終わらせたら、次に同じ並びの障害が来たとき、今日の紙を見た人は何の手がかりもないところから、また同じ三日を使うの。今日の紙の一番の値打ちは、『直りました』じゃなくて、『直ったあとに、何を未確認のまま残したか』『どこを次に短縮材料として使えるか』『恒久的な形の候補を、いつ、誰が、どの順で議論する予定か』のところよ。書類の長さじゃなくて、次の三日を短くする部品が入っているかを見るの」
「つまり、報告書は、直った事実だけじゃなくて、まだ言えない範囲と、次の議論へ送るものと、台帳に常設で残す確認項目を、同じ紙の中で分けて書いておく場所、ってことですか?」
「『先に並べてから触る』の順番、腑に落ちたわね」
直したから終わり、ではなく、直し終えてから始まる紙がある
机の上に、五つの紙が並ぶ。境界ルータの設定差分、変換表の前後、外向け通話の中身の前後、外線着信の確認、利用者側の通常運用復帰。
その横に、もう一枚、六つに分かれた報告書の枠が立っている。復旧した事実、原因として言える範囲、まだ言えない範囲、実施した修正、検証結果、記録へ戻す事項。
「結局、直すことより、直し終えてから紙に残すことのほうが、量、多くないですか?」と瀬戸が言う。
「量、ね」と氷室。「直すのは、観測の分かれ方と一対一の一行で済んだ。分かれ方が見えるところまで持っていけたから、当てる場所が一行で済んだの。逆に、観測の段階で並べきれていなかったら、今日の一行はもっと太い設定で塗りつぶす形になっていた可能性もある。直す側の手数が短いほど、直し終わったあとに残す紙が、後の三日を短くする部品として、ちゃんと届くようになる。直しの手数と、残しの手数を、足して見るの」
「直す手数と、残す手数を足してから、今日のやり方が短いか長いかを判断する、ってことですか?」
「言い直せたなら、続報はそこで閉じていい。報告書、書ける範囲は今日の紙で書き終えて、未確認の欄に確認手段と担当を入れたら、出して」
外線は、戻った。境界ルータの中身を覗く役は、最小の一行で立ち上がり、戻すなら一行で取り消せる状態にしてある。変換表には、信号と声の両方の対応付けが、初めて並んで載った。外へ出ていく通話の中身は、社内側の住所ではなく、外側の住所が書かれた状態で送り出されている。営業部・顧客接点窓口の通常運用は、携帯転送を解いて元へ戻っている。
そして、今日のいちばん大事な紙は、報告書のほうに残る。書ける範囲を書いた上で、書けない範囲を、推測の名前で埋めずに残しておくこと。今日の修正は今日の影響を止めるには十分だが、長く運用に残す形は、別の議論へ送ること。今後同じ並びの障害が来たとき、最初に開く紙として、新オフィスの拠点設定台帳のどこを更新するか、までを書き出しておくこと。
直し終えてから始まる紙がある、というのは、たぶん、今日の一件で、いちばん最後まで残る一行だ。