Overview
CiscoSystems IOS に実装されている FlexLink の動作を確認する。
Reference
- Flex Link (CiscoSystems)
Flex Link Function
CiscoSystems社のドキュメントによれば FlexLink は下記の動作をする。
- 障害を検出
- Primary Link で学習された Dynamic Unicast MAC Address を Standby Link に移行
- Standby Link を Forwarding State に移行
- 新しい Active Interface 経由で Dummy Multicast Packet を送信
Check Point
FlexLink機能確認
上記のFlexLink動作の中で確認する事項は
- SW01 で Dummy Multicast Packet の送信
- SW02 で Dummy Multicast Packet の受信
- SW02 で mac address-table で Host の MAC Address の Forward Interface の変化
である。
通信影響確認
FlexLinkによる通信経路切り替りによる通信の影響
Summary
結果
ここでは動作確認の結果を記載する。
- Link down とほぼ同時にForwardingPortの切り替りとDummy Multicast Packetを送出
- Catalyst2960S / 15.2(2)E9 の IOS では無通信のMAC Addressは15秒程度でmac address-tableから削除される現象が発生
- PingのPacket Lossは1秒程度以内
となった。
再検証
また Dummy Multicast Packet を SW02 が受信した時の mac address-table の aging time の動作については別途、動作確認することとする。
Network Diagram

Environment
SW01 / SW02
Cisco IOS Software, C2960S Software (C2960S-UNIVERSALK9-M), Version 15.2(2)E9, RELEASE SOFTWARE (fc4) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2018 by Cisco Systems, Inc. Compiled Sat 08-Sep-18 14:56 by prod_rel_team ROM: Bootstrap program is C2960S board boot loader BOOTLDR: C2960S Boot Loader (C2960S-HBOOT-M) Version 12.2(55r)SE, RELEASE SOFTWARE (fc1)
SW03 / SW04
Cisco IOS Software, C3750 Software (C3750-IPSERVICES-M), Version 12.2(35)SE2, RELEASE SOFTWARE (fc1) Copyright (c) 1986-2007 by Cisco Systems, Inc. Compiled Tue 06-Feb-07 01:27 by antonino Image text-base: 0x00003000, data-base: 0x01240AEC ROM: Bootstrap program is C3750 boot loader BOOTLDR: C3750 Boot Loader (C3750-HBOOT-M) Version 12.2(25r)SEE4, RELEASE SOFTWARE (fc1)
PC
$ cat /etc/os-release NAME="Ubuntu" VERSION="18.04.4 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.4 LTS" VERSION_ID="18.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=bionic UBUNTU_CODENAME=bionic $
Configuration
SW01
! interface GigabitEthernet1/0/1 switchport backup interface Gi1/0/2 switchport backup interface Gi1/0/2 preemption mode forced ! interface GigabitEthernet1/0/2 ! interface GigabitEthernet1/0/11 switchport access vlan 2 ! ! interface Vlan1 no ip address shutdown ! interface Vlan2 ip address 192.168.201.1 255.255.255.0 ! ip default-gateway 192.168.201.254 ! ntp server 192.168.1.10 !
SW02
! interface GigabitEthernet1/0/1 ! interface GigabitEthernet1/0/2 ! interface GigabitEthernet1/0/11 switchport access vlan 2 ! interface Vlan1 ip address 192.168.202.2 255.255.255.0 ! interface Vlan2 ip address 192.168.201.2 255.255.255.0 ! ip default-gateway 192.168.201.254 ! ntp server 192.168.1.10 !
SW03 / SW04
- Default Configuration
MAC Address
- f0de.f12e.f993 : PC NIC
- c07b.bcbb.fcc0 : SW01 Interface vlan1
Methods
Function で記載した動作を確認するために
- SW01 : console message で interface down / up を確認する
- SW02 : PC NIC と SW01 interface vlan 1 の MAC Address の forwarding port が切り替わっていることを show mac address-table dynamic command で確認する
- PC : 切替に伴う Ping の Packet Loss を確認する
以上の3点である。
Traffic off / Link down

