ネスぺ対策として、仮想ネットワーク技術についてまとめました。
自分の試験前の見直し用ですので、間違いがあったらご指摘ください。
目次
仮想ネットワーク技術とは
従来ネットワーク構築するのに、スイッチやルータなどのネットワーク機器に対して、ネットワーク管理者が設定を行う必要があった。
これらのネットワーク機器の設定をソフトウェアで制御し、動的にネットワーク構築が行えるようにしたのがSDN(Software Defined Network)技術。
また、ネットワーク機器自体を仮想マシン上のソフトウェアとして提供するNFV(Network Functions Virtualization)という考え方が出てきており、SDN+NFVによってネットワーク全体をソフトウェアで構築できるようになる。
SDNの方式としては、大きく以下の3パターンある。
- ホップバイホップ方式
- ネットワーク仮想化技術(OpenFlowなど)対応のスイッチを接続して仮想ネットワークを構築する方式。
- ネットワーク仮想化技術対応のスイッチは高いので、コスト高。
- オーバーレイ方式
- ネットワーク仮想化技術対応のスイッチ間でIPパケットをカプセル化(VXLAN技術などで実現)してトンネリングさせる方式。
- ネットワーク仮想化技術対応のスイッチのみでネットワーク構築が難しいとき、採用される。
- ハイブリット方式
- ホップバイホップ方式とオーバレイ方式のハイブリット方式。
以下では、ネットワーク仮想化に関連する以下の内容についてまとめる。
- SDN
- OpenFlow
- NFV
- VXLAN
また、平成29年午後2の問1でOpen Flowに関する問題が出題されたため、補足にイメージをまとめた。
SDN
SDNとは?
SDN(Software Defined Network)とは、ネットワーク機器をソフトウェアにより動的に設定する技術。
Control PlaneとData Planeで構成され、Control PlaneにあるSDNコントローラがData Planeにあるネットワーク機器に対して、どのように転送するか制御を行い、各ネットワーク機器はその制御に従って、データ転送を行う。
参考:
特徴と注意事項
【特徴】
- SDNはアプリケーション層、コントロール層、インフラストラクチャ層の3層で構成される。
- アプリケーション層:
コントロール層にあるSDN制御ソフトウェアにAPI(Northbound API)で指示。 - コントロール層:
インフラストラクチャ層のネットワーク機器の違いを吸収して、アプリケーション層にAPIを提供。
インフラストラクチャ層のネットワーク機器にはOpenFlowなどのプロトコル(Southband API)で指示。 - インフラストラクチャ層:
Firewallやルータ、スイッチなどのネットワーク機器がOpenFlowなどのプロトコルで制御される。
【注意事項】
- RFC化されていないため、仮想化対応のネットワーク機器もベンダによって仕様が異なるところがある。
OpenFlow
OpenFlowとは?
SDNを実現するための技術の1つであり、ネットワーク機器を集中的に管理するための標準規格。
参考:
特徴と注意事項
【特徴】
- SDNの3層アーキテクチャ内で、コントロール層とインフラストラクチャ層間のSouthbandAPIとして、OpenFlowが利用される。
- MACアドレスやVLANタグ、IPアドレス、ポート番号などの特徴とそれに対してのアクションを規定した情報をフローとして扱い、OpenFlowコントローラによって各ネットワーク機器に転送される。
【注意事項】
- OpenFlowの利点および欠点は以下にまとめられているので参考。
動作原理
OpenFlowはSDN技術推進を行う非営利団体ONF(Open Networking Foundation)によって標準化がすすめられている。
動作原理は以下のサイト参照。
NFV
NFVとは?
NFV(Network Functions Virtualization)とは、ネットワーク機器を仮想マシンのソフトウェアとして動作させる考え方。
ルータ、スイッチ、ADC、Firewallなどのネットワーク機器を代替させることで、設備投資などのコスト低減が可能になる。
参考:
VXLAN
VXLANとは?
RFC7348で標準化されたL2パケットをカプセル化してL3レイヤで送る技術。
カプセル化には、UDPとVXLANヘッダによって行われる。
VXLANヘッダには、24ビットのVNI(VXLAN Network Identifier)があり、VLANの12ビットよりも多くL2を分割できるうえ、L3越えが可能。
詳しくは以下を参考:
補足1 Open Flowの通信(平成29年午後II問1参照)
平成29年午後IIの問1でOpen Flowの問題が出題された。パケットの通信イメージを得るのにとても良い問題だったので、以下で本問を例にOpen Flowの通信イメージをまとめる。
Open Flowは上記のOpenFlowの章でも記述したが、IPアドレスやMACアドレス、VLANをフローという形でまとめいる。Open Flowで制御されるネットワーク機器はコントローラからフローによるパケット識別条件と条件にマッチしたときのActionをまとめたフローテーブルで制御される。
平成29年午後IIの問1ではフローをMF(Match Field)と呼び、MFとActionを以下のように説明している。
引用元: 平成29年度 秋期 ネットワークスペシャリスト試験 午後II
- MF(Match Field)はパケット識別条件に使用するパラメータ
- Actionはパケット識別条件にマッチしたときに行われる動作
フローテーブルには1つのパケット識別条件に対して複数Actionを指定することができる。
コントローラとネットワーク機器との間では、いくつかの種類のパケットを通信している。平成29年午後IIの問1では、例として3つの通信メッセージが記載されている。
引用元:平成29年度 秋期 ネットワークスペシャリスト試験 午後II
- OFS(スイッチ)はフローテーブルが登録されたパケットを受信したら、その旨をOFC(コントローラ)にPacket-Inメッセージで通知する。
フローテーブルに登録されていなかったら、パケットを削除する(事前設定によってはOFCへPacket-Inメッセージを送信する)。 - OFCはPacket-Inメッセージを受信したら、OFSでチェックを行い問題なければ(おそらく?)、Packet-OutメッセージをOFSへ送信する。
- OFSはPacket-Outメッセージを受信したら、フローテーブルに従い、パケットを送信する。
- 送信させたいパケットは事前に、OFCからFlow-ModメッセージでOFSのフローテーブルを更新させておく必要がある。
平成29年午後IIの問1では以下のように、OFS1⇒RT-1(青星)とOFS1⇒新FW(赤星)へ送信するためのフローテーブルが記載されていた。
引用元:平成29年度 秋期 ネットワークスペシャリスト試験 午後II
- 青星と赤星の通信をOFSにさせるために、事前にOFCからFlow-Mode(1)によって、OFSのフローテーブルの更新を行っている。
- 青星のフローテーブルは③ARP ReplyをRT-1へ転送させたいため、パケット識別条件は③ART Relyを特定するような条件を記載すればよい。
Actionとしては、RT-1へ送信するような動作をさせればよい。 - 赤色のフローテーブルは⑤SYNを新FW宛に⑥SYNを転送させたいので、パケット識別条件は⑤SYNを特定するような条件を記述すればよい。
Actionとしては、新FWへ送信するような動作をさせればよい。
上記の図のようにOpen Flowではネットワーク機器がどのように転送するかはコントローラが管理している。
フローテーブルは受信したパケットをどうするかの判断なので、受信しなければアクションは起こらない。問題を解くときに、「オープンフローで管理されているネットワーク機器が受信したパケットは何か、そしてそれをどのように制御するか」に気を付けると解きやすい。
関連情報
参考
以下の書籍やサイトをよく参考にしました。
以上!
コメント