デフォルトでは、複数のインタフェースを備えたシステム (マルチホームホストとも呼ばれる) は、ルーティングテーブル内のトラフィックの宛先への最長一致ルートに基づいてネットワークトラフィックをルーティングします。宛先への長さが等しいルートが複数存在する場合、Oracle Solaris はこれらのルートにトラフィックを分散させるために等コストマルチパス (ECMP) アルゴリズムを適用します。
この方法でのトラフィックの分散が、常に最適であるというわけではありません。たとえば、ある IP パケットが、そのパケット内の IP 発信元アドレスと同じサブネット上に存在しないマルチホームホスト上のインタフェース経由で送信される可能性があります。さらに、送信パケットが特定の受信要求への応答 (ICMP エコー要求など) である場合は、要求と応答が同じインタフェースをたどらない可能性があります。このタイプのトラフィックルーティング構成を、非対称ルーティングと呼びます。インターネットサービスプロバイダ (ISP) が RFC 3704 (http://www.rfc-editor.org/rfc/bcp/bcp84.txt) に記載されているイングレスフィルタリングを実装している場合は、非対称ルーティング構成のために送信パケットが ISP によって破棄されることがあります。
RFC 3704 は、インターネット全体にわたるサービス拒否 (DoS) 攻撃の制限を目的にしています。この目的に従うには、ネットワークを対称ルーティング用に構成する必要があります。IP の hostmodel プロパティーを使用して、この要件を満たすことができます。このプロパティーは、マルチホームホスト経由で受信または送信されている IP パケットの動作を制御します。
hostmodel プロパティーは、3 つの値のいずれかに設定できます。
RFC 1122 で定義されている強い終端システム (ES) モデルに対応します。この値によって、対称ルーティングが実装されます。
RFC 1122 で定義されている弱い ES モデルに対応します。この値では、マルチホームホストは非対称ルーティングを使用します。
優先ルートを使用してパケットルーティングを構成します。ルーティングテーブル内に複数の宛先ルートが存在する場合、優先ルートは、送信パケットの IP 発信元アドレスが構成されているインタフェースを使用するルートです。このようなルートが存在しない場合、送信パケットは、そのパケットの IP 宛先への一致する最長のルートを使用します。
たとえば、次のようにして、マルチホームホストに対して IP パケットの対称ルーティングを実装します。
# ipadm set-prop -p hostmodel=strong ipv4 # ipadm set-prop -p hostmodel=strong ipv6 # ipadm show-prop -p hostmodel ip PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE ipv6 hostmodel rw strong -- weak strong, src-priority, weak ipv4 hostmodel rw strong -- weak strong, src-priority, weak