SW01 : Link down
sw01# Jul 11 15:17:39: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/0/1, changed state to down Jul 11 15:17:40: %LINK-3-UPDOWN: Interface GigabitEthernet1/0/1, changed state to down sw01#
SW02 : mac address-table state
sw02#show mac address-table dynamic
Load for five secs: 5%/0%; one minute: 6%; five minutes: 6%
Time source is NTP, 15:17:21.127 JST Sat Jul 11 2020
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 001b.5455.e902 DYNAMIC Gi1/0/1
1 0023.5dbd.4d82 DYNAMIC Gi1/0/2
1 0023.5dbd.4dc0 DYNAMIC Gi1/0/2
1 f0de.f12e.f993 DYNAMIC Gi1/0/1
2 c89c.1d24.2ae2 DYNAMIC Gi1/0/11
2 c89c.1d24.2ae5 DYNAMIC Gi1/0/11
Total Mac Addresses for this criterion: 6
sw02#
sw02#show mac address-table dynamic
Load for five secs: 8%/0%; one minute: 6%; five minutes: 6%
Time source is NTP, 15:17:40.128 JST Sat Jul 11 2020 <----- Link down とほぼ同時
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 001b.5455.e902 DYNAMIC Gi1/0/1
1 0023.5dbd.4d82 DYNAMIC Gi1/0/2
1 0023.5dbd.4dc0 DYNAMIC Gi1/0/2
1 c07b.bcbb.fcc0 DYNAMIC Gi1/0/2
1 f0de.f12e.f993 DYNAMIC Gi1/0/2 <----- Interface切り替わり
2 c89c.1d24.2ae2 DYNAMIC Gi1/0/11
2 c89c.1d24.2ae5 DYNAMIC Gi1/0/11
Total Mac Addresses for this criterion: 7
sw02#
sw02#show mac address-table dynamic
Load for five secs: 12%/0%; one minute: 7%; five minutes: 6%
Time source is NTP, 15:17:53.718 JST Sat Jul 11 2020
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 001b.5455.e902 DYNAMIC Gi1/0/1
1 0023.5dbd.4d82 DYNAMIC Gi1/0/2
1 0023.5dbd.4dc0 DYNAMIC Gi1/0/2
1 c07b.bcbb.fcc0 DYNAMIC Gi1/0/2
1 f0de.f12e.f993 DYNAMIC Gi1/0/2
2 c89c.1d24.2ae2 DYNAMIC Gi1/0/11
2 c89c.1d24.2ae5 DYNAMIC Gi1/0/11
Total Mac Addresses for this criterion: 7
sw02#show mac address-table dynamic
Load for five secs: 12%/0%; one minute: 7%; five minutes: 6%
Time source is NTP, 15:17:54.342 JST Sat Jul 11 2020 <-----
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 001b.5455.e902 DYNAMIC Gi1/0/1
1 0023.5dbd.4d82 DYNAMIC Gi1/0/2
1 0023.5dbd.4dc0 DYNAMIC Gi1/0/2
2 c89c.1d24.2ae2 DYNAMIC Gi1/0/11
2 c89c.1d24.2ae5 DYNAMIC Gi1/0/11
Total Mac Addresses for this criterion: 5
sw02#
SW02 : mac address-table 保持時間
- SW02 で Port の切り替り確認:15:17:40.128
- SW02 で mac address-table から PC の MAC Addressが削除:15:17:54.342
- 経過時間:0:00:14.214
15秒程度で MAC Address Table から削除されている。
Traffic off / Link up

