LAGG(4) | FreeBSD Kernel Interfaces Manual | LAGG(4) |
名称
lagg — アグリゲーション (集合) のリンクとフェイルオーバインタフェースのリンク書式
このドライバをカーネルにコンパイルするためには、次の行を利用者のカーネル設定ファイルに置きます:
もう一つの方法として、ブート時にモジュールとしてドライバをロードするためには、次の行を loader.conf(5) に置きます:
if_lagg_load="YES"
解説
lagg インタフェースは、耐故障性と高速リンクを提供する目的のために、1 つの仮想 lagg インタフェースとして複数のネットワークインタフェースの集合を可能にします。ifconfig laggN create コマンドを使用して lagg インタフェースを作成することができます。 laggproto proto proto オプションを使用して指定された異なったリンクアグリゲーションプロトコルを使用することができます。 laggport child-iface オプションを使用して、子供のインタフェースを追加することができ、 -laggport child-iface オプションを使用して子供のインタフェースを削除することができます。
ドライバは、現在、アグリゲーション (集合) プロトコル failover (デフォルト), fec, lacp, loadbalance, roundrobin と none をサポートします。プロトコルは、どのポートが発信トラフィックに使用されるか、そして、特定のポートが着信トラフィックを受け付けるかかどうかを決定します。インタフェースリンク状態は、ポートがアクティブであるかどうかを有効にするために使用されます。
- failover
-
アクティブポートのみを通してトラフィックを送信します。マスタポートが利用可能でなくなる、次のアクティブポートが使用されます。追加された最初のインタフェースは、マスタポートで、その後に追加されたインタフェースは、フェイルオーバデバイスとして使用されます。
デフォルトで、受信されたトラフィックは、それらがアクティブポートを通して受信されるときだけ、受け付けられます。特定のブリッジされたネットワークのセットアップに役に立つように、 net.link.lagg.failover_rx_all sysctl(8) 変数を 0 以外の値に設定することによって、この制約を緩和することができます。
- fec
- Cisco EtherChannel をサポートします。これは、 loadbalance モードの別名です。
- lacp
- IEEE 802.1AX (昔の 802.3ad) Link Aggregation Control Protocol (LACP) と Marker Protocol をサポートします。 LACP は、1 つ以上のリンクアグリゲーションされたグループ (Link Aggregated Groups) でピアとの 1 組のアグリゲーション可能なリンクを交渉します。各 LAG は、全二重オペレーションに設定された同じ速度のポートで構成されます。トラフィックは、最大のトータル速度で LAG のポートに渡ってバランスをとり、ほとんどの場合、すべてのポートを含む 1 つの LAG がしかありません。物理的な接続性の変更の場合には、リンクアグリゲーションは、急速に新しい設定に集中します。
- loadbalance
- ハッシュされたプロトコルヘッダ情報に基づくアクティブポートに渡って発信トラフィックのバランスをとり、任意のアクティブポートから着信トラフィックを受け付けます。これは、静的なセットアップであり、リンクをモニタするためにピア (相手側) または交換フレームでアグリゲーション (集合) を交渉しません。ハッシュには、イーサネットの発信元と宛先のアドレス、利用可能であるなら、VLAN タグ、IP の発信元と宛先アドレスを含んでいます。
- roundrobin
- すべてのアクティブなポートを通ってラウンドロビンスケジューラを使用して発信トラフィックを配信し、任意のアクティブなポートから着信トラフィックを受け付けます。
- none
- このプロトコルが何も行わないことが目的です: lagg インタフェース自体を無効にしないで、すべてのトラフィックを無効にします。
各 lagg インタフェースは、実行時にインタフェースクローニングを使用して作成されます。これは、 ifconfig(8) の create コマンド、または rc.conf(5) の cloned_interfaces 変数で最も簡単に行えます。
追加される最初のインタフェースの MTU は、 lagg MTU として使用されます。すべての追加インタフェースは、正確に同じ値を持つことが必要です。
loadbalance と lacp のモードは、計算しないようにすることが利用可能であるなら、ネットワークカードからの RSS ハッシュを使用します、そしてハッシュが無効か、またはプロトコルヘッダの情報をそれほど使用しないなら、これは、貧弱なトラフィック分配を与えます。 net.link.lagg.X.use_flowid sysctl(8) 変数を 0 に設定することによって、インタフェースごとにローカルのハッシュ計算を強制することができます、ここで X は、インタフェース番号です。新しいインタフェースのためのデフォルトは、 net.link.lagg.default_use_flowid sysctl(8) によって設定されます。
使用例
次のように、2 つの bge(4) ギガビットイーサネットインタフェースで LACP を使用して、リンクアグリゲーションを作成します:
# ifconfig bge0 up # ifconfig bge1 up # ifconfig lagg0 laggproto lacp laggport bge0 laggport bge1 \ 192.168.1.1 netmask 255.255.255.0
次の例は、2 つのネットワークデバイスを使用する有線と無線のネットワークの間のローミングをセットアップするためにアクティブなフェイルオーバインタフェースを使用します。有線のマスタインタフェースがプラグを抜かれるときは、いつも、無線のフェイルオーバデバイスが使用されます:
# ifconfig em0 up # ifconfig ath0 ether 00:11:22:33:44:55 # ifconfig create wlan0 wlandev ath0 ssid my_net up # ifconfig lagg0 laggproto failover laggport em0 laggport wlan0 \ 192.168.1.1 netmask 255.255.255.0
(無線デバイスの mac アドレスは、回避策として、配線されたデバイスに強制的にマッチされることに注意してください。)
歴史
lagg デバイスは、 FreeBSD 6.3 ではじめて登場しました。作者
lagg ドライバは、 <reyk@openbsd.org>によって trunk という名前で書かれました。 LACP の実装は、 NetBSD のために によって書かれました。バグ
システムとポートの優先度を含む、LACP の管理変数を設定する方法はありません。現在の実装は、常にアクティブモード LACP を実行し、システムとポートの優先度として 0x8000 を使用します。February 23, 2012 | FreeBSD |