ユーザ用ツール

サイト用ツール


サイドバー

目次

ホーム










.

device:switch:lag.html


Top#スイッチに戻る

リンクアグリゲーションで複数の物理回線を束ねる(LAG,LACP)

リンクアグリゲーションとは

  • 複数の物理線を論理的に1本にし、帯域を上げる技術
  • 複数の物理線を利用することで、1本障害が発生しても影響を受けないようにする。
  • スタックの機器と接続することで冗長構成
  • 2台のスイッチを仮想的に1台にする技術ではない。スイッチ同士をつないだら、カスケード
  • リンクアグリゲーションの線はActive, Activeで動く、Active/Standbyではない。
  • 物理層の冗長化技術。
  • LAG(Link Aggregation Group)を作る

リンクアグリゲーションとは

  • 一番右の構成の場合、L3につながっているアップリンク2本がダウンしたら、サーバに接続しているダウンリンクを強制的にダウンさせないと、サーバ側ではダウン検知していないのに、通信ができなくなってしまいます。

注意

複数の物理線があっても、機器同士は基本的に1本の線で通信します。
どの物理線を使うかの分散方法を指定することができます。

高負荷を考慮してLAGを組む場合、アルゴリズムも考慮する必要がります。
1G 4本でLAGを組むのではだめで、10G 1本にした方がよい場合もあります。

呼び方

同じことでも呼び方は色々あります。

呼び方 備考
リンクアグリゲーション 一般的な呼び方
イーサチャネル シスコ用語
トランク HPE、F5の用語

構成方法

リンクアグリゲーションの方法には、「静的」「LACP」「PAgP」の3種類の方法があります。

静的 LACPに対応していない場合に使われる
LACP Link Aggregation Control Protocol
IEEE802.3ad
Active 自分でLACPを送信して、積極的に論理リンクを作ろうとする
一般的にはPassiveではなく、Activeにする
Passive 自分でPAgPを送信せず、受け取ったら論理リンクを作る
PAgP Port Aggregation Protocol
シスコ独自のプロトコル
シスコ間でも使われない
Desirable 自分でPAgPを送信して、積極的に論理リンクを作ろうとする
一般的にはAutoではなく、Desirableにする
Auto 自分でPAgPを送信せず、受け取ったら論理リンクを作る
どの方式にするか
  1. LACPに対応している機器なら、LACPにする
  2. LACPに対応していない機器のみ、静的にする

静的よりもLACPの方がよい理由

LACPだと、リンクダウンを伴わない障害を正しく検知してくれます。

例えば、スイッチがメディアコンバータ(メディコン)を介してつながっている時に、
メディコンの先が障害になっている場合、静的だとパケットを投げ、破棄されますが、
LACPだと、通信できないことを把握して、経路を使わないようにしてくれます。

参考:【図解】リンクアグリゲーションの仕組み〜負荷分散、LACPとStaticの違いやメリットデメリット、条件等〜 | SEの道標


LACPデータユニットの交換間隔。SLOWかFAST

LACPデータユニットの交換間隔には、SLOW(30秒ごと)とFAST(1秒ごと)の2種類があります
SLOWが一般的です。

Switch(config)# lacp rate fast


Cisco負荷分散の設定

dst-ip 宛先IPアドレスで負荷分散
dst-mac 宛先Macアドレスで負荷分散
src-dst-mac 送信元、宛先両方のMacアドレスの組み合わせで負荷分散
src-ip 送信元IPアドレスで負荷分散
src-mac 送信元Macアドレスで負荷分散
ボックス型のデフォルト
設定例
Switch(config)# port-channel load-balance src-dst-ip
デフォルトに戻す手順
no port-channel load-balance


Linux Bondingとスイッチのリンクアグリゲーションの組み合わせ

一般的に使われているのはmode=1, mode=2, mode=4だけ

Mode No. Mode Name 説明 スイッチ設定
0 balance-rr
load balancing (round-robin)
高速通信
使用できるスレーブデバイスから順にデータの送受信を行い、負荷分散と冗長化に対応します。
デフォルトで、modeを設定しないとこれになる。
LAG(静的)
1 active-backup
fault-tolerance
・よく利用される設定
・1つのスレーブインタフェースのみをActiveとし、送信
・受信はActiveポートからのみARP応答することで誘導
Access Port
2 Balance-XOR
load balancing (xor)
同じ送信先のMACアドレス対して同じスレーブを使用し、負荷分散と冗長化に対応 LAG(静的)
3 Broadcast
fault-tolerance
LAG(静的)
4 802.3ad
IEEE 802.3ad Dynamic link aggregation
IEEE 802.3ad 動的リンクアグリゲーションのポリシーを設定します。 LAG(LACP)
5 Balance-tlb
transmit load balancing
送信時のみ負荷分散を行い受信時は冗長化(MACアドレスを引き継ぐ)
6 Balance-alb
adaptive load balancing
送受信共に負荷分散を行う

