LuckyOceanのブログ

新米技術士の成長ブログ

情報工学の試験は奥が深く幅が広い(涙)

はじめに
技術士情報工学部門の平成29年度の試験問題はなんとか回答できたので、次は平成28年度の問題にトライしようとした。しかし、ムズイ。全然分からない。仕方ないのでネットで関連情報を調べて理解を深めようとしたら、知らない言葉や分からない概念が次々に出てくる。

情報工学部門の合格率は、他の部門の合格率よりも低く難関だ。昨年受験した経営工学の生産マネジメントでは結果的にはなんと4割の合格率だったが、情報工学はわずか7%だ。

まあ愚痴っていても仕方ないので、少しこのブログを活用して頭の整理をしたいと思います。皆様の参考になれば幸いです。

1. 設問の内容
 かいつまんで言えば、「VXLANについて、規格の概要や規格化された背景とVLANやTRILLと比べた時の特徴を述べよ」である。600字1枚の問題なので、内容的には妥当だけど、そもそも単語の意味が分からない。VLANは流石に知っているけど、VXLANとは?TRILLとは?

2. VXLANの概要
(1) VXLANの概要

 VXLAN(Virtual eXtensible Local Area Network)の略だ。VLANを拡張した技術だ。具体的には、L3ネットワーク上に論理的なL2ネットワークを構築するトンネリングプロトコルだという。わかったような分からないような(笑)。VXLANでは、VXLAN IDを使用してイーサネットフレームをカプセル化することでトンネリングを実現する。VXLANの概要を理解するには、VLANを復習しておく必要がありそうだ。

(2) VLANの概要
大好きなWikiで調べると、「Virtual Local Area Network(VLAN)は、スイッチなどのネットワーク機器の機能により、物理的な接続形態とは別に仮想的なネットワークを構成することである。スイッチの接続ポートやMACアドレスプロトコルなどに応じて、端末のグループ化を実現する。」とある。まだ抽象的で分かりにくい。

(3) VLANの種類
LANの用途も方式も様々なものが使われている。もっとも普及しているVLANはレイヤ3のスイッチをルータとしてネットワーク構成するものだ。大企業では部門毎にVLANを設けてネットワークを分割し、アクセスを制限するようなセキュリティ対策としても活用している。
VLANの方式は主要なものだけでも次のようなものがある。
1) ポートベースVLAN : スイッチの接続ポート番号により識別する方式
2) MACベースVLAN : 端末のMACアドレスにより識別する方式
3) サブネットベースVLAN : 端末のIPアドレスにより識別する方式
4) プロトコルベースVLAN : IP、IPX等のネットワークプロトコルで識別する方式

(4) VLANの仕組み
下の図は、@ITの解説で使われていた図でVLANの仕組みを示している。物理的は共通のL2ネットワークを仮想的なLANであるVLAN10、VLAN11、VLAN12が共存している。そして、これらのVLANの識別にはVLAN IDと呼ばれる識別子を用いるが、この長さが12ビットだ。なので、0から4095までの4096のID を使えるはずだが、0と4095は予約されているので、実際に使えるのは4094個、まあ約4千個もあるのでこれまでは十分だった。なお、図の中でVRFとあるのはVirtual Routing and Forwardingの略でこれは事項で説明する。
f:id:hiroshi-kizaki:20180701063356p:plain
出典:@it(参考1)

(5) VRF
VRF(Virtual Routing and Forwarding)は、ルーティングテーブルの複数インスタンスが同じルータ内に同時に存在することを可能にするテクノロジだ。ルーティングインスタンスは独立しているため、同じまたは重複するIPアドレスを互いに競合することなく使用することができ、複数のルータを必要とせずにネットワークパスをセグメント化できるため、ネットワーク機能が向上する。分かったような分からないような。そもそもインスタンスとは何だ。
f:id:hiroshi-kizaki:20180701065542p:plain
出典:アライドテレシス(参考2)

