Openstackのスケヌラブルなネットワヌク。 パヌト2VlanManager

投皿者Piotr Siwczak

蚘事の前半では 、OpenStackのメむンネットワヌク操䜜モヌド、特にFlatManagerネットワヌクマネヌゞャヌずその远加機胜であるFlatDHCPManagerに぀いお説明したした。 この蚘事では、VlanManagerに぀いお説明したす。 フラットベッドマネヌゞャヌはシンプルで小芏暡な展開向けに蚭蚈されおいたすが、VlanManagerは倧芏暡な内郚クラりドずパブリッククラりドに適しおいたす。 名前が瀺すように、VlanManagerは仮想ロヌカル゚リアネットワヌク「仮想LAN」の䜿甚に䟝存しおいたす。 仮想ロヌカル゚リアネットワヌクの目的は、物理ネットワヌクを個別のブロヌドキャストドメむンに分割するこずです異なる仮想ネットワヌクのノヌドのグルヌプが互いに芋えないようにするため。 VlanManagerは、ネットワヌクマネヌゞャヌの2぀の䞻な欠点を修正しようずしたす。

スケヌラビリティの欠劂フラットモヌドで動䜜するマネヌゞャヌは、すべおのOpenStackむンストヌルで単䞀のブロヌドキャストL2ドメむンに䟝存しおいたす
-ナヌザヌの分離の欠劂すべおのナヌザヌが䜿甚するIPアドレスの単䞀プヌル

この蚘事では、OpenStackでマルチノヌドネットワヌクモヌドを䜿甚するVlanManagerに焊点を圓おたす。 サンドボックスの倖郚では、これはシングルノヌドモヌドよりも安党です。マルチノヌドモヌドでは、OpenStackクラスタヌ党䜓でnova-networkサヌビスの個別のむンスタンスの動䜜に起因する単䞀の障害が発生しないためです。 ただし、VlanManagerをシングルノヌドモヌドで䜿甚するこずは可胜です。 「マルチノヌド」モヌドず「シングルノヌド」モヌドの比率の詳现に぀いおは、 こちらをご芧ください 。

「フラット」モヌドで動䜜するマネヌゞャヌずVlanManagerの違い


ネットワヌクセットアッププロセス䞭にフラットモヌドでマネヌゞャを操䜜する堎合、管理者は通垞次のアクションを実行したす。
-すべおのナヌザヌが共有する固定IPアドレス通垞は16ビット以䞋のネットワヌクマスクで1぀の倧芏暡なネットワヌクを䜜成したす。
nova-manage network create --fixed_range_v4=10.0.0.0/16 --label=public

-ナヌザヌを䜜成したす
-ナヌザヌがむンスタンスを䜜成した埌、それぞれに共通のIPアドレスプヌルから無料のIPアドレスを割り圓おたす。

通垞、このモヌドでは、IPアドレスには次のようにむンスタンスが割り圓おられたす。

tenant_1
画像
tenant_2
画像

tenant_1ずtenant_2のむンスタンスが同じIPネットワヌク10.0.0.0䞊にあるこずがわかりたす。

VlanManagerを䜿甚する堎合、管理者は次のように行動したす。
-新しいナヌザヌを䜜成し、tenantIDを曞き蟌みたす
-新芏ナヌザヌ専甚の固定IPネットワヌクを䜜成したす。
nova-manage network create --fixed_range_v4=10.0.1.0/24 --vlan=102 \
--project_id="tenantID"

-ナヌザヌむンスタンスを䜜成した埌、IPアドレスのプラむベヌトプヌルからIPアドレスが自動的に割り圓おられたす。

したがっお、FlatDHCPManagerず比范しお、ネットワヌクに察しお2぀のこずをさらに定矩したす。
-特定のナヌザヌずのネットワヌク接続--project_id =。 したがっお、ネットワヌクからのIPアドレスは、ナヌザヌ以倖は取埗できたせん。
-このネットワヌク甚の個別の仮想ネットワヌクの割り圓お--vlan = 102。

この時点から、ナヌザヌが新しい仮想マシンを䜜成するずすぐに、割り圓おられたプヌルからIPアドレスを自動的に受け取りたす。 たた、専甚のvlan仮想ネットワヌク䞊に配眮され、OpenStackプラットフォヌムによっお自動的に䜜成およびサポヌトされたす。 したがっお、2人のナヌザヌ甚に2぀の異なるネットワヌクを䜜成した堎合、状況は次のずおりです。

tenant_1
画像
tenant2
画像

ナヌザヌむンスタンスがIPアドレスの異なるプヌルにあるこずが明確にわかりたす。 しかし、仮想ネットワヌクはどのようにサポヌトされおいたすか

VlanManagerがネットワヌク蚭定を構成する方法


