Solaris 10のIPマルチパス

親愛なるhabrosocietyこんにちは。



ある日、稼働中のサーバーでネットワークインターフェイスの集約を構成する必要がありましたが、(驚いたことに)ハブでipmpテクノロジーに関する記事を1つも見つけられなかったため、Solaris 10でのIPMP(IPマルチパス)のインストールと実装に関する簡単なエッセイを書くことにしました。記事には主に実用的な負荷が伴うことをすぐに警告したいので、このトピックの理論的要素を完全に明らかにしなかった場合は事前に謝罪します。

そのため、すべての作業はOracle Sun T3-1サーバーで行われ、ILOM、Solaris 10ボード、および2枚のネットワークカードigb0およびigb1がパッチされました。



root @ s1-solaris1#cat / etc / release

Oracle Solaris 10 8/11 s10s_u10wos_17b SPARC

著作権1983、2011、Oracleおよび/またはその関連会社。 無断複写・転載を禁じます。

2011年8月23日組立



root @ s1-solaris1#uname -a

SunOS s1-solaris1 5.10 Generic_147440-09 sun4v sparc sun4v



しかし、最初に、少し理論:





IPMPは、物理チャネル(インターフェース)を組み合わせて、発信トラフィックの負荷と着信トラフィックのフォールトトレランスのバランスをとる技術です。 solarisでは、ipmpはバージョン8以降存在し、in.mpathdデーモンによって制御されています。





IPMPは2つのモードで動作できます



-プローブモード

-リンク状態モード



プローブモードは、サーバーがネットワーク上のゲートウェイまたはホストにicmpリクエストを送信する動作モードであり(これらのテストホストのいくつかまではsolarisで構成できます)、これに基づいて、リンクの機能を確認します。



リンク状態モード-ネットワークインターフェイスの物理状態、つまり インターフェースの状態(アップ/ダウン)。



さて、それですべてです、理論は十分です-)、私が何かを逃した場合、許してください。



そして、今、最も興味深い



私の場合、プローブモードipmpは次のアドレスで構成されました。

igb0-10.0.0.1

igb1-10.0.0.2

igb0:1(ipmp virt-address)-10.0.0.3



インターフェイスの構成ファイルを次の形式にしましょう。



root @ s1-solaris1#cat /etc/hostname.igb0



s1-solaris1-igb0ネットマスク+ブロードキャスト+非推奨-フェールオーバーグループIPMP-1

addif s1-solaris1ネットマスク+ブロードキャスト+



root @ s1-solaris1#cat /etc/hostname.igb1



s1-solaris1-igb1ネットマスク+ブロードキャスト+非推奨-フェイルオーバーグループIPMP-1



IPMP-1グループ値に、都合の良いグループ名を入力します。 すべての値(ブロードキャスト、非推奨、フェイルオーバーなど)をペイントしません。 この記事はipmpの実用的な使用に焦点を当てています。これらの値の定義はman ifconfigで見ることができます。



また、/ etc / hostsファイルを編集する必要があります。



root @ s1-solaris1#cat / etc / hosts



#インターネットホストテーブル



:: 1 localhost

127.0.0.1 localhost

10.0.0.3 s1-solaris1 s1-solaris1.name.domain.ru loghost

10.0.0.1 s1-solaris1-igb0

10.1.0.2 s1-solaris1-igb1



そして、システムを再起動して、私たちとのインターフェースが上記の設定になっていることを確認します



root @ s1-solaris1#init 6



ifconfig -aの出力を確認しましょう。仮想インターフェイスigb0が必要です:1



root @ s1-solaris1#ifconfig -a

lo0:flags = 2001000849 <UP、LOOPBACK、RUNNING、MULTICAST、IPv4、VIRTUAL> mtu 8232インデックス1

inet 127.0.0.1ネットマスクff000000

igb0:flags = 9040843 <UP、BROADCAST、RUNNING、MULTICAST、DEPRECATED、IPv4、NOFAILOVER> mtu 1500 index 2

inet 10.0.0.1 netmask ffffff00 broadcast 10.0.0.255

グループ名IPMP-1

エーテル0:21:28:d2:1c:c6

igb0:1:flags = 1000842 <ブロードキャスト、実行中、マルチキャスト、IPv4> mtu 1500インデックス2

inet 10.0.0.3 netmask ffffff00 broadcast 10.0.0.255

igb1:flags = 9040843 <UP、BROADCAST、RUNNING、MULTICAST、DEPRECATED、IPv4、NOFAILOVER> mtu 1500 index 3

inet 10.0.0.2 netmask ffffff00 broadcast 10.0.0.255

グループ名IPMP-1

エーテル0:21:28:d2:1c:c7



目標が達成されました。 ibg0:1仮想インターフェイスは、igb0インターフェイスを参照することにより機能します。 if_mpadmでこれを確認します。



root @ s1-solaris1#if_mpadm -d igb0



-d(切り離し)スイッチは、インターフェースをオフラインにします。



ifconfigの出力を見ると、仮想インターフェイスの機能がigb1に引き継がれ、サブインターフェイスigb1が作成されます:1



root @ s1-solaris1#ifconfig -a

lo0:flags = 2001000849 <UP、LOOPBACK、RUNNING、MULTICAST、IPv4、VIRTUAL> mtu 8232インデックス1

inet 127.0.0.1ネットマスクff000000

igb0:flags = 9040843 <UP、BROADCAST、RUNNING、MULTICAST、DEPRECATED、IPv4、NOFAILOVER> mtu 1500 index 2

inet 10.0.0.1 netmask ffffff00 broadcast 10.0.0.255

グループ名IPMP-1

エーテル0:21:28:d2:1c:c6

igb1:flags = 9040842 <UP、BROADCAST、RUNNING、MULTICAST、DEPRECATED、IPv4、NOFAILOVER> mtu 1500 index 3

inet 10.0.0.2 netmask ffffff00 broadcast 10.0.0.255

グループ名IPMP-1

エーテル0:21:28:d2:1c:c7

igb1:1:flags = 1000843 <ブロードキャスト、実行中、マルチキャスト、IPv4> mtu 1500インデックス3

inet 10.0.0.3 netmask ffffff00 broadcast 10.0.0.255



-rスイッチを使用してすべてを取り戻しましょう(再接続)



root @ s1-solaris1#if_mpadm -r igb0



最後に、プローブベースモードはデフォルトでデフォルトルートにpingを送信し、ネットワークカードがアクティブであることを確認します。存在しない場合は、マルチキャストアドレス224.0.0.1にpingを送信します。したがって、特定の状況に応じて、このルートを追加する必要があります:



root @ s1-solaris1#route add default 10.0.0.10



以上です。 ご清聴ありがとうございました。



All Articles