(6) インスタンス
Weblioで調べると、「インスタンスとは、英語において「事実」「実例」「実態」といった意味を示す名詞である。」という。どうも、オブジェクト指向言語で好んで使われる用語の一つのようだ。例えば、オブジェクト指向の世界では、設計図のことをクラスといい、実際に作ったものをインスタンスといい、これらを総称したモノをオブジェクトと呼ぶ。まだあまり知られていないが、オープンソースで開発されたSNSマストドン」では、サーバー単位で設置されるクラスタインスタンスと呼ぶ。

3. VXLANが規格化された背景
VXLANの概要を理解しようとしたが、分かったような分からないような。まあ、なんとなく、VLANの拡張技術らしいということは理解した。しかし、VLANでは何が問題だったのだろうか。調べてみると、次の3点に集約されるようだ。
1) VLAN ID(約4000)の数が足りない
2) 一般的なL2冗長手段であるSTPは、マルチパスに対応していない
3) ToRスイッチのMACアドレステーブルのスケーラビリティが足りない

 つまり、従来のWANは帯域も狭く、速度も遅く、でも価格は高かったのでそれほど多くの機器を接続することはなかったが近年ではインターネットを活用したSD-WANが普及し、広帯域で高速、値段も安いということで非常に広範囲な拠点とその設備を接続するようになってきた。このために従来なら十分と思われていた約4千という数ではもはや収まりきれないということだ。さらに、STPとはSpanning Tree Protocolでパケットが無駄に往復しないように規制する技術だが、その副作用として冗長性を活用しきれないと側面がある。機器の故障時には短時間で設定を切り替えるようになっているが、リアルタイムではない。また、ToRは悪名高いダークウェブを使うための技術の方が有名になりつつあるが、この文脈のToRとはTop or Rackの略だ。簡単にいえばラック内の機器を接続する方式にはTop of RackとEnd of Rackの二方式があり、前者はラック内の機器をラック内のスイッチで集約する方法で、後者はラック内にはスイッチは置かずにラック外のスイッチとラック内の機器をそれぞれ接続する方法だ。
f:id:hiroshi-kizaki:20180701070959p:plain
出典:@it(参考1)

4. VLANやTRILLと比較したVXLANの特徴
(1) ファブリックとオーバーレイ

 個々の方式の比較をする前に少し抽象度を高めるとファブリック方式とオーバーレイ方式の比較となる。下の表で示すように、ファブリックにはSPB(いわゆるVLAN)やTRILLがある。そして、オーバーレイにはVXLANがある。
f:id:hiroshi-kizaki:20180701072811p:plain
出典:@it(参考3)

(2) ファブリック方式とは
ファブリックとは布とか織物の意味だ。網のトポロジーとしてツリー型、ループ型、バス型、メッシュ型と区分していた。メッシュは個々のノードが繋がる方式だが、イメージ的には粗い。ファブリックはもっと大量のノードがそれぞれ密に繋がるイメージだ。なお、技術士試験の設問にはVLAN(IEEE 802.1Q)と規格名が明記されていた。実はこれがこの設問のミソだ。つまり、VLANといえば、SPB(Shortest Path Bridging)となるが、このSPB方式も下の表のように年々進化している。つまり、IEEE 802.1Qなら識別子の数が約4千という制限があることを訴求できるが、これの進化版であるIEEE 802.1adや同802.1ah、同802.1aqでは1600万に拡張されている。Q in QとかMac in Macという用語もキーだが、VLANの進化の技術を指している。今年はこの辺りをついてくるのかもしれない。
f:id:hiroshi-kizaki:20180701073929p:plain
出典:SideShare(参考4)

