Cisco IOS Layer2 – Ether channel(LAG)の設定方法

スポンサーリンク

ether channelの設定方法についてまとめます。PAgP, LACP程度の概念だけでなく、Load BalancingアルゴリズムやLACP decision makerなどのより深い動作も理解しておきましょう。

コマンド一覧

このシナリオで重要なコマンド一覧は以下の通りです。

Switch(config)# port-channel load-balance [< dst-ip | dst-mac | src-dst-ip | src-dst-mac | src-ip | src-mac >]
Switch(config)# lacp system-priority priority <priority>

Switch(config-if)# channel-group <num> mode [< active | auto | desirable | on | passive >]
Switch(config-if)# pagp learn-method [< aggregation-port | physical-port >]
Switch(config-if)# pagp port-priority <priority>
Switch(config-if)# lacp port-priority <priority>

構成図

下記構成で動作確認を行います。

                       f0/13-15
     +------------+          +------------+
     |            +----------+           | 
     |    SW 1    +----------+    SW 2   | 
     |            +----------+           | 
     +------------+          +------------+
                 f0/13-15
 [SW1]
vlan 10,20
!
interface Vlan10
 ip address 192.168.10.1 255.255.255.0
!
interface Vlan20
 ip address 192.168.20.1 255.255.255.0

 [SW2]
vlan 10,20
!
interface Vlan10
 ip address 192.168.10.2 255.255.255.0
!
interface Vlan20
 ip address 192.168.20.2 255.255.255.0

設定全文は下記ファイルです。詳細設定は下記を参照ください。

SW1
!
version 12.2
no service pad
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname SW1
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
system mtu routing 1500
ip subnet-zero
!
!
!
!
!
!
!
!
!
!
spanning-tree mode pvst
spanning-tree extend system-id
!
vlan internal allocation policy ascending
!
!
!
!
interface FastEthernet0/1
!
interface FastEthernet0/2
!
interface FastEthernet0/3
!
interface FastEthernet0/4
!
interface FastEthernet0/5
!
interface FastEthernet0/6
!
interface FastEthernet0/7
!
interface FastEthernet0/8
!
interface FastEthernet0/9
!
interface FastEthernet0/10
!
interface FastEthernet0/11
!
interface FastEthernet0/12
!
interface FastEthernet0/13
!
interface FastEthernet0/14
!
interface FastEthernet0/15
!
interface FastEthernet0/16
 shutdown
!
interface FastEthernet0/17
 shutdown
!
interface FastEthernet0/18
 shutdown
!
interface FastEthernet0/19
 shutdown
!
interface FastEthernet0/20
 shutdown
!
interface FastEthernet0/21
 shutdown
!
interface FastEthernet0/22
!
interface FastEthernet0/23
!
interface FastEthernet0/24
!
interface GigabitEthernet0/1
!
interface GigabitEthernet0/2
!
interface Vlan1
 no ip address
 shutdown
!
interface Vlan10
 ip address 192.168.10.1 255.255.255.0
!
interface Vlan20
 ip address 192.168.20.1 255.255.255.0
!
ip classless
ip http server
ip http secure-server
!
!
!
control-plane
!
!
line con 0
 logging synchronous level 0 limit 20
line vty 0 4
 login
line vty 5 15
 login
!
end
SW2
!
version 12.2
no service pad
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname SW2
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
system mtu routing 1500
ip subnet-zero
!
!
!
!
!
!
!
!
!
!
spanning-tree mode pvst
spanning-tree extend system-id
!
vlan internal allocation policy ascending
!
!
!
!
interface FastEthernet0/1
!
interface FastEthernet0/2
!
interface FastEthernet0/3
!
interface FastEthernet0/4
!
interface FastEthernet0/5
!
interface FastEthernet0/6
!
interface FastEthernet0/7
!
interface FastEthernet0/8
!
interface FastEthernet0/9
!
interface FastEthernet0/10
!
interface FastEthernet0/11
!
interface FastEthernet0/12
!
interface FastEthernet0/13
!
interface FastEthernet0/14
!
interface FastEthernet0/15
!
interface FastEthernet0/16
 shutdown
!
interface FastEthernet0/17
 shutdown
!
interface FastEthernet0/18
 shutdown
!
interface FastEthernet0/19
 shutdown
!
interface FastEthernet0/20
 shutdown
!
interface FastEthernet0/21
 shutdown
!
interface FastEthernet0/22
!
interface FastEthernet0/23
!
interface FastEthernet0/24
!
interface GigabitEthernet0/1
!
interface GigabitEthernet0/2
!
interface Vlan1
 no ip address
 shutdown
