コンソールサーバー

情報システム営業部TOP-LogicalSolutions-コンソールサーバー- PORT BONDING-お問い合わせ-資料請求フォーム


最終更新:2014年2月25日


Logical Solutions SCSコンソールサーバ ポートボンディング(トランキング)の設定例

SCSのポートボンディングはLinuxの一機能として提供されています.

SCSには2つのネットワークインターフェースを持っており,それぞれにIPアドレスを割りつけて別々に使うことができ,管理ネットワークとユーザーネットワークの2つのネットワークに接続することが可能です.さらにV2.1-0以降のファームウェアを持つSCSでは,2つのネットワークインターフェースを一つにまとめる(ポートボンディング)を実装して,一つのIPアドレスを2つの物理インターフェースで共有し,リダンダントなネットワーク接続を確保することができるようになりました.以下にポートボンディング(トランキング)の具体的な設定例を説明します.

この例では,192.168.0.0/24のネットワークに接続するSCSの2つのポートeth0とeth1をbond0として一つにまとめて,192.168.0.6に設定します.ボンディングインターフェースのMACアドレスには通常最初のスレーブインターフェース(この場合 eth0)のものが自動的に使われます.スイッチを選ばない active-backup の構成をとして,リンクの監視には MII (リンク状態)をモニターします.

注記:使用すべきボンディングのモードは,使用するスイッチの機能と接続の構成に依存します.詳しくはBONDING HOWTO を参照下さい(日本語訳に誤訳がありますので原版をお読みになることをおすすめします). ボンディングの各方式については,この文書にわかりやすく説明されています.

この例では,モード1(アクティブバックアップ active-backup)に設定します.
  • モード0:SCSの2つのネットワークポートをボンディングして,トランキング(EtherChannel)をサポートする1台のスイッチングハブに接続します.2つのポート(スレーブ)を交互に使って送信します.負荷分散と冗長性を提供します.
  • モード1:SCSの2つのネットワークポートをボンディングして,複数のスイッチングハブに接続する,あるいはトランキングをサポートしない一台のスイッチに接続します.一つのポート(スレーブ)だけがアクティブであり、そのポートが故障したときのみもう一つのポートがアクティブになります.切り換え時にはスイッチングハブにポートが変わったことを学習させねばなりません.冗長性を提供します。
  • その他のモードも用意されていますので, BONDING HOWTO を参照下さい.