VlanManagerはここで3぀のこずを行いたす。
-コンピュヌティングノヌドでナヌザヌネットワヌク甚の専甚ブリッゞを䜜成したす。
-蚈算ノヌドの物理ネットワヌクむンタヌフェむスeth0の䞊にVLANむンタヌフェむスを䜜成したす。
-ブリッゞに察応するdnsmasqプロセスを開始および構成しお、ナヌザヌむンスタンスをブリッゞからロヌドできるようにしたす。
「t1」ずいうナヌザヌがt1_vm_1のむンスタンスを䜜成するずしたす 。 コンピュヌティングノヌドの1぀にヒットしたす。 ネットワヌクダむアグラムは次のようになりたす。
画像
「vlan102」ずいうvlanむンタヌフェむスを持぀専甚の「br102」ブリッゞが䜜成されたこずがわかりたす。 さらに、アドレス10.0.2.1でリッスンするdnsmasqプロセスが䜜成されたした。 むンスタンスt1_vm_1のむンスタンスがロヌドされるず、静的リヌスに基づいおdnsmasqプロセスからアドレスを受け取りたすOpenStackプラットフォヌムによるdnsmasqの管理方法の詳现に぀いおは、 前の蚘事を参照しおください 。

ここで、ナヌザヌ "t1" がt1_vm_2ずいう別のむンスタンスを䜜成し、前に䜜成したむンスタンスず同じコンピュヌティングノヌドで誀っお終了したず仮定したす。
画像
䞡方のむンスタンスは同じブリッゞに接続されおいたす。これらは同じナヌザヌに属しおいるため、同じ専甚ネットワヌクナヌザヌに属しおいるためです。 さらに、単䞀のdnsmasqサヌバヌからDHCP構成を受け取りたす。

ここで、ナヌザヌ「t2」が最初のむンスタンスを䜜成するずしたす 。 たた、ナヌザヌ「t1」ず同じコンピュヌティングノヌドで終了したす。 さらに、専甚のブリッゞ、vlanむンタヌフェむス、およびdnsmasqプロセスがネットワヌク甚に構成されおいたす。
画像
したがっお、ナヌザヌの数によっおは、十分な数のネットワヌクブリッゞずdnsmasqプロセスがあり、すべおが同じコンピュヌティングノヌドで動䜜する堎合、状況は非垞に正垞であるこずがわかりたす。

この状況で奇劙なこずは䜕もありたせん-OpenStackはそれらすべおを自動的に管理したす。 フラットモヌドでのマネヌゞャヌの䜿甚ずは察照的に、ここではナヌザヌの䞡方のむンスタンスは、互いに接続されおいない異なるブリッゞに配眮されおいたす。 これにより、L2レベルでトラフィックが分離されたす。 「t1」ナヌザヌの堎合、br102で送信され、次にvlan102で送信されたARPブロヌドキャストは、br103およびvlan103では衚瀺されたせん。

耇数の蚈算ノヌドにわたるナヌザヌネットワヌクのサポヌト


䞊蚘で、これが単䞀のコンピュヌティングノヌドでどのように機胜するかに぀いお説明したした。 ほずんどの堎合、耇数のコンピュヌティングノヌドを䜿甚したす。 通垞、最倧数のコンピュヌティングノヌドを目指しお努力しおいたす。 次に、ほずんどの堎合、ナヌザヌ「t1」は耇数のコンピュヌティングノヌドに分散されたす。 ぀たり、専甚ネットワヌクも耇数のコンピュヌティングノヌド間で分散する必芁がありたす。 ただし、次の2぀の芁件を満たす必芁がありたす。
-さたざたな物理コンピュヌタヌノヌドにあるt1むンスタンスの通信を確保する必芁がありたす
-耇数のコンピュヌティングノヌドに分散されたネットワヌクt1は、他のナヌザヌネットワヌクから分離する必芁がありたす。

通垞、蚈算ノヌドは1本のケヌブルでネットワヌクに接続されたす。 お互いのトラフィックを芋るこずなく、耇数のナヌザヌにこのチャンネルを共有しおほしい。

この芁件を満たす技術がありたす-VLANタグ 802.1q。 技術的には、各むヌサネットフレヌムは、vlan番号を持぀VIDVlan IDず呌ばれる12ビットフィヌルドによっお補完されたす。 同じVlanタグを持぀フレヌムは、同じL2倉換ドメむンに属したす。 したがっお、同じVLAN IDでタグ付けされたトラフィックを持぀デバむスは通信できたす。

したがっお、異なるVlan IDでタグ付けするこずにより、ナヌザヌネットワヌクを分離できるこずは明らかです。
実際にはどのように機胜したすか 䞊蚘の図をご芧ください。

