ネットワークを考えるときに考えること(4)
機能要件を考える
続きです。下に書いてあるのは機能要件の話なのか? といわれると微妙ではありますが…。アーキテクチャ検討の観点とかそういう方向だと思ってください。
境界と接続方式
管理ポリシの異なるドメインが重なる(相互接続する)ところはすべて「境界」です。例えば、システム間、セグメント間、セキュリティゾーン間…など。
- ポリシ
- 設計上どういった方式、方針でどのように接続するのか。
- 管理上の境界点はどこか。誰が何をどこまで管理するのか。
- 境界点で何を(何のためにどんな情報を)やりとりするのか。
- 物理接続方式
- メディアやコネクタ形状
- 冗長化プロトコル・冗長化方式
- 管理
- 難しいところですね…。システム間(管理単位)境界というのもありますが、技術担当者境界(ネットワーク担当者が何をどこまで見るのか)なんて話もあります。
複数の、管理主体が違うもの(システム)同士を接続するケースでは、IPアドレス(セグメント)の共有(L2ならさらにVLAN IDの共有)など、共有するものが相互に一意になる必要があり、また共有リソースをどういった方針で管理するかについても検討する必要があります。これも極力最初にやる必要がありますね…。
時間変化・時間的前後関係
通信は時間軸シーケンシャルに行われます。ネットワークシステムにおける「変化」は時間に沿って発生します。したがって時間軸に沿って変動するモノ、シーケンス、手順、フェーズなどを検討しておく必要があります。
共有/占有, 分離/結合
リソースやセグメントの分割、L3/L2マッピングの話は、何をどこまで共有するか・占有するか、という話でもあります。求められる通信帯域やセキュリティ的な観点に応じて共有・分散の方針を決めていく必要があります。
- リソース観点での共有・占有: 回線や帯域の共有・専有
- VLANを使うと言うことはひとつの物理リンクを複数のセグメントで共有するということでもあります。
- LAGなど物理構成上の点を加味した上でどのリンクでどの程度の「幅」「太さ」を用意していくかを検討します。
- リソースをどのようにコントロールするかは、リソースの量及び重要度によって決定されます。
- セキュリティやポリシ分離としての共有・専有
- サービス上の分離: システムごとの独立性・顧客やユーザごとの独立性、マルチテナントサービスなど。
- ポリシ上の分離: 重要度やセキュリティ上の要件、アクセス箇所の限定や分離、管理するデータの重要度や秘匿性に応じたアクセス権限・アクセスパスの制限など。
- ネットワークではL2セグメントを分ける + セグメント間の通信を制限する、というのが基本的なポリシの分離方法になります。(L2セグメントを分けることで、必ずL3機器を経由しなければ通信ができない状態になる・直接通信ができなくなる)
- セグメント分割(L2)だけでなく、VR/VRFなどをつかったL3での論理構成分離などを行うことができます。
- ひとつのデバイス(デバイスの計算機処理能力もまたリソースです。VLANやVR/VRFなどの仮想化機能を使用して、何をどこまで共有・専有させるかを検討します。
集中/分散, 統合/分割
上記の共有/占有とも関連して。共有するというのは複数の要素がひとつに集中するということでもあります。集中・分散は通常トレードオフの関係になります。必要な機能・コスト・サービスレベルに合わせてどの程度のバランスにするかを検討する必要があります。
- 集中
- コンポーネント数の削減
- 機器コストの削減: UTMの導入など、従来複数の機器で行っていた機能をひとつの機器で実現する、VR/VRF/VLANなど複数の論理構成要素をひとつの物理機器で実現する。
- 管理コストの削減: ひとつの機器で複数の要素を一括管理させることで管理方法をシンプルにする。物理的な構成要素を減らしてネットワーク構造をシンプルにする。
- 影響範囲の拡大
- 障害やキャパシティ管理など、ひとつのポイントで発生する影響が広範囲に広がる。
- 拡張性とキャパシティ管理
- 原則スケールアップ型になる。リソース上限に達したときの拡張法が難しい、あるいはスケールアップ時の初期コストが大きくなる可能性がある。
- デバイスのCPU/メモリや設定可能な各種リソースの上限値などに注意しつつキャパシティ管理やリソース管理が必要。
- コンポーネント数の削減
- 分散
- 複雑化
- 管理・制御ポイントの数が大きくなるに従って、管理コストや環境そのものの複雑度の上昇が発生する。
- 影響範囲の縮小
- 障害やキャパシティ管理など、ひとつのポイントで発生する影響範囲が限定される。
- 拡張性
- 原則スケールアウト型になる。ただし、拡張可能な構成や拡張方針を定義しておかなければ、拡張に伴って環境の複雑度が増大し、管理や問題の識別・キャパシティ管理のためのコストが跳ね上がる可能性がある。(ここで言う「複雑度」は組み合わせによって発生するものなので、非線形…というか指数関数的にあがる、と思って良い)
- 分酸性を確保するための仕組み(動的経路制御やそのためのリソース)などに注意しつつキャパシティ管理やリソース管理が必要。
- 複雑化
どちらにもメリット・デメリットがあります。理想的なのは物理的には分散・スケールアウトさせつつ論理(管理・制御)的には集中させられることです。そのためのプロトコルやネットワーク構成方法は、使う機器やプロトコルなどに応じていろいろ選択肢があります。システムとして求められているサービスレベルや拡張性、運用管理の方針などに合わせて検討します。
次回
求められている通信が実現できるようになったら、求められている質とか量とかが満たせているかという話を見ます。そんなわけで次は非機能要件の話。