ボンディングインターフェースの設定

  1. モジュールの設定

    /etc/modules.conf ファイルに次の2行があることを確認します(SCSでは設定済み).
    alias bond0 bonding
    options bonding miimon=100 mode=1 <- この設定例では,mode=1 (アクティブバックアップ)で動作し,MIIのリンク状態を監視します.Linkが切れると切り換えます.
    miimon=100 は MII Polling Interval (ms): 100 を意味します.
    あるいは
    options bonding mode=1 arp_interval=100 arp_ip_target=192.168.0.100 <- この設定例では,mode=1 (アクティブバックアップ)で動作し,ARP監視を使います.この例では監視ターゲットとして192.168.0.100を使い,100ms間隔で監視します.Linkはつながったまま通信できなくなる事象に対応するにはこの方法を使います.

    この設定の詳細については man modules.conf を参照ください.
    ラウンドロビンにするには;
    options bonding miimon=100 <- この設定例では,初期値の mode=0 (ラウンドロビン)で動作します.ネットワークスイッチの設定も必要になります.

  2. マスターインターフェースの設定

    /etc/sysconfig/network-scripts ディレクトリにある次のファイルの内容を変更します.

    /etc/sysconfig/network-scripts/ifcfg-bond0
    DEVICE=bond0
    ONBOOT=no
    BOOTPROTO=none

    DEVICE=bond0
    IPADDR=192.168.0.6 <-- ボンディングされたネットワークポート(群)の使うIPアドレス
    NETMASK=255.255.255.0 <-- ボンディングしたネットワークポートのネットマスク
    NETWORK=192.168.0.0 <-- ボンディングしたネットワークポートのネットワークアドレス
    BROADCAST=192.168.0.255 <-- ボンディングしたネットワークポートのブロードキャストアドレス
    GATEWAY=192.168.0.1 <-- ボンディングしたネットワークポートのデフォールトゲートウェイ
    ONBOOT=yes
    BOOTPROTO=none
    USERCTL=no
    のように設定します.

  3. スレーブインターフェース eth0 と eth1 の設定

    /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.6
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.1

    DEVICE=eth0
    USERCTL=no
    ONBOOT=yes
    MASTER=bond0
    SLAVE=yes
    BOOTPROTO=none
    のように変更します.

    /etc/sysconfig/network-scripts/ifcfg-eth1
    DEVICE=eth1
    ONBOOT=no
    BOOTPROTO=none
    USERCTL=no
    TYPE=Ethernet
    ## bonding options
    ## see /usr/local/doc/networking/bonding.txt
    #MASTER=bond0
    #SLAVE=yes

    DEVICE=eth1
    ONBOOT=yes
    BOOTPROTO=none
    USERCTL=no
    TYPE=Ethernet
    ## bonding options
    ## see /usr/local/doc/networking/bonding.txt
    MASTER=bond0
    SLAVE=yes
    のように変更します.

  4. syslog の設定変更

    /etc/syslog.conf
    に次の行を加えて,リンクの状態を書き出すようにします.
    kern.=info /var/log/kernel.info
    syslogdを再起動します.
    # service syslog restart

  5. ネットワークの再起動と設定の確認

    モジュールの再ロードにはシステムのリブートが必要になります.
    # reboot

    ログの確認
    # tail /var/log/kernel.info

    ネットワーク設定の確認
    # ifconfig -a
    bond0     Link encap:Ethernet  HWaddr 00:0C:83:00:01:C0
              inet addr:192.168.0.6  Bcast:192.168.0.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
              RX packets:34108 errors:0 dropped:0 overruns:0 frame:0
              TX packets:1098 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:3177710 (3.0 Mb)  TX bytes:112731 (110.0 Kb)
    
    eth0      Link encap:Ethernet  HWaddr 00:0C:83:00:01:C0
              inet addr:192.168.0.6  Bcast:192.168.0.255  Mask:255.255.255.0
              UP BROADCAST SLAVE MULTICAST  MTU:1500  Metric:1
              RX packets:26343 errors:0 dropped:0 overruns:0 frame:0
              TX packets:1090 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:100
              RX bytes:2435216 (2.3 Mb)  TX bytes:111267 (108.6 Kb)
              Interrupt:11 Base address:0xd000
    
    eth1      Link encap:Ethernet  HWaddr 00:0C:83:00:01:C0
              inet addr:192.168.0.6  Bcast:192.168.0.255  Mask:255.255.255.0
              UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
              RX packets:7765 errors:0 dropped:0 overruns:0 frame:0
              TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:100
              RX bytes:742494 (725.0 Kb)  TX bytes:1464 (1.4 Kb)
              Interrupt:12 Base address:0xf000
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)


    ポンディングインターフェースの動作モードの確認

    ポートボンディングの動作モードは /opt/net/bond* のディレクトリに記録されます. /etc/modules.conf に mode=1 (active backup) を設定した場合の例を示します.

    #cat /proc/net/bond0/info
    Bonding Mode: fault-tolerance (active-backup) <- mode=1 アクティブバックアップモードになっている
    Currently Active Slave: eth1 <- eth1 側が動作している
    MII Status: up
    MII Polling Interval (ms): 100 <- miimon=100 切断検出のためのポーリングを 100ms ごとに実行
    Up Delay (ms): 0
    Down Delay (ms): 0
    Multicast Mode: all slaves

    Slave Interface: eth1
    MII Status: up
    Link Failure Count: 0 <- リンク障害のカウント

    Slave Interface: eth0
    MII Status: up
    Link Failure Count: 1 <- リンク障害のカウント(すでに障害が一回発生した)



  6. スイッチングハブの設定

    ポートボンディング(トランキング)の動作は,/etc/modules.confの設定に加えて,使用するスイッチングハブの動作にも依存します.

    モード1(アクティブバックアップ)にボンディングした場合は,トランキング(EtherChannel)をサポートしない普通のスイッチの2つのポートや,2台の別々のスイッチのポートに接続できます.

    モード0(ラウンドロビン)にポートボンディングしたネットワークポートを1台のスイッチングハブに接続する時には,スイッチングハブ側のそれらのポートがトランキング(EtherChannel)に対応するように設定します.

    その他のモードについては,BONDING HOWTO を参照下さい.


以上で設定と基本的な動作確認は終わりました.2つのネットワークインターフェースへの接続のいずれかを故意に切断して/opt/net/bond*/infoの内容が変化すること,ログに記録されることを確認してください.SCSはパッシブで,自身はパケットを送出することがありませんから,切り換えをスイッチが認識するにはSCSからなにかを送信する必要があります.例えば, eth0 と etih0 をポートボンディングアクティブバックアップに設定した場合に ping 8.8.8.8 などを eth0 を通じで送出した後で, eth0 のネットワーク接続を切断すると eth0 から送信するようになります.

ポートボンディングの動作は,ネットワークスイッチや他の機器との関係も影響します.ボンディングインターフェースの構築と運用ははLinuxの機能として提供されており,ユーザーの責任で行っていただく必要があります。弊社としてはLinuxとネットワーキングのサポートは致しかねます.

以上