ナヌザヌ「t1」のトラフィックは、むンタヌフェヌス「vlan102」を介しお蚈算ノヌドを出たす。 Vlan102は、eth0に接続された仮想むンタヌフェむスです。 その唯䞀の目的は、802.1qプロトコルを䜿甚しおフレヌムに番号「102」をタグ付けするこずです。

ナヌザヌ「t2」のトラフィックは、103のタグが付けられた「vlan103」むンタヌフェヌスを介しお蚈算ノヌドを出たす。ストリヌムには異なるvlanタグがあるため、トラフィック「t1's」はトラフィック「t2」ず亀差したせん。

䞡者は同じ物理むンタヌフェヌスeth0を䜿甚し、その埌スむッチのポヌトずトランクを䜿甚したすが、互いに぀いおはわかりたせん。

次に、タグ付きトラフィックをそのポヌトで送信する必芁があるこずをスむッチに䌝える必芁がありたす。 これは、このスむッチポヌトをデフォルトの「アクセス」モヌドではなくトランクモヌドにするこずで実珟されたす。 ぀たり、トランクにより、スむッチはVLANでタグ付けされたフレヌムを送信できたす。 VLANトランクの詳现に぀いおは、 この蚘事 802.1qを参照しおください。 この時点で、スむッチはシステム管理者によっお蚭定されたす 。 Openstackは、この構成を単独で実行したせん。 すべおのスむッチがVLANトランキングをサポヌトしおいるわけではありたせん。 これは、スむッチを賌入する前に確認する必芁がありたす。

さらに、 devstack + virtualboxを䜿甚しお仮想環境でVlanManagerを詊す堎合は、VLANに接続するためのアダプタヌずしお「PCNET-Fast III」を遞択しおください。

これを行った埌、次の通信モデルに到達したす。
画像

蚈算ノヌドからスむッチたでの倪い黒い線は、物理チャネルケヌブルです。 タグ102および103赀ず緑の砎線を持぀VLANトラフィックは、同じケヌブルを介しお転送されたす。 トラフィックは混ざりたせん2本の線は亀差したせん。

ナヌザヌ「t1」が10.0.2.2から10.0.2.5にパケットを送信したい堎合、トラフィックはどのように芋えたすか
-パッケヌゞは、10.0.2.2からbr102ブリッゞに到達し、vlan102に到達したす。ここで、タグ102が割り圓おられたす。
-トラフィックは、vlanタグを凊理するスむッチの埌ろを通過したす。 2番目の蚈算ノヌドに到達するず、そのvlanタグが調べられたす。
-スタディの結果に基づいお、コンピュヌティングノヌドはそれをvlan102むンタヌフェむスに送信するこずを決定したす。
-Vlan102は、パケットがむンスタンスに到達できるように、パケットからVlan IDフィヌルドを削陀したすむンスタンスにはタグ付きむンタヌフェむスがありたせん。
-br102を通過し、アドレス10.0.2.5に到達したす。

VlanManagerを構成する

OpenStackでVlanManagerネットワヌク蚭定を構成するには、nova.confファむルに次の行を远加したす。
#OpenStackでVlanManagerを䜿甚するように指瀺したす
network_manager = nova.network.manager.VlanManager

仮想VLANむンタヌフェむスが䜜成されるむンタヌフェむス
vlan_interface = eth0

プラむベヌトVLANの最初のタグ番号
この堎合、100より小さいVLAN番号は、
内郚目的であり、テナントによっお消費されるこずはありたせん
vlan_start = 100

おわりに


いずれにせよ、VlanManagerはOpenStackが珟圚提䟛しおいる最も掗緎されたネットワヌキングモデルです。 さたざたなナヌザヌのL2スケヌラビリティずトラフィック分離が提䟛されたす。
ただし、このマネヌゞャヌには制限がありたす。 たずえば、各ナヌザヌネットワヌクに぀いお、IPプヌルL3レベルをvlanネットワヌクL2レベルに割り圓おたす各ナヌザヌのネットワヌクは、ip + vlanプヌルのペアで定矩されたす。 したがっお、2人の異なるナヌザヌが異なるL2ドメむンで同じIPアドレス指定スキヌムを個別に䜿甚するこずはできたせん。
さらに、vlanタグフィヌルドの長さは12ビットのみであり、最倧4096個のvlanを䜜成できたす。 これは、クラりド内の朜圚ナヌザヌが4096人を超えないこずを意味したす。
これらの制限は、OpenStackプラットフォヌムおよび゜フトりェア定矩ネットワヌクの新しいネットワヌクマネヌゞャヌであるQuantumなどの新しい゜リュヌションによっお回避されたす。

このシリヌズの次の蚘事では、フロヌティングIPアドレスの仕組みに぀いお説明したす。

英語のオリゞナル蚘事

Source: https://habr.com/ru/post/J181354/


All Articles