Skip to the content.
この記事には以下ネットワーク基礎知識が書かれています。
- 仮想化機構(仮想化を行う仕組み)とは
- NICチーミング
- リンクアリグケーション(LAGとも呼ばれる)
- STP(Spanning Tree Protocol)
- ルータの冗長化
- URLリライティング

今回もネットワークの基礎をまとめていきます。

■仮想化機構(仮想化を行う仕組み)

・ホストOS型とハイパーバイザ型がある
・ホストOS型は物理サーバのH/W上層でOSが動作し、その上層に仮想化レイヤが存在する方式。ホストOSから見ると単なるアプリケーションが動作している。仮想マシンがH/Wにアクセスするのは仮想レイヤとホストOSを経由する必要がある。
・ハイパーバイザ型は、H/W上層で仮想レイヤが存在する仮想レイヤにはカーネルが動作しており、仮想マシンがH/Wにアクセスする際のオーバーヘッドが少ない。
・わかりやすいアプリだと、ホスト型は、VMware、ハイパーバイザ型はHyper-V。
・最近はコンテナ型もあり。アプリケーションを実行するための領域(ユーザ空間)を複数に分割して利用する方法。ホストOSの上にDocker Engine(例えばDocker(クジラの絵のエンジン))があり、その上にゲストOSなしにアプリケーションが構築できる。

以下イメージ図を見ながらが分かりやすいかも

https://academy.gmocloud.com/vps/20211228/13893
https://cn.teldevice.co.jp/column/10509/



■ライブマイグレーション

・物理サーバの負荷が偏った時に、別サーバへ仮想環境を移行して負荷分散すること
・別サーバとは他トラフィックの影響を受けないように専用のネットワーク回線を構築しておき、負荷が偏った時に移動できるように設計する
・移動後、RARPフレームを送り、L2スイッチのMACアドレステーブルを更新させ、別サーバに移動したことを通知する

ちなみにARPとRARPの違いは、ARP(Address Resolution Protocol)がIPアドレスからMACを調べる仕組みで、RARP(Reverse Address Resolution Protocol)はその逆。ARPは新しい機器がつながった時、ブロードキャストでスイッチの先につながった機器のMACを問い合わせることで、MACとIPのテーブルを更新する仕組み。RARPは現在ほぼ使われていないそう。IPアドレスを持たないと通信できない機器であるにも関わらず IPアドレスの設定ができない(またはIPアドレスの設定が保存できない)機器がある場合に使用されるそう。

イメージしやすいように少し考えてみた。引っ越してきた人(住所=IPアドレスが変わった人)に役所が「あんたはAさんですか?」と聞くのがARP。Aさんが、勝手にある場所に引っ越して、役所に「Aという者ですが、ここの住所教えて」って言うのがRARP。


■サイジング

・冗長化機能によって物理サーバが切り替わった時に性能が劣化しないようにする
・例えば3台のサーバがそれぞれ50~60%稼働していた場合、1台のサーバがダウンしても2台で75~90%リソースを使用してカバーできる


■SNMP(Simple Network Management Protocol)

・ルータ、スイッチ、サーバ等TCP/IPに接続された通信機器に対してネットワーク経由で監視、制御するアプリ
・管理する側のSNMPマネージャとされる側SNMPエージェントに別れて構成され、前者はWindowsサーバ、後者はスイッチ類が対象となる
・CPU使用率、メモリ使用率 インターフェースのリンクアップ、ダウン状態、トラフィック量、MTUやSpeed/duplexの状態も確認可能
・SNMPエージェントがUDP(ポート番号161)を使用して、SNMPマネージャがUDP(ポート番号162)を使用

https://www.infraexpert.com/study/tcpip21.html



■スプレッドブレインシンドローム

・冗長化設計により、メインで動いているプライマリー機が故障した際のバックアップとして用意したセカンダリー機両者が存在するネットワーク構成において、何らかの故障によりセカンダリー機がプライマリー機となり、両号機がプライマリー機となること
・プライマリー機が複数存在してしまう状態でデータ更新が掛かると、データの不整合が発生してしまう恐れがある
・発生時の例:プライマリーとセカンダリー2者間を繋いでいたネットワークが疎通できなくなり、セカンダリ機が「プライマリーとのヘルスチェックが途絶えた時にプライマリー機になる」と設定してある場合
・スプレッドブレインシンドロームにならないように、複数の障害検知方法を設定しておく必要がある



■NICチーミング

