ネットワークのゲンバ ~ShowNetを支えるメンバーたちの奮闘ブログ~
2014/06/10
図面とともにあらんことを!:第二面
図面を見やすくする方法。
私の図面など改善の余地はいくらでもあります。人によっては、まるで異なる答えを出す人もいるでしょう。しかし、最初の頃と比較するとゲンバ耐性はつきました。
この 13 年を振り返ってみると、年々積み重ねてきた改良のほとんどは、道具の優劣に関わりの無いようなちょっとしたものであることに気づかされます。見やすさというのは感覚的なものなので、これといった解はありません。しかし、見やすいと感じる人の図面にはパターンがある気がします。その趣旨を理解して実践しつつも、頑なに守ろうとすると壁にぶち当たってとても前に進めなくなるので、妥協することも時には必要です。
ここでは、そのようなちょっとしたポイントをご紹介しましょう。
● 箱の配置をトポロジレイヤで揃えること。
社内ネットワークやご自宅の LAN であっても共通しているのは、それぞれが何らかのトポロジレイヤに属しているということです。エクスターナル、コア、ディストリビューション、アクセス、またそうした一般的な名称が無いまでも、なんとなく同類の匂いがするレイヤがあると思います。それに従って箱達を分類し、縦や横のラインが揃うように配置します。こうすることで、箱同士の関係が一目でわかるようになります。
たかが〝配置〟と思われるかもしれませんが、配置の一貫性が有るのと無いのとでは、見やすさに明らかな差があります。その上、配置には馬鹿にできない難しさがあります。空間は有限で、紙やディスプレイは長方形であるという制約が常に付きまとうからです。これだけはどうにもならないので、適当なところで折り合いをつけます。
例えば典型例として、コアとディストリビューションがそれぞれ二個ずつあったとして、ではアクセスが二十もあるようなトポロジではどうすればいいでしょうか。とても長辺方向に収まりません。そういう場合は、上に口が開いた〝コ〟の字型にするなどの配置上の妥協が必要になります。ShowNet でも大方はこの方式を使っています。
技術書や完成図書は左綴じですから、目線移動を考えるとエクスターナルは左側でも良い気がしますが、やはり上に置くのが一番良いでしょう。また、コアは水平の中央に配置するのが良いようです。ShowNet の図面では、これが数ミリでもずれていると印象が変わりますから、ガチ中央にしています。
上の「うはw」な例を思い出してください。これは戦友が描いたものですからあまり言うと可哀想なのですが、実際のところ、やってはいけない事の殆どをものの見事に詰め込んでくれています。特に、場所に囚われるとロクな事にならないという良い例です。まずはトポロジレイヤという論理を優先し、それに設置場所という物理を合わせるようにしましょう。
● ヒモを曲げないこと。
配置した箱同士は、直線でつなぎます。特にバックボーンは曲げては駄目です。曲がっているヒモは目で自然に追いにくくなりますし、ぱっと見の一体感が見出しにくくなります。逆に言えば、曲げなければならない線が出てきた時は、そもそも箱の配置に問題があると思った方がいいでしょう。
しかし、どうしても曲げなければならない時もあります。そのような例外であっても、できるだけゆるやかに曲げるに止めます。
● ヒモの交差を最小にすること。
冗長構成をとる以上、タスキがけなど一部のヒモ同士が必ず重なり、これを回避しようとすると禅問答に陥ります。とはいえ、できるだけヒモ同士が重なる箇所が最小になるような配置を考える努力は可能です。また、一番重要なヒモから前面に置くようにします。更に、場所から場所へと大きくまたぐようなヒモがあり、それが主経路などの重要なものである場合は、箱を再配置するなどの根本的な見直しをすべきです。
また、ヒモの途中で関係のない箱に重ならないようにします。これは、そこでその箱に接続しているように見えてしまうのを防止するためです。
● 色に統一感とメリハリを与えること。
図面上の色は、見やすさという点でとても重要な要素であるにも関わらず、これを蔑ろにしている図面が多いことに驚きます。色に意味を持たせておくことで、いちいち説明が不要になり、ひと目でそれが何をしているのかがわかるようになりますから、むしろ表現が楽になります。
ヒモはその上に IP アドレス、VLAN 番号、インタフェース名などの文字が来る可能性が高いため、薄い色にとどめます。CMYK で言えば平均 10% 前後で 20% が限界です。これは範囲を表す座布団系の表現も同様です。一方、濃い色は文字や箱などのごく限定的な部分で使うようにすると、メリハリのある見やすいものになります。ただ、こだわり過ぎるのも駄目です。全体を見渡した時、結果的にある色に偏ってしまいバランスが取れていなかったり、重要な情報が埋没してしまっている場合は、別の色を検討します。その辺は仲間の適応力を信用しましょう。
下記は私が使っている主な配色例ですが、これはあくまでも私の各レイヤに対するイメージなので、あなたなりの色を想像してみるのも面白いかもしれません。
● レイヤ 4 ~ 7: 橙色...CGN やセキュリティデバイスなど。黄色は見にくいためオレンジ。
● レイヤ 3: 赤色...ルータの箱の色。一番熱そうだから。また、ShowNet ではこのレイヤが中心要素のため、最も目立つ色で。
● レイヤ 2: 緑色...スイッチの箱の色、VLAN 番号など。スペクトル上、赤と青の中間だから。
● レイヤ 1: 青色...ヒモやパッチ、ラックや部屋などの場所の範囲。パッシブデバイスで一番冷たそうだから。
また、メリハリはアイコンの色だけではありません。無関係なヒモ同士が重なった時、どう処理したら見やすくなるでしょうか。ヒモの周囲を半透明の白などで縁取りして「最前面」に置いておけば、沢山重なった場所であってもバックボーンなど重要なものを埋もれさせません。PowerPoint では、【光彩とぼかし: 色: 白・サイズ 5pt・透明度 30%・ぼかし: 0pt】などのパラメタになります。
同様に、図面上に載せる文字も全て同様の縁取り処理を施しておきます。これも、【文字の光彩とぼかし: 白・サイズ: 5pt・透明度 0%・ぼかし: 0pt】のような設定にします。
● 冗長な情報をできるだけ排除すること。
冗長な情報はただの雑音であり、見やすさの妨げにしかなりません。それを図面に入れる前に、本当に必要か、或いは冗長かを常に考えるようにしましょう。
ループバックアドレスに /32 や /128 と書く必要があるでしょうか。同じネットワークエンジニアがその数字を見た時、それがループバックであることさえ分かれば、サブネットマスクはおろか、どこかで明示してあればネットワークさえ不要です。ShowNet のループバックは 45.0.0.x と 2001:3e8::x ですから、この図の中にある mx480-2 の右下のピンクの丸印〝.7〟は、45.0.0.7/32 と 2001:3e8::7/128 へと展開できます。
では、レイヤ 3 な p2p 接続にアドレスを書き込む場面ではどうでしょうか。ネットワークアドレスさえあれば両足のアドレスは自明ですから、全オクテットを書き込む必要はどこにもありません。例えば図中 mx480-2 と ip88r の横線 p2p には、314・OSPF メトリック 5000 という〝リンク ID〟 が振られています。このリンク ID から各アドレスを求めます。
IPv6 は、そのまま 2001:3e8:1:314::/126 になります。ShowNet では、ループバックの若番のほうが若い足を持つというルールがありますので、mx 側が ::1、ip88 側が ::2 になります。また、VLAN ID もそのまま 314 となります。
IPv4 だけは、空間がとても狭いため少し特殊です。INTEROP は数年前まで 45/8 という巨大なアドレス空間を持っていました。その頃は、今思えばとても信じられないような贅沢な使い方をしていましたが、オクテット境界を使えば十進でハンドリングしやすいため、便宜上 p2p リンクにも /24 に .1 と .2 を振るような時代を長い間過ごしました。
しかし、ポートスキャンが年々活発になってくるにつれ、一リンクあたり (ルータインタフェース数 * 252 個) の arp incomplete が箱に溜まり続けることになります。数百の VLAN のルータインタフェースを下向きに持つルータともなると、数万という通常では有り得ない量の空エントリを持ち続けることとなり、nmap などでじわじわ毒殺される箱が出てきました。IPv4 枯渇という時代背景もあって 45/8 の大部分を返納した結果、一般的な /30 を使うようになりました。
/30 でもリンク ID をオクテット境界で使ってしまうと、充填率が低すぎて今度はこちらが枯渇します。そこで、314 の各桁を XYZ にマップして〝45.0.X.(YZ * 4)/30〟という式で圧縮し、ネットワークアドレス 45.0.3.56/30 を得ます。ここで 4 を掛けているのは /30 が 4 つずつ IP アドレスを食うからです。そうやって、若番の mx のほうが .57、ip88 側は .58 を導く事ができます。
このように、ShowNet では一つの数字に七つの意味をエンコードして図面の S/N 比を稼いでいます。
図面の何処かにこういったデフォルトを明示しておけば、ほとんどの情報は不要になります。このような正規化は、図面にバグが入り込む余地を小さくするばかりか、図面をシンプルなものにします。図面をシンプルにしようとする圧力が、ネットワークそのものを美しくします。
正規化がハンパだとどうバグるのでしょうか、例えばこういうものです。
本来なら、ヒモの太さで GbE や 10G を表現していることは凡例で示していますから、全てのインタフェースに書き込んでいる xg- や ge- は不要なはずです。インタフェース名を回転させている関係で、90 度倒れている〝6〟と〝9〟の見分けがパッと見でつかないことから〝ge-6〟や〝xg-9〟のように上下が識別できるようアルファベットを残していましたが、よく考えるとフォントの工夫次第で回避できることです。そのため、今年はフォントを変更し、インタフェース名からメディアタイプのプリフィックスを廃止しました。