ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 管理: ネットワークインタフェースとネットワーク仮想化 Oracle Solaris 11 Information Library (日本語) |
この Oracle Solaris リリースでのネットワーク構成
7. プロファイルでのデータリンクおよびインタフェース構成コマンドの使用
10. Oracle Solaris 上での無線インタフェース通信の構成
ブリッジは、別々のネットワークセグメントを接続する際に使用されます。ブリッジで接続すると、接続されたネットワークセグメントは単一のネットワークセグメントであるかように通信を行います。ブリッジングは、ネットワークスタックのデータリンク層 (L2) で実装されます。ブリッジはパケット転送メカニズムを使用して、複数のサブネットワークを相互に接続します。
ブリッジングとルーティングはどちらも、ネットワーク上のリソースの場所に関する情報を配布するために使用できますが、いくつかの点で異なります。ルーティングは IP 層 (L3) で実装され、ルーティングプロトコルを使用します。データリンク層では、ルーティングプロトコルは使用されません。代わりに、パケットの転送先は、ブリッジに接続されているリンクで受信されたネットワークトラフィックを検査することで特定されます。
パケットを受信すると、その発信元アドレスが検査されます。パケットの発信元アドレスには、受信されたリンクにパケットを送信したノードが関連付けられます。その後、受信されたパケットが宛先アドレスと同じアドレスを使用すると、ブリッジはリンク上のパケットをそのアドレスに転送します。
発信元アドレスと関連付けられたリンクは、ブリッジサブネットワーク内の別のブリッジに接続された中間リンクである場合があります。時間が経過すると、ブリッジサブネットワーク内のすべてのブリッジが、どのリンクが特定のノードにパケットを送信するのかを「学習」します。したがって、ホップバイホップのブリッジング方式で最終宛先にパケットを送信する際には、パケットの宛先アドレスが使用されます。
ローカルの「リンク停止」通知は、特定のリンク上のすべてのノードが到達不能になったことを示します。この状況では、リンクへのパケット転送が停止し、リンク上のすべての転送エントリがフラッシュされます。時間が経過すると、転送エントリも消去されます。リンクが復元されると、リンク上で受信されたパケットは新規として処理されます。パケットの発信元アドレスに基づいた「学習」プロセスが再開します。このプロセスによって、アドレスが宛先アドレスとして使用されたときに、ブリッジが正常にパケットをそのリンク上に転送できるようになります。
パケットを宛先に転送するには、ブリッジに接続されたすべてのリンク上でブリッジがプロミスキャスモードで待機する必要があります。プロミスキャスモードで待機すると、最大回線速度でパケットが永久に循環してしまう転送ループの発生に対して、ブリッジが脆弱になります。したがって、ブリッジングではスパニングツリープロトコル (STP) メカニズムを使用して、サブネットワークが使用不可になるネットワークループを回避します。
ブリッジに STP およびラピッドスパニングツリープロトコル (RSTP) を使用することに加えて、Oracle Solaris では TRILL 保護拡張機能もサポートされています。デフォルトでは STP が使用されますが、ブリッジングコマンドで -P trill オプションを指定すれば、TRILL も使用できます。
ブリッジ構成を使用して、単一のネットワークに接続すると、ネットワーク内のさまざまなノードの管理が簡略化されます。これらのセグメントをブリッジ経由で接続すると、すべてのノードが単一のブロードキャストネットワークを共有します。したがって、ルーターを使用してトラフィックをネットワークセグメント間で転送するのではなく、IP などのネットワークプロトコルを使用することによって、各ノードはその他のノードに到達できます。ブリッジを使用しない場合は、ノード間の IP トラフィックの転送を許可するように IP ルーティングを構成する必要があります。
次の図は、単純なブリッジネットワーク構成を示しています。ブリッジ goldengate は、ブリッジングが構成された Oracle Solaris システムです。sanfrancisco および sausalito は、物理的にブリッジに接続されたシステムです。ネットワーク A ではハブが使用され、片側では物理的にブリッジに接続され、反対側ではコンピュータシステムに接続されています。ブリッジポートは、bge0、bge1、bge2 などのリンクです。
図 11-1 単純なブリッジネットワーク
ブリッジネットワークはリング状に形成して、物理的に複数のブリッジを相互に接続できます。このような構成は、ネットワークでよく使用されます。このタイプの構成では、古いパケットがリングの周りをエンドレスにループすることによってネットワークリンクが飽和状態になる問題が発生する可能性があります。このようなループ状況から保護するために、Oracle Solaris のブリッジには STP と TRILL の両方のプロトコルが実装されています。大部分のハードウェアブリッジでは、STP ループ保護も実装されています。
次の図は、リング状に構成されたブリッジネットワークを示しています。この構成では、3 台のブリッジがあります。2 台のシステムが物理的に westminster に接続されています。1 台のシステムが物理的に waterloo に接続されています。さらに、1 台のシステムが物理的に tower に接続されています。各ブリッジは、物理的にブリッジポートを介して相互に接続されています。
ループ保護のために STP または RSTP を使用すると、ループ内の接続の 1 つによるパケット転送を回避することによって、物理的なループが軽減されます。この図は、westminster と tower ブリッジ間の物理リンクがパケット転送に使用されないことを示しています。
ループ保護を実行するために使用可能な物理リンクをシャットダウンすると、STP および RSTP によって帯域幅が消費されることに注意してください。
STP および RSTP とは異なり、TRILL ではループを回避するために物理リンクがシャットダウンされません。その代わりに、TRILL はネットワーク内の TRILL ノードごとに最短パス情報を計算し、その情報を使用して個々の宛先にパケットを転送します。
その結果、TRILL を使用すると、すべてのリンクが常に使用中のまま保持できます。IP によるループの処理方法と同様にループが処理されるため、ループが問題になることはありません。つまり、TRILL は必要に応じてルートを作成し、転送のホップ制限を使用することで、一時的なループ状態によって発生する問題を回避します。
図 11-2 ブリッジネットワークリング
注意 - SPARC プラットフォームでは、local-mac-address?=false を設定しないでください。これを設定すると、複数のポートや同じネットワーク上で同一の MAC アドレスが誤って使用されます。 |
注 - 可能な限り高いレベルのパフォーマンスが必要な場合は、ブリッジにリンクを構成しないでください。ブリッジングでは、ベースとなるインタフェースをプロミスキャスモードにして、システムのハードウェア層、ドライバ層、およびその他の層で実装されている数多くの重要な最適化機能を無効にする必要があります。このようなパフォーマンス拡張機能が無効になることは、ブリッジングメカニズムでは避けられない結果です。
システムのリンクの一部がブリッジされていないために、これらの制約の対象ではないシステムでは、ブリッジを使用できます。このようなパフォーマンスの問題は、ブリッジの一部になるように構成されたリンクにのみ影響を与えます。
STP の詳細は、IEEE 802.1D-1998 を参照してください。RSTP の詳細は、IEEE 820.1Q-2004 を参照してください。TRILL の詳細は、Internet Engineering Task Force (IETF) TRILL draft documents を参照してください。
次のリンクプロパティーは、dladm show-linkprop、dladm set-linkprop、および reset-linkprop コマンドで表示および変更できます。
リンク間で送受信されるタグなしパケットに、デフォルトの仮想ローカルエリアネットワーク (VLAN) ID を定義します。有効な値は 0 - 4094 です。デフォルト値は 1 です。このプロパティーは、VLAN 以外および仮想ネットワークインタフェースカード (VNIC) 以外のタイプのリンクにのみ存在します。この値を 0 に設定すると、ポートとの間で送受信されるタグなしパケットの転送が無効になります (これは MAC プロパティーです)。
注 - このプロパティーをブリッジングの範囲外で使用して、リンクに IEEE Port VLAN Identifier (PVID) を指定することもできます。ベースリンク自体が自動的に PVID を表すため、default_tag をゼロ以外にすると、リンク上に同じ ID を持つ VLAN を作成できません。
たとえば、net0 で PVID を 5 に設定する場合は、net0 で ID 5 の VLAN を作成できません。この状況で VLAN 5 を指定するには、net0 を使用します。
default_tag は、そのリンクで作成された既存の VLAN の ID と等しくなるように設定できません。たとえば、次のコマンドは net0 に VLAN 22 を作成します。
# dladm create-vlan -l net0 -v 22 myvlan0
この状況では、net0 と myvlan0 の両方で同じ VLAN を表すため、default_tag を 22 に設定できません。
default_tag を 0 に設定すると、net0 上のタグなしパケットと VLAN とのあらゆる関連付けを解除できます。この状況では、このようなパケットが構成されたブリッジから転送されなくなります。
ブリッジ経由のトラフィック転送を有効および無効にします。このプロパティーは、VNIC リンク以外のすべてのリンクに存在します。有効な値は 1 (真) と 0 (偽) です。デフォルト値は 1 です。無効にすると、リンクインスタンスに関連付けられた VLAN では、トラフィックがブリッジから転送されなくなります。転送を無効にすることは、従来のブリッジで「許可された設定」から VLAN を削除することに相当します。つまり、ローカルクライアントからベースとなるリンクへの VLAN ベースの入出力は続行されますが、ブリッジベースの転送は実行されません。
STP と RSTP を有効および無効にします。有効な値は 1 (真) と 0 (偽) です。デフォルト値は 1 であり、STP と RSTP が有効になります。0 に設定すると、リンクではどのタイプのスパニングツリープロトコルも使用されず、常に転送モードに移行されます。転送モードでは、ブリッジプロトコルデータユニット (BPDU) ガードが使用されます。エンドノードに接続されるポイントツーポイントリンクを構成する場合は、STP と RSTP を無効にします。このプロパティーは、VLAN および VNIC 以外のタイプのリンクにのみ存在します。
リンクを使用する際の STP と RSTP のコスト値を表示します。有効な値は 1 - 65535 です。デフォルト値は 0 であり、自動的にコストがリンクタイプ別に計算されるように指定されます。次の値は、複数のリンクタイプのコストを表します: 10 Mbps では 100、100 Mbps では 19、1 Gbps では 4、10 Gbps では 2。
ポートがほかのブリッジに接続されているかどうかを指定します。有効な値は 1 (真) と 0 (偽) です。デフォルト値は 1 です。0 に設定されていると、どのタイプの BPDU も認識されない場合でも、デーモンはポートがほかのブリッジに接続されているとみなします。
接続モードタイプを指定します。有効な値は、true、false、および auto です。デフォルト値は auto であり、ポイントツーポイント接続が自動的に検出されます。true を指定すると、ポイントツーポイントモードが強制され、false を指定すると、標準のマルチポイントモードが強制されます。
STP および RSTP ポートの優先度値を設定します。有効な値は 0 - 255 です。デフォルト値は 128 です。STP および RSTP ポートの優先度値をポート識別子の先頭に付加することで、ブリッジの優先ルートポートが決定されます。数値を小さくすると、優先度が高くなります。
dladm create-bridge コマンドを使用して作成された各ブリッジは、svc:/network/bridge の同じ名前の付いたSMF インスタンスとして表されます。各インスタンスは、STP を実装する /usr/lib/bridged デーモンのコピーを実行します。
次のコマンド例では、pontevecchio というブリッジを作成します。
# dladm create-bridge pontevecchio
svc:/network/bridge:pontevecchio という SMF サービス、および /dev/net pontevecchio0 という可観測性ノードが作成されます。
安全のため、デフォルトで標準 STP がすべてのポートで実行されます。STP などの一部のブリッジプロトコル形式が実行されないブリッジでは、ネットワークで長期にわたる転送ループが発生する可能性があります。Ethernet のパケットにはホップ数または TTL が存在しないため、このようなループはネットワークにとって致命的です。
特定のポートが別のブリッジに接続されていない (たとえば、ホストシステムに直接ポイントツーポイント接続されている) ことが判明したときは、管理上そのポートの STP を無効にすることができます。ブリッジ上のすべてのポートで STP が無効になっている場合でも、引き続き STP デーモンは実行されます。デーモンが引き続き実行される理由は、次のとおりです。
新たに追加されるポートを処理するため
BPDU ガードを実装するため
必要に応じて、ポート上の転送を有効または無効にするため
ポートで STP が無効になっている場合、bridged デーモンは BPDU (BPDU ガード) の待機を続行します。デーモンは syslog を使用してエラーにフラグを付け、ポート上の転送を無効にして、重大なネットワークの構成ミスを示します。リンクステータスが停止してから再起動すると、またはリンクを手動で削除してから再度追加すると、再びリンクが有効になります。
ブリッジの SMF サービスインスタンスを無効にすると、STP デーモンが停止したときに、そのポート上のブリッジ転送も停止します。インスタンスが再起動すると、STP は初期状態から起動します。
dladm create-bridge -P trill コマンドを使用して作成された各ブリッジは、svc:/network/bridge および svc:/network/routing/trill の同じ名前の付いた SMF インスタンスとして表されます。svc:/network/routing/trill の各インスタンスでは、TRILL プロトコルを実装する /usr/lib trilld デーモンのコピーが実行されます。
次のコマンド例では、bridgeofsighs というブリッジを作成します。
# dladm create-bridge -P trill bridgeofsighs
svc:/network/bridge:bridgeofsighs とsvc:/network/routing/trill:bridgeofsighs という 2 つの SMF サービスが作成されます。さらに、/dev/net/bridgeofsighs0 という可観測性ノードも作成されます。
各ブリッジインスタンスには、「可観測性ノード」が割り当てられます。このノードは、/dev/net/ ディレクトリに表示され、ブリッジ名の末尾に 0 を付加した名前が付けられます。
可観測性ノードは、snoop および wiresha k ユーティリティーで使用することを目的としています。このノードは、パケット転送が暗黙的に破棄される点を除いて、標準の Ethernet インタフェースと同様に動作します。可観測性ノード上の IP は plumb することができず、パッシブオプションを使用しない限り、バインド要求 (DL_BIND_REQ) も実行できません。
可観測性ノードが使用されると、ユーザーが使用可能なブリッジで処理されるすべてのパケットの未変更コピーが 1 つ作成されます。この動作は、従来のブリッジの「監視」ポートと同様であり、通常の DLPI の「プロミスキャスモード」規則の対象になります。pfmod、または snoop と wireshark ユーティリティーの機能を使用すると、VLAN ID に基づいてフィルタリングできます。
配信されたパケットは、ブリッジで受信されたデータを表します。
注意 - ブリッジングプロセスで VLAN タグが追加、削除、または変更される場合、表示されるデータには、このプロセスが発生する前の状態が記述されます。さまざまなリンクで別々の default_tag 値が使用されると、このようなまれな状況で混乱する可能性があります。 |
特定のリンクで転送および受信されるパケットを (ブリッジングプロセスの完了後に) 確認するには、可観測性ノード上ではなく、個々のリンクで snoop コマンドを実行します。
可観測性ノードの詳細は、「ネットワーク仮想化およびリソース制御のための可観測性機能」を参照してください。
次の節では、構成でブリッジが使用された場合にリンク動作がどのように変化するかついて説明します。
標準のリンク動作の詳細は、「仮想ローカルエリアネットワークの管理」を参照してください。
次に、ブリッジが有効になっているときのリンク動作の相違点について説明します。
リンク起動 (DL_NOTE_LINK_UP) およびリンク停止 (DL_NOTE LINK_DOWN) の通知は集約して配信されます。つまり、すべての外部リンクがリンク停止ステータスを示しているときは、MAC 層を使用している上位のクライアントにもリンク停止イベントが表示されます。ブリッジ上の任意の外部リンクがリンク起動ステータスを示しているときは、すべての上位クライアントにリンク起動が表示されます。
この集約されたリンク起動およびリンク停止の報告が実行される理由は、次のとおりです。
リンク停止が表示されると、リンク上のノードは到達不能になります。ブリッジングコードにより別のリンク経由で引き続きパケットを送受信できる場合は、これに該当しません。実際のリンクステータスを必要とする管理アプリケーションは、既存の MAC 層のカーネル統計を使用してステータスを表示できます。このようなアプリケーションは、ハードウェアのステータス情報を報告し、転送には関与しないという点で、IP などの通常のクライアントとは異なります。
すべての外部リンクが停止すると、ブリッジ自体がシャットダウンしたかのようにステータスが表示されます。このような特殊なケースでは、何も到達できない可能性があるとシステムで認識されます。すべてのインタフェースが「実体」であり (仮想ではなく)、すべてが接続解除されている場合は、ローカルのみの通信を許可する際にブリッジを使用できないというトレードオフがあります。
リンク固有の機能はすべて汎用になっています。実際の出力リンクは完全にクライアントによって決定されるわけではないため、特殊なハードウェアの高速化機能がサポートされているリンクでは、これらの機能を使用できません。ブリッジ転送機能は、宛先 MAC アドレスに基づいて出力リンクを選択する必要があり、この出力リンクはブリッジ上の任意のリンクにすることができます。
デフォルトでは、システムに構成された VLAN は、ブリッジインスタンス上のすべてのポート間で転送されます。ベースとなるリンクがブリッジの一部である場合に、dladm create-vlan または dladm create-vnic -v コマンドを呼び出すと、該当ブリッジリンク上に指定された VLAN の転送も有効になります。
リンク上に VLAN を構成して、ブリッジ上のその他のリンク間の転送を無効にするには、dladm set-linkprop コマンドで forward プロパティーを設定して、転送を無効にする必要があります。
ベースとなるリンクがブリッジの一部として構成されているときに、ブリッジングで VLAN を自動的に有効にするには、dladm create-vlan コマンドを使用します。
標準準拠の STP では、VLAN は無視されます。ブリッジングプロトコルは、タグなし BPDU メッセージを使用して 1 つのループなしのトポロジのみを計算し、このツリーを使用してリンクを有効および無効にします。ネットワークでプロビジョニングされている複製リンクは、STP によって自動的に無効になっても、構成された VLAN が接続解除されないように構成する必要があります。つまり、ブリッジされたバックボーンのあらゆるところですべての VLAN を実行するか、すべての冗長リンクを慎重に検査する必要があります。
TRILL は、複雑な STP の規則に従う必要はありません。その代わりに、TRILL は自動的に、VLAN タグが変更されていないパケットをカプセル化して、ネットワーク経由で渡します。つまり、TRILL は、単一のブリッジネットワーク内で同じ VLAN ID が再利用されている場合、分離された VLAN を結び付けます。
これは、4094 の制限よりも多くの VLAN セットを管理するために、ネットワークの分離されたセクションで VLAN タグを再利用することがある STP との重要な相違点です。このようにネットワークを管理する際には TRILL を使用できませんが、プロバイダベースの VLAN などのその他のソリューションは実装できる場合があります。
VLAN を使用した STP ネットワークでは、STP によって「不正な」リンクが無効になったときに、VLAN パーティション分割を回避するようにフェイルオーバーの特性を構成することが困難になる可能性があります。分離された VLAN で失われる比較的小さい機能性は、TRILL モデルの堅牢性で十分に補うことができます。
ブリッジは許可された VLAN セットおよび default_tag プロパティーをリンクごとに検査することで、転送を実行します。一般的なプロセスは次のとおりです。
入力 VLAN の決定。このタスクは、リンクでパケットが受信されると開始されます。パケットが受信されると、VLAN タグがチェックされます。タグが存在しない場合や、タグが優先度のみ (タグがゼロ) の場合は、該当するリンクに構成された default_tag (ゼロに設定されていない場合) が内部 VLAN タグとみなされます。タグが存在しない、またはゼロで、default_tag がゼロの場合は、パケットが無視されます。タグなしの転送は実行されません。タグが存在し、default_tag に等しい場合も、パケットが無視されます。それ以外の場合は、入力タグが入力 VLAN とみなされます。
リンクメンバーシップのチェック。入力 VLAN がこのリンクで許可された VLAN として構成されていない場合は、パケットが無視されます。その後、転送が計算され、出力リンクにも同じチェックが行われます。
タグの更新。出力リンクの VLAN (この時点でゼロ以外) が default_tag に等しい場合は、優先度に関係なく、パケット上のタグ (存在する場合) が削除されます。出力リンクの VLAN が default_tag に等しくない場合は、タグが現在存在しなければ追加され、そのタグが出力パケットに設定され、現在の優先度がパケットにコピーされます。
注 - 転送で複数のインタフェースに送信される場合 (ブロードキャスト、マルチキャスト、および不明な宛先の場合) は、出力リンクごとに個別に出力リンクのチェックおよびタグの更新を行う必要があります。転送はタグ付きの場合も、タグなしの場合もあります。
次の例は、ブリッジ構成およびブリッジングサービスに関する情報を表示する方法を示しています。
次のコマンドを実行すると、ブリッジに関する情報を取得できます。
# dladm show-bridge BRIDGE PROTECT ADDRESS PRIORITY DESROOT tonowhere trill 32768/66:ca:b0:39:31:5d 32768 32768/66:ca:b0:39:31:5d sanluisrey stp 32768/ee:2:63:ed:41:94 32768 32768/ee:2:63:ed:41:94 pontoon trill 32768/56:db:46:be:b9:62 32768 32768/56:db:46:be:b9:62
次のコマンドを実行すると、ブリッジに関する TRILL ニックネーム情報を取得できます。
# dladm show-bridge -t tonowhere NICK FLAGS LINK NEXTHOP 38628 -- simblue2 56:db:46:be:b9:62 58753 L -- --