・チーミング:サーバ等に搭載した物理NIC(ネットワークアダプタ)を1つの仮想的なNICとして束ねる技術
・効果:耐障害性の強化、使用帯域の向上
・種類:フォールトトレランス、リンクアグリゲーション、ロードバランシング
・フォールトトレランス:物理NICを束ねて1つをプライマリ(稼働)1つをセカンダリ(待機)として使用プライマリの物理NICやケーブルに障害が発生した場合、セカンダリの物理NICで通信を行うようになります
・ロードバランシング:物理NICを束ねて冗長性を持たせるだけでなく、同時に複数の物理NICを使用してトラフィックを負荷分散を行います
・リングアグリケーション:物理NICを束ねて冗長性を持たせるだけでなく、同時に複数の物理NICを使用し帯域幅を増加させる方式です。この方式では論理的に完全に1リンクとなります。その他の方式と同じように、どちらかの物理NICやケーブルに障害が発生しても、もう一方の物理NICで通信を継続できます。(例:1GbpsのNIC×2個で、外から見ると2Gbpsに見えるようにするなど)


■リンクアリグケーション(LAGとも呼ばれる)

・複数本の物理リンクを集約して1本の論理リンク(OSやソフトウェアから見ると1本に見える)にすることで、冗長化とトラフィック分散を実現する仕組み
・グループ内のすべての物理ポートは同一転送速度かつ全二重であることが必要
・スタック接続された複数ハブは1つのスイッチとしてとらえられる
・前述のNICチーミングで一つとカウントされた仮想NICと、スタック接続されたスイッチを繋いだ構成でも、1本の論理リンクと捉えられる



■スパニングツリープロトコル:STP(Spanning Tree Protocol)

・冗長化設計により円環状になったスイッチ構成で、障害発生時のARPによりブロードキャストされると、次のスイッチがフラッティングし、巡り巡って元のスイッチまでフラッティングされループが起きる可能性がある。これを「ブロードキャストストリーム」と呼び、使用可能な帯域幅を大きく消費し、通信できない状態になる
・上記にならないように、リング内のどこかのスイッチで、不要なフラッティングはしないように設定しておくことをSTPと呼ぶ。障害発生時のみポートを有効化することができる。
・上記は、BPDU(Bridge Protocol Data Unit)と呼ばれるフレームによって制御される。STPが有効なスイッチは、定期的にBPDUをマルチキャストして、ツリーの中心とするルートブリッジの選択やポートのブロッキング①を判定する。
・スパニングツリー再計算となり、ツリー完成したことを「コンバージェンス(収束)」と呼び、デフォルトは50秒。
・現在、STPをさらに高速化したRSTP(Rapid Spanning Tree Protocol)が標準化されている
・また、今まではVLAN毎にSTPを構成できなかったところを設定できるようにしたMSTP(Multiple STP)も誕生している



■ルータの冗長化(VRRP(Virtual Router Redundancy Protocol))

・Redundancy:冗長化
・同一サブネット内に存在する複数ルータをグループ化し、仮想的な1台のルータと見せかける
・仮想ルータは、マスタルータとバックアップルータから構成される。マスタは、あたかも仮想IPアドレスと仮想MACを持つルータのようにふるまい、ARPを受信したら、仮想MACを返送する。自分自身の優先度を格納したVRRP広告パケット(*)を定期的に送信し、自身の生存アピールとする。バックアップルータは、仮想ルータとして動作を実施せず、VRRP広告パケットを監視する。広告パケットを一定時間受信しなくなると、障害発生と判定し、次に優先度が高いルータがマスタルータとなる
*VRRP広告:マスタールータの優先度が格納されている



■URLリライティング

・Webアプリケーションがwebサーバと通信する中で、セッションの管理が必要となる。例えば、商品選択・配送先指定・カード決済・それぞれのやり取りが同一人物による操作であることを管理するために、セッションIDを用いる。
・本来HTTPにはセッション管理を行う仕組みはないため、WebアプリがWebサーバにリクエストする際にセッションIDを付与することで、同一クライアントからのリクエストと判定する。
・セッションIDの搬送方法として以下3つある
1.URLリライティング
サーバ→webアプリへ送るHTMLソース内のすべてのURLにセッションIDパラメータを付与する。Cookieが使えない端末もサポートできる利点があるが、他方式に比べて漏れやすい

2.Cookie
サーバ→webアプリへSet-CookieヘッダによりHTTP Cookieを発行する。プログラミングの手間が少ない利点はあるが、リクエストフォージェリ―攻撃1、クロスサイトスクリプティング攻撃2の標的になりやすい

1リンク
2リンク
3.hiddenフィールド
サーバ→webアプリへ送るHTMLソース内にフォームを儲け、hiddenフィールドにセッションIDを埋め込む。3つの中で攻撃を受けにくい。ページ遷移をすべてフォームで記述する必要があり、自然なハイパーリンクの実現にはJaveScriptの使用が必須となる。




今回はここまで


Mainページに戻る