!
interface Vlan10
 ip address 192.168.10.2 255.255.255.0
!
interface Vlan20
 ip address 192.168.20.2 255.255.255.0
!
ip classless
ip http server
ip http secure-server
!
!
!
control-plane
!
!
line con 0
 logging synchronous level 0 limit 20
line vty 0 4
 login
line vty 5 15
 login
!
end

仕様説明

基本設定

以下のコマンドでether channelを定義する事ができます。なお、non-silentは対抗機がPAgP対応している場合に使用可能なオプションです。対抗機からのPAgPフレームがない場合はdown状態にする事で片方向リンク障害を検知する事ができます。

Switch(config-if)# channel-group <num> mode [< active | auto [non-silent] | desirable [non-silent] | on | passive >]

なお、物理interfaceとport channel interfaceの設定は必ず一致させるように注意して下さい。例えば、物理interfaceがrouted port(no switchport)ならば、port channel interfaceもrouted portになるように設定する必要があります。設定例は以下の通りです。

interface range FastEthernet 0/13 - 15
 switchport trunk encapsulation dot1q
 switchport mode trunk
 channel-group 12 mode on
!
interface Port-channel12
 switchport trunk encapsulation dot1q
 switchport mode trunk

ロードバランスアルゴリズム

以下のコマンドで、channelをロードバランスするアルゴリズムを決定する事ができます。

Switch(config)# port-channel load-balance [< dst-ip | dst-mac | src-dst-ip | src-dst-mac | src-ip | src-mac >]

PAgP legacy 対応

catalyst switchには、”pagp learn-method”, “port-priority”という下位互換のためのコマンドが存在します。これらコマンドは基本的に投入する必要はありませんが、cat 1900 seriesのようなlegacy機器と接続する場合はこれらコマンドが必要です。

switchのMAC addressを学習する方式として、以下2方式が存在します。legacy機器と接続する場合は、physical leanerを設定する必要があります。設定コマンドは以下の通りです。

learning method 説明
aggregation-port learner 論理port(channel)に基づくMAC addressの学習を行います。
殆どの機器のデフォルト設定は、aggregation-port learnerです。
physical-port learner 物理portに基づくMAC addressの学習を行います。
cat 1900のようなlegacy機器はaggregation-port learnerのみ対応しております。
Switch(config-if)# pagp learn-method [< aggregation-port | physical-port >]

physical-port learnerを使用する場合は、”channelになりやすさ”の優先度を定義する事ができます。以下のコマンドでpriorityを定義する事ができ、値が大きいほどchannelになりやすくなります。

Switch(config-if)# pagp port-priority <priority>

physical-port learnerを使用する場合は、MAC address tableがフラッピングしないようロードバランシングアルゴリズムをsrc-macとして下さい。

Switch(config)# port-channel load-balance src-mac

LACP decision maker

LACPは最大16個まで設定可能で、そのうち最大8個までがActiveになる事ができます。どのinterfaceがActiveになるかはpriorityに基づいて決定します。

LACPはLACP sys-idが小さいスイッチがどのinterfaceがActiveになるかの決定権を持ちます。LACP sys-idは16bitのLACP system priorityと32bitのMAC addressによって構成されます。LADP system priorityの設定コマンドは以下の通りです。

Switch(config)# lacp system-priority priority <priority>

LACPの決定権を取得したスイッチは、LACP port idが小さいportをLACPのメンバーとします。LACP port idは16bitのLACP port priorityとport番号によって構成されます。LACP port priorityの設定コマンドは以下の通りです。

Switch(config-if)# lacp port-priority <priority>

基本設定

設定投入

SW1, SW2間でchannelを構成します。

 [SW1, SW2]
interface range FastEthernet 0/13 - 15
 switchport trunk encapsulation dot1q
 switchport mode trunk
 channel-group 12 mode on
!
interface Port-channel12
 switchport trunk encapsulation dot1q
 switchport mode trunk

動作確認

channelが形成された事を確認します。以下showコマンドで”P”と出力される事を確認します。

 [SW1]
SW1#show etherchannel summary
Flags:  D - down        P - bundled in port-channel
        I - stand-alone s - suspended
        H - Hot-standby (LACP only)
        R - Layer3      S - Layer2
        U - in use      f - failed to allocate aggregator

        M - not in use, minimum links not met
        u - unsuitable for bundling
        w - waiting to be aggregated
        d - default port