スタックで、Active/Activeにしたい時の注意事項

スタッキングやMC-LAGを組んでいる場合には、mode=0ではなくmode=2を使わなければならない。

ここでmode=0を使ってラウンドロビンでパケットを送信してしまうと、ネットワーク内ではどこをとおっているかわからなくなります。一見、効率良さそうに見えますがTCP/IPの世界で順番が入れ替わってしまうと、通信をやり直す必要があります。そのためイーサネットスイッチでは基本的にフローベースの通信を行うことで順番が入れ替わることを防ぎながら、宛先に到達できるようにしています。そのフローベースの通信をさせる設定というのがmode=2: balance-xorであり、スイッチ側の設定はStatic LAGと呼ばれる設定になります。

Linux Bonding mode=0の恐怖 - テックセンター - Blog - テックセンター - Dell コミュニティ


Cisco設定例

イーサチャネルの確認 switch# show etherchannel summary

EtherChannel設定(静的) mode on

  • mode on
  • Catalyst間で利用される
Switch# configure terminal
Switch(config) # interface range gigabitethernet 1/0/1 , gigabitethernet2/0/1
Switch(config-if-range) # switchport trunk encapsulation dot1q
Switch(config-if-range) # switchport mode trunk
Switch(config-if-range) # channel-group 1 mode on

EtherChannel設定(LACP) mode active

  • mode active
  • Catalystとサーバ間で利用される
Switch# configure terminal
Switch(config) # interface range gigabitethernet 1/0/1 , gigabitethernet2/0/1
Switch(config-if-range) # switchport trunk encapsulation dot1q
Switch(config-if-range) # switchport mode trunk
Switch(config-if-range) # channel-group 1 mode active

EtherChannel設定(PAgP) mode desirable non-silent

  • mode desirable non-silent
  • あまり利用されない
Switch# configure terminal
Switch(config) # interface range gigabitethernet 1/0/1 , gigabitethernet2/0/1
Switch(config-if-range) # switchport trunk encapsulation dot1q
Switch(config-if-range) # switchport mode trunk
Switch(config-if-range) # channel-group 1 mode desirable non-silent

EtherChannel時のVLAN追加方法

VLANを追加する時は、必ずポートチャネルに対してのみ行います。
ポートチャネルに設定すると、メンバーポートにも反映されます。

Switch(config)#int po 1
Switch(config-if)# switchport trunk allowed vlan add 15,16

メンバーポートに設定してしまうと、ポートチャネルとメンバーポートに相違が発生してしまい、 物理インタフェースとポートチャネルがダウンしてしまいます。

GigabitEthernet1/0/1 is up, line protocol is down (suspended)
Port-channel1 is down, line protocol is down (notconnect)


VMwareとCiscoの接続例

VMware

vmnic0とvmnic1で、NICチーミングにします。
ロードバランシングを「IPハッシュに基づいたルート」にします。
そうすると、発信元と宛先IPアドレスのハッシュによりアップリンクがActive/Activeで使われるようになります。

NICチーミングのためのロードバランシング方式
発信元仮想ポートIDに基づいたルート デフォルトの設定
Active-Active
物理NICの割り当ては仮想マシン単位
IPハッシュに基づいたルート Active-Active
1台の仮想マシンでも、送信先のIPが異なれば、別のNICを使う
発信元MACハッシュに基づいたルート Active-Active
結果的に、物理NICの割り当ては仮想マシン単位になる
明示的なフェイルオーバー順序を使用 Active-Standby

Cisco

vmnic0とvmnic1が同一ポートとみなせるようport-chanelを設定します。
ネゴシエーションは使えないようなので「channel-group mode on」で静的にしましょう。

interface Port-channel1
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 1,10,11
switchport mode trunk
!
interface GigabitEthernet1/0/1
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 1,10,11
switchport mode trunk
channel-group 1 mode on
spanning-tree portfast
!
interface GigabitEthernet2/0/1
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 1,10,11
switchport mode trunk
channel-group 1 mode on
spanning-tree portfast
!
参考








Top#スイッチに戻る


device/switch/lag.html.txt · 最終更新: 2021/12/21 01:21 by kurihara

ページ用ツール