SW01 : Link up
sw01# Jul 11 15:22:55: %LINK-3-UPDOWN: Interface GigabitEthernet1/0/1, changed state to up Jul 11 15:22:56: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/0/1, changed state to up sw01# Jul 11 15:23:28: %BACKUP_INTERFACE-5-PREEMPT: Preempting interface Gi1/0/2 in backup pair (Gi1/0/1, Gi1/0/2), preemption mode is forced sw01#
SW02 : mac address-table state
sw02#show mac address-table dynamic
Load for five secs: 5%/0%; one minute: 6%; five minutes: 6%
Time source is NTP, 15:23:28.501 JST Sat Jul 11 2020
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 001b.5455.e902 DYNAMIC Gi1/0/1
1 0023.5dbd.4d82 DYNAMIC Gi1/0/2
1 0023.5dbd.4dc0 DYNAMIC Gi1/0/2
2 c89c.1d24.2ae2 DYNAMIC Gi1/0/11
2 c89c.1d24.2ae5 DYNAMIC Gi1/0/11
Total Mac Addresses for this criterion: 5
sw02#show mac address-table dynamic
Load for five secs: 5%/0%; one minute: 6%; five minutes: 6%
Time source is NTP, 15:23:29.381 JST Sat Jul 11 2020
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 001b.5455.e902 DYNAMIC Gi1/0/1
1 0023.5dbd.4d82 DYNAMIC Gi1/0/2
1 0023.5dbd.4dc0 DYNAMIC Gi1/0/2
1 c07b.bcbb.fcc0 DYNAMIC Gi1/0/1
1 f0de.f12e.f993 DYNAMIC Gi1/0/1 <----- 切り替り後
2 c89c.1d24.2ae2 DYNAMIC Gi1/0/11
2 c89c.1d24.2ae5 DYNAMIC Gi1/0/11
Total Mac Addresses for this criterion: 7
sw02#
中略
sw02#show mac address-table dynamic
Load for five secs: 6%/0%; one minute: 6%; five minutes: 6%
Time source is NTP, 15:23:43.685 JST Sat Jul 11 2020
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 001b.5455.e902 DYNAMIC Gi1/0/1
1 0023.5dbd.4d82 DYNAMIC Gi1/0/2
1 0023.5dbd.4dc0 DYNAMIC Gi1/0/2
1 c07b.bcbb.fcc0 DYNAMIC Gi1/0/1
1 f0de.f12e.f993 DYNAMIC Gi1/0/1
2 c89c.1d24.2ae2 DYNAMIC Gi1/0/11
2 c89c.1d24.2ae5 DYNAMIC Gi1/0/11
Total Mac Addresses for this criterion: 7
sw02#show mac address-table dynamic
Load for five secs: 6%/0%; one minute: 6%; five minutes: 6%
Time source is NTP, 15:23:44.660 JST Sat Jul 11 2020
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 001b.5455.e902 DYNAMIC Gi1/0/1
1 0023.5dbd.4d82 DYNAMIC Gi1/0/2
1 0023.5dbd.4dc0 DYNAMIC Gi1/0/2
2 c89c.1d24.2ae2 DYNAMIC Gi1/0/11
2 c89c.1d24.2ae5 DYNAMIC Gi1/0/11
Total Mac Addresses for this criterion: 5
sw02#
SW02 : mac address-table 保持時間
- 15:23:29.381 : SW02 で Port の切り替り確認
- 15:23:43.685 : SW02 で mac address-table から PC の MAC Addressが削除前
- 0:00:14.304 : 経過時間
15秒程度で MAC Address Table から削除されている。
Traffic on / Link down

SW01 : Link down
sw01# Jul 11 15:31:36: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/0/1, changed state to down Jul 11 15:31:37: %LINK-3-UPDOWN: Interface GigabitEthernet1/0/1, changed state to down sw01#
SW02 : mac address-table state
sw02#show mac address-table dynamic
Load for five secs: 5%/0%; one minute: 6%; five minutes: 6%
Time source is NTP, 15:31:38.478 JST Sat Jul 11 2020
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 001b.5455.e902 DYNAMIC Gi1/0/1
1 0023.5dbd.4d82 DYNAMIC Gi1/0/2
1 0023.5dbd.4dc0 DYNAMIC Gi1/0/2
1 c07b.bcbb.fcc0 DYNAMIC Gi1/0/2
1 f0de.f12e.f993 DYNAMIC Gi1/0/2
2 c89c.1d24.2ae2 DYNAMIC Gi1/0/11
2 c89c.1d24.2ae5 DYNAMIC Gi1/0/11
Total Mac Addresses for this criterion: 7
sw02#
中略
sw02#show mac address-table dynamic
Load for five secs: 6%/0%; one minute: 6%; five minutes: 6%
Time source is NTP, 15:32:07.242 JST Sat Jul 11 2020
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 001b.5455.e902 DYNAMIC Gi1/0/1
1 0023.5dbd.4d82 DYNAMIC Gi1/0/2
1 0023.5dbd.4dc0 DYNAMIC Gi1/0/2
1 f0de.f12e.f993 DYNAMIC Gi1/0/2
2 c89c.1d24.2ae2 DYNAMIC Gi1/0/11
2 c89c.1d24.2ae5 DYNAMIC Gi1/0/11
Total Mac Addresses for this criterion: 6
sw02#show mac address-table dynamic
Load for five secs: 6%/0%; one minute: 6%; five minutes: 6%
Time source is NTP, 15:32:07.855 JST Sat Jul 11 2020
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 001b.5455.e902 DYNAMIC Gi1/0/1
1 0023.5dbd.4d82 DYNAMIC Gi1/0/2
1 0023.5dbd.4dc0 DYNAMIC Gi1/0/2
2 c89c.1d24.2ae2 DYNAMIC Gi1/0/11
2 c89c.1d24.2ae5 DYNAMIC Gi1/0/11
Total Mac Addresses for this criterion: 5
sw02#
SW02 : mac address-table 保持時間
15:31:38.478 :
15:32:07.242 :
0:00:28.764 :
Ping
$ ping -c 100 -i 0.2 -w 0.8 192.168.202.2 | while read line; do echo `date +'%Y/%m/%d %H:%M:%S.%3N'` $line; done | tee -i pingt-linkdown.log 2020/07/11 15:31:32.134 PING 192.168.202.2 (192.168.202.2) 56(84) bytes of data. 2020/07/11 15:31:32.137 64 bytes from 192.168.202.2: icmp_seq=1 ttl=255 time=2.44 ms 2020/07/11 15:31:32.333 64 bytes from 192.168.202.2: icmp_seq=2 ttl=255 time=0.788 ms 中略 2020/07/11 15:31:34.951 64 bytes from 192.168.202.2: icmp_seq=15 ttl=255 time=1.96 ms 2020/07/11 15:31:35.150 64 bytes from 192.168.202.2: icmp_seq=16 ttl=255 time=0.681 ms 2020/07/11 15:31:35.760 64 bytes from 192.168.202.2: icmp_seq=19 ttl=255 time=1.51 ms 2020/07/11 15:31:35.961 64 bytes from 192.168.202.2: icmp_seq=20 ttl=255 time=1.77 ms 中略 2020/07/11 15:31:52.243 --- 192.168.202.2 ping statistics --- 2020/07/11 15:31:52.245 100 packets transmitted, 98 received, 2% packet loss, time 19909ms 2020/07/11 15:31:52.247 rtt min/avg/max/mdev = 0.681/1.852/5.746/1.021 ms $
Traffic on / Link up