(3) オーバーレイ方式とは
オーバーレイは既存のネットワークをベースとして、その上に論理的な仮想網を構築する方法だ。これを実現する代表的な方法がVXLANであり、L2のパケットをカプセリング化して、最大約1600万の論理ネットワークを構築するモノだ。従来のVLANでは、仮想マシン(VM)が通信するたびに物理ネットワークのMACアドレステーブルに仮想マシンMACアドレスを登録する必要があった。このため、前述のように、VMの数が増えると、MACアドレステーブルが逼迫するという懸念があった。しかし、VXLANでは、VTEP(VXLAN Tunnel End Point)のMACアドレスVMの代表MACアドレスとして物理ネットワークのMACアドレステーブルに登録するので、MACアドレスが逼迫することはない。

(4) VXLANの課題
VXLANはVLANやTRILLが直面する課題を解決し、大規模のSD-WANなどにも活用できそうだ。しかし、欠点のない方式はない。VXLANの課題は何か?それをどのように解決するのかという着想と理解力を試される可能性がある。VXLANの課題は何かと調べると、次のような点が見えてきた。
1) 仮想ホストサーバーのリソースの消費
 仮想ネットワーク上のパケット処理は、仮想ホストサーバーのリソースを消費する。このため、大規模な仮想環境ではパケット転送時のパフォーマンスが懸念される。
2) 仮想ネットと物理ネットの個別管理
 オーバーレイ方式の場合には、物理ネットワーク側の管理ポイントが分かれている。このため、仮想と物理ネットワークを別々に管理する必要も出てくる。
3) コストの問題と信頼できるインテグレータが少ない
 オーバーレイ型の機器は販売されているが、まだライセンスが高価である。また、提案や構築ができるシステムインテグレーターがまだ少ない。

5. TRILLの課題とVXLANとの比較
(1) TRILLとは

 前項ではTRILLについても言及すべきだったが、なかなかTRILLに関する情報が少なく、難解だ。f5のウェブ(参考5)をみると比較的平易にTRILLを説明してくれていた。少し引用する。
L2でルーティングするTRILL
 TRILLも前回のSPBと同様に、物理的なネットワーク上でイーサネットフレームの経路を動的に設定して論理的なネットワーク構造を作る、マルチパスイーサネット技術だ。イーサネット上をトンネリングしてデータを遅るというのも、TRILLとSPBで共通している。なお、TRILLIETFで標準化され、RFC 6325ほかで仕様が定められている。

(2) TRILLとは(続)
 TRILLの理解は前項の説明ではまだ不十分だ。大好きなWikiで調べると日本語版にはなかったけど英語版には解説があった。キーワードはIS-ISTLVECMPかなあ(汗)。まず、TRILLは、RBridgeと呼ばれるデバイスによって実装されるIETF標準だと定義している。TRILLはリンクステートルーティングをVLAN対応の顧客ブリッジ問題に適用する。RBridgeは、IEEE 802.1ブリッジと互換性があので、段階的に置き換えることができる。RBridgeはブリッジスパニングツリープロトコルを終了する。TRILLスイッチ(RBridge)はリンクステートプロトコルを実行する。使用されるリンクステートルーティングプロトコルIS-ISだ。レイヤ2上で直接実行されるため、IPアドレスを割り当てる必要はない。TRILL情報を運ぶための新しいTLVでデータ要素とサブ要素を定義する。ループ問題を緩和するために、RBはホップカウントを持つヘッダーに基づいて転送する。代替配信ツリールートによるマルチデスティネーションフレームのマルチパスとユニキャストフレームのECMP(Equal Cost MultiPath)がサポートされる。メッシュ状のネットワークは、TRILLのマルチパス機能にメリットがあるようだ。

(3) SPBとTRILL
 SPBではイーサネットフレームをVLANでまるごとカプセル化する。これに対してTRILLでは、イーサネットフレームのヘッダを拡張することで元のイーサネットフレームをカプセル化する。SPBでは一般的な種類のフレームを活用するが、TRILLでは専用の種類のフレームを活用する。このため、SPBではノードごとに最短経路を確認してしてデータを転送する。一方、TRILLは、途中のノードでヘッダを書き替えて次のノードに伝送する。