Number of channel-groups in use: 1
Number of aggregators:           1

Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
12     Po12(SU)         -        Fa0/13(P)   Fa0/14(P)   Fa0/15(P)

SW1#

SW1, SW2間の疎通も確認しておきましょう。

 [SW1]
SW1#ping 192.168.10.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/5/9 ms
SW1#ping 192.168.20.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.20.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/5/9 ms
SW1#

ロードバランスアルゴリズム

設定投入

以下コマンドでロードバランシングアルゴリズムを変更します。

 [SW1, SW2]
port-channel load-balance src-dst-ip

動作確認

以下showコマンドにより、ロードバランシングアルゴリズムが変わった事を確認します。

 [SW1]
SW1#show etherchannel load-balance
EtherChannel Load-Balancing Configuration:
        src-dst-ip

EtherChannel Load-Balancing Addresses Used Per-Protocol:
Non-IP: Source XOR Destination MAC address
  IPv4: Source XOR Destination IP address
  IPv6: Source XOR Destination IP address

SW1#

PAgP legacy 対応

設定投入

Legacy機器とのPAgP接続を担保する設定例は以下の通りです。

 [SW1, SW2]
port-channel load-balance src-mac
!
interface range FastEthernet 0/13 - 15
 channel-group 12 mode desirable
 pagp learn-method physical-port
!
interface FastEthernet0/13
 pagp port-priority 255

動作確認

showコマンドにより設定を確認します。Learning MethodやPAgP Priorityが変化している事が読み取れます。

 [SW1]
SW1#show pagp internal
Flags:  S - Device is sending Slow hello.  C - Device is in Consistent state.
        A - Device is in Auto mode.        d - PAgP is down
Timers: H - Hello timer is running.        Q - Quit timer is running.
        S - Switching timer is running.    I - Interface timer is running.

Channel group 12
                                Hello    Partner  PAgP     Learning  Group
Port      Flags State   Timers  Interval Count   Priority   Method  Ifindex
Fa0/13    SC    U6/S7   H       30s      1        255        Phy      5012
Fa0/14    SC    U6/S7   H       30s      1        128        Phy      5012
Fa0/15    SC    U6/S7   H       30s      1        128        Phy      5012
SW1#

LACP decision maker

設定投入

Legacy機器とのPAgP接続を担保する設定例は以下の通りです。

 [SW1]
lacp system-priority 1
!
interface range FastEthernet 0/13 - 15
 no channel-group 12
 channel-group 12 mode active
!
interface FastEthernet0/14
 lacp port-priority 0

 [SW2]
interface range FastEthernet 0/13 - 15
 no channel-group 12
 channel-group 12 mode active

動作確認

以下のdebugを有効にし、po12をshut/no shutします。f0/14, f0/13, f0/15と、LACP port priorityが小さい順にchannelに加わっている様子が読み取れます。

 [SW1]
SW1#debug etherchannel event
PAgP/LACP Shim Events debugging is on
SW1#
SW1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
SW1(config)#inter
SW1(config)#interface Port-channel 12
SW1(config-if)#shutdown
SW1(config-if)#

 <omitted>

SW1(config-if)#no shutdown

 <omitted>

SW1(config-if)#
*Mar  1 00:54:29.929: FEC: pagp_switch_add_port_to_agport_list: afb->nports++ = 1 [Fa0/14]
*Mar  1 00:54:29.929: FEC: lacp_switch_add_port_to_agport_internal: Fa0/14 added to aggregator Po12 list
SW1(config-if)#
*Mar  1 00:54:31.708: FEC: pagp_switch_add_port_to_agport_list: afb->nports++ = 2 [Fa0/13]
*Mar  1 00:54:31.708: FEC: lacp_switch_add_port_to_agport_internal: Fa0/13 added to aggregator Po12 list
*Mar  1 00:54:31.884: FEC: pagp_switch_add_port_to_agport_list: afb->nports++ = 3 [Fa0/15]
*Mar  1 00:54:31.884: FEC: lacp_switch_add_port_to_agport_internal: Fa0/15 added to aggregator Po12 list
SW1(config-if)#
*Mar  1 00:54:32.613: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/14, changed state to up
*Mar  1 00:54:32.714: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/13, changed state to up
*Mar  1 00:54:33.008: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/15, changed state to up
SW1(config-if)#
*Mar  1 00:54:33.595: %LINK-3-UPDOWN: Interface Port-channel12, changed state to up
*Mar  1 00:54:34.602: %LINEPROTO-5-UPDOWN: Line protocol on Interface Port-channel12, changed state to up
SW1(config-if)#
タイトルとURLをコピーしました