SW01 : Link Up
sw01# Jul 11 15:40:34: %LINK-3-UPDOWN: Interface GigabitEthernet1/0/1, changed state to up Jul 11 15:40:35: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/0/1, changed state to up sw01# Jul 11 15:41:07: %BACKUP_INTERFACE-5-PREEMPT: Preempting interface Gi1/0/2 in backup pair (Gi1/0/1, Gi1/0/2), preemption mode is forced sw01#
SW02 : mac address-table state
sw02#show mac address-table dynamic
Load for five secs: 7%/0%; one minute: 6%; five minutes: 6%
Time source is NTP, 15:41:06.965 JST Sat Jul 11 2020
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 001b.5455.e902 DYNAMIC Gi1/0/1
1 0023.5dbd.4d82 DYNAMIC Gi1/0/2
1 0023.5dbd.4dc0 DYNAMIC Gi1/0/2
1 f0de.f12e.f993 DYNAMIC Gi1/0/2 <----- 切り替わり前
2 c89c.1d24.2ae2 DYNAMIC Gi1/0/11
2 c89c.1d24.2ae5 DYNAMIC Gi1/0/11
Total Mac Addresses for this criterion: 6
sw02#show mac address-table dynamic
Load for five secs: 7%/0%; one minute: 6%; five minutes: 6%
Time source is NTP, 15:41:07.726 JST Sat Jul 11 2020
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 001b.5455.e902 DYNAMIC Gi1/0/1
1 0023.5dbd.4d82 DYNAMIC Gi1/0/2
1 0023.5dbd.4dc0 DYNAMIC Gi1/0/2
1 c07b.bcbb.fcc0 DYNAMIC Gi1/0/1
1 f0de.f12e.f993 DYNAMIC Gi1/0/1 <----- 切り替わり後
2 c89c.1d24.2ae2 DYNAMIC Gi1/0/11
2 c89c.1d24.2ae5 DYNAMIC Gi1/0/11
Total Mac Addresses for this criterion: 7
sw02#
sw02#show mac address-table dynamic
Load for five secs: 9%/0%; one minute: 7%; five minutes: 6%
Time source is NTP, 15:41:34.256 JST Sat Jul 11 2020
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 001b.5455.e902 DYNAMIC Gi1/0/1
1 0023.5dbd.4d82 DYNAMIC Gi1/0/2
1 0023.5dbd.4dc0 DYNAMIC Gi1/0/2
1 f0de.f12e.f993 DYNAMIC Gi1/0/1
2 c89c.1d24.2ae2 DYNAMIC Gi1/0/11
2 c89c.1d24.2ae5 DYNAMIC Gi1/0/11
Total Mac Addresses for this criterion: 6
sw02#
SW02 : mac address-table 保持時間
15:41:06.965 : SW02 切り替え前を確認した時刻
15:41:07 : SW01 Link Down 時刻
15:41:07.726 : SW02 切り替えを確認した時刻
15:41:28.040:Ping の最後のPacket送信時刻
15:41:34.256 : mac address-table から削除されていることを確認した時刻
Ping
$ ping -c 300 -i 0.2 -w 0.8 192.168.202.2 | while read line; do echo `date +'%Y/%m/%d %H:%M:%S.%3N'` $line; done | tee -i pingt-linkup.log 2020/07/11 15:40:27.915 PING 192.168.202.2 (192.168.202.2) 56(84) bytes of data. 2020/07/11 15:40:27.917 64 bytes from 192.168.202.2: icmp_seq=1 ttl=255 time=1.43 ms 2020/07/11 15:40:28.116 64 bytes from 192.168.202.2: icmp_seq=2 ttl=255 time=1.81 ms 中略 2020/07/11 15:41:27.840 64 bytes from 192.168.202.2: icmp_seq=299 ttl=255 time=2.23 ms 2020/07/11 15:41:28.040 64 bytes from 192.168.202.2: icmp_seq=300 ttl=255 time=1.22 ms 2020/07/11 15:41:28.042 2020/07/11 15:41:28.044 --- 192.168.202.2 ping statistics --- 2020/07/11 15:41:28.046 300 packets transmitted, 300 received, 0% packet loss, time 60125ms 2020/07/11 15:41:28.049 rtt min/avg/max/mdev = 0.670/2.200/25.403/2.366 ms $
Dummy Multicast Packet
Dummy Multicast Packet は Destination MAC Address = 01:00:0c:cd:cd:cd の Packet である。
Cisco IOS では良く利用される Packet である。
SW01 でInterface GigabitEthernet 1/0/1 から GigabitEthernet 1/0/2 への切り替り時のPacketをWiresharkでCaptureすると下記のPacketが記録される。
No. Time Source Destination Protocol Length Port Info
10 12.856470435 Cisco_bb:fc:c0 STP-UplinkFast LLC 62 U, func=UI; SNAP, OUI 0x00000C (Cisco Systems, Inc), PID 0x0115
11 12.856471297 Cisco_bb:fc:c0 STP-UplinkFast ARP 62 Unknown ARP opcode 0x0115
12 12.856473690 0115.fc 000c.bb DDP 62 128 Unknown DDP protocol (17)
13 12.856473994 000f0000.000000000000 0115bbfc.808017000014 IPX 62 0x0002 CISCO PING
14 12.858636543 WistronI_2e:f9:93 STP-UplinkFast LLC 62 U, func=UI; SNAP, OUI 0x00000C (Cisco Systems, Inc), PID 0x0115
15 12.858637225 WistronI_2e:f9:93 STP-UplinkFast ARP 62 Unknown ARP opcode 0x0115
16 12.858637563 0115.00 000c.00 DDP 62 0 Unknown DDP protocol (00)
17 12.858978256 00000000.000000000000 01150000.000000000000 IPX 62 0x0000 Unknown (0x0000)
Source MAC Address
- c0:7b:bc:bb:fc:c0 : SW01 Interface Vlan1 MAC Address
- f0:de:f1:2e:f9:93 : PC NIC MAC Address
Protocol
- LLC
- ARP
- DDP
- IPX
Result
Dummy Multicast Packet
SW02 で PC の MAC Address を Source Addressとする Dummy Multicast Packet を受信
mac address-table に保持される時間
通信がない場合
PC の MAC Address を Source Address とする通信が無い場合、SW02 の mac address-table は上記で学習した PC の MAC Address を15秒程度維持した後に mac address-table から削除される現象が発生
通信がある場合
上記の期間(時間内)に通信がある場合 mac address-table にPC の MAC Address を保持
Consideration
mac address-table に保持される時間
Dummy Multicast Packet で学習した MAC Address を保持する時間以上の間隔がある通信は Interface の切替によって通信が復元しない可能性がある。
上記の現象が発生した場合は送信元 Host Device の ARP Cache がクリアされ ARP Request(Broadcast) を送信するまで通信は不可となる。
Dummy Multicast Packet で学習した MAC Address を mac address-table の aging time の時間保持しない理由は不明である。
mac address-table move update transmit/receive command
CiscoSystems社のDocumentやその他のWebサイトでは下記のcommandを設定する旨の記載があるが、本検証では特に設定することなく Dummy Multicast Packet を送受信している。
- mac address-table move update transmit
- mac address-table move update receive
機能実装・利用
FlexLink は CiscoSystems社 の独自実装の機能である。本検証で利用した IOS や機器以外で同様の動作をするのかは不明であり、利用する Hardware / Software で動作を確認して利用することを推奨する。