出典:f5(参考5)

 もう少し調べていると、クラウドウオッチ(参考6)が次のように解説していた。

 新しい「フラットなL2ネットワーク」を実現するための技術としては、主にSPB(Shortest Path Bridging)とTRILL(Transparent Interconnection of Lots of Links)の2つがネットワークベンダーに採用され、標準化が進められている。SPBもTRILLも、イーサネットの1つのネットワーク上で複数の経路を許容する「マルチパス」の技術だ。伝統的なL2ネットワークでは、2点間に複数の経路がある物理構造は、ループとなり障害を起こしてしまうため作れない。しかし、サーバーやスイッチの台数が増える中では、ループを作ってしまう危険性も増えるほか、経路を冗長化する必要性もある。最近ではループを避けるスパニングツリー(STP)技術が使われる。例えば、2つの経路があるときに片方の経路のポートを自動的に切断しておく(ブロッキングポート)ことで、ループを防ぐものだ。これにより、ループ回避と冗長化が実現できる。ただし、スパニングツリーでは2つの経路の片方だけを使うために、単純計算で帯域が半分しか使えないことになる。
 それに対し、SPBやTRILLでは、物理的なL2ネットワーク構成の上で、それぞれの2点間の最短経路を自動的に決めて、それに基づいて各スイッチがデータを流す先を決める。そのため、複数の物理的な経路があっても(マルチパス)、実際の経路は一意に決まる。いわば、物理的なネットワーク構造の上に、全体が1つのスイッチであるように論理的なネットワーク構造が作られるわけだ。
 

6. まとめ
ネットで色々調べてなんとなくは理解できただろうか。要は従来のWANに対して、現在のWANは非常に広範囲で大量の機器を接続するために、既存のVLANでは懸念事項が増えてきた。このため、VLANの思想をベースにして機能を拡張するファブリック方式と、既存のネットワークの上に新たにアプリケーション層のネットワークを構築するオーバーレイ方式が競いでいる。それぞれに長短はあるが、本命はVXLANを中心とするオーバーレイ方式かもしれない。今後は、これら2つの方式を比較して、VXLANの課題やその対応策を述べよといったむずい問題が出るかもしれない。もしくは、既存のVLANから新しいネットワークに移行するときの方法とその留意点を示せといった問題が出るかもしれない。VLANだけではないが、通信技術の革新の速度が早い。専門分野であれば日常の業務の中で自然に情報も入ってくるのでなんとなく勘が働くが、そうでないと、調べても調べても知らないことが出てくる。Mac in Macは、マクドナルドでマッキントッシュを使う訳ではない。知らない用語が一杯出てくるが、あと2週間なんとかラストスパートを頑張ろう(汗)。

追加
Smart Gridフォーラム(参考7)には次のような解説が載っていた。
802.1ah(拡張サービス・タグ付きフレーム方式)は、いわゆるMAC-in-MACと呼ばれるカプセル化方式(MACフレームの中にMACフレームを挿入する方式)を用いて、高い信頼性をもち、かつ大規模なレイヤ2接続サービス(広域イーサネット・サービス)を提供するための方式を規定する規格で、「ダブル・タグ方式」(短い固定長のタグを2個使用する)と呼ばれる802.1ad(※1)と同様に、イーサネットを用いてポイント・ツー・マルチポイントの接続サービスを実現する。802.1adとの違いは、MAC-in-MACの技術を活用して、より高信頼かつ大規模な網を実現することが可能な点であり、次世代広域イーサネットのコア技術として注目されている。

参考1:http://www.atmarkit.co.jp/ait/articles/1412/03/news009.html
参考2:https://www.allied-telesis.co.jp/support/list/switch/x900_sb900/doc/docs/docs/overview-101.html
参考3:http://www.atmarkit.co.jp/ait/articles/1412/03/news009_2.html
参考4:https://www.slideshare.net/MottyBenAtia/shortest-path-bridging-8021-aq
参考5:https://f5.com/glossary/glossary092-21573
参考6:https://cloud.watch.impress.co.jp/docs/special/505011.html

参考7:https://sgforum.impress.co.jp/article/835