Related Posts Plugin for WordPress, Blogger...

1、前言

Cisco Catalyst 2960 and 2960-S Series Switches 預設值的情況下,以及搭配安裝 RHEL 4.8 AS 作業系統的主機,只要 RHEL 設定網卡 Bonding 功能,之後在 2960 Switch Console 及 Logging 上會一直看到類似如下訊息 (約 10 秒出現一次)。
00:08:42: %SW_MATM-4-MACFLAP_NOTIF: Host 0015.1736.984a in vlan 1 is flapping between port Gi0/10 and port Gi0/9
00:08:56: %SW_MATM-4-MACFLAP_NOTIF: Host 0015.1736.984a in vlan 1 is flapping between port Gi0/9 and port Gi0/10
00:09:11: %SW_MATM-4-MACFLAP_NOTIF: Host 0015.1736.984a in vlan 1 is flapping between port Gi0/10 and port Gi0/9
00:09:27: %SW_MATM-4-MACFLAP_NOTIF: Host 0015.1736.984a in vlan 1 is flapping between port Gi0/10 and port Gi0/9
00:09:43: %SW_MATM-4-MACFLAP_NOTIF: Host 0015.1736.984a in vlan 1 is flapping between port Gi0/9 and port Gi0/10

查看 Cisco Systems Catalyst 2960 Switch System Message Guide 文件內容,可知若有上述訊息出現請檢查是否接線有 Loop 的情況發生,但檢查後發現接線並無 Loop 情況且 Switch 有啟用 Spanning-Tree 功能,但上述訊息還是不斷出現。

文章目錄

1、前言
2、實作環境
3、安裝及設定
4、解法一、由 RHEL 主機方面下手
          步驟1.檢查 RHEL Bonding 設定
          步驟2.改變 RHEL Bonding 設定
5、解法二、由 Cisco Switch 方面下手
          步驟1.改變 Switch 設定
          補充說明
6、參考

2、實作環境

  • Cisco Catalyst 2960G [Version 12.2(35)SE5]
  • RHEL 4.8 AS [bond0、eth1、eth2]

3、安裝及設定

上述怪異訊息出現的原因,我們可分為二方面來著手,您可改變 RHEL 的 Bonding 設定,或者改變 Cisco 2960 Switch 的設定即可。

  • 解法 1: 將 RHEL Bonding 模式改為 Mode=1 (即 Fault-Tolerance Active-Backup 模式)。
  • 解法 2: 將 Switch 中 Bonding 相對應的 Port 設定 Channel-Group 且 Mode 為 on 即可。

4、解法一、由 RHEL 主機方面下手

步驟1.檢查 RHEL Bonding 設定

此例中 Bonding 網卡為 eth1、eth2,而 Bonding 網卡為 bond0 其 Bonding 模式目前為 Load Balancing (Round-Robin) 模式。(請尊重 Weithenn 的辛勞!!)
#cat /etc/sysconfig/network-scripts/ifcfg-bond0
 DEVICE=bond0
 BOOTPROTO=none
 ONBOOT=yes
 NETWORK=192.168.1.0
 NETMASK=255.255.255.0
 IPADDR=192.168.1.10
 USERCTL=no
#cat /etc/sysconfig/network-scripts/ifcfg-eth1
 DEVICE=eth1
 BOOTPROTO=none
 HWADDR=00:15:17:36:98:4A
 ONBOOT=yes
 MASTER=bond0
 SLAVE=yes
 USERCTL=no
#cat /etc/sysconfig/network-scripts/ifcfg-eth2
 DEVICE=eth2
 BOOTPROTO=none
 HWADDR=00:15:17:36:98:4B
 ONBOOT=yes
 MASTER=bond0
 SLAVE=yes
 USERCTL=no
#cat /etc/modprobe.conf
 alias eth1 e1000
 alias eth2 e1000
 alias scsi_hostadapter megaraid_sas
 alias scsi_hostadapter1 ata_piix
 alias bond0 bonding       //bonding 設定
 options bond0 miimon=100  //bonding 設定 (未指定 mode 則為 mode=0)


步驟2.改變 RHEL Bonding 設定

Bonding 設定檔為 /etc/modprobe.conf 在預設情況下若不指定 Mode 則為 Mode=0 即 Load Balancing (Round-Robin),經過實測後若設為此模式但 Switch 未設定 Channel-Group 則模擬網路斷線發生時大約會掉 3 ~ 8 個封包,而此次的需求並非合併頻寬還是網路的備援而以,因此請設定 Mode=1 也就是 Fault-Tolerance Active-Backup 模式,經實測模擬網路斷線發生時大約只會掉 1 個封包而以,有關 Bonding 模式可參考 Linux Horizon - Bonding (Port Trunking)
#vi /etc/modprobe.conf
 alias eth1 e1000
 alias eth2 e1000
 alias scsi_hostadapter megaraid_sas
 alias scsi_hostadapter1 ata_piix
 alias bond0 bonding                                      
 options bond0 miimon=100 mode=1      //修改此行設定,在結尾加上 mode=1

將 RHEL 的 Bonding 設定檔更改並重新啟動 RHEL 後,便可以發現 Switch 便不會再出現類似下列錯誤訊息:
00:08:42: %SW_MATM-4-MACFLAP_NOTIF: Host 0015.1736.984a in vlan 1 is flapping between port Gi0/10 and port Gi0/9
00:08:56: %SW_MATM-4-MACFLAP_NOTIF: Host 0015.1736.984a in vlan 1 is flapping between port Gi0/9 and port Gi0/10
00:09:11: %SW_MATM-4-MACFLAP_NOTIF: Host 0015.1736.984a in vlan 1 is flapping between port Gi0/10 and port Gi0/9
00:09:27: %SW_MATM-4-MACFLAP_NOTIF: Host 0015.1736.984a in vlan 1 is flapping between port Gi0/10 and port Gi0/9
00:09:43: %SW_MATM-4-MACFLAP_NOTIF: Host 0015.1736.984a in vlan 1 is flapping between port Gi0/9 and port Gi0/10


5、解法二、由 Cisco Switch 方面下手

步驟1.改變 Switch 設定

此例中 RHEL Bonding 網卡分別接至 Switch 的 Port 9 及 Port 10,登入 Switch 後設定這 2 Port 為 Channel-Group 即可,設定完成後便 Switch 便不會再出現錯誤訊息。
Switch#conf t                                        //進入Configure模式
Switch(config)#int range g0/9-10                   //進入Port 9 ~ 10
Switch(config-if-range)#channel-group 1 mode on   //設定Port 9,10 Channel-Group且Mode為on
 Creating a port-channel interface Port-channel 1

Cisco 2960 Switch 的 Channel-Group 有如下模式。
Switch(config-if)#channel-group 2 mode ?
  active     Enable LACP unconditionally
  auto       Enable PAgP only if a PAgP device is detected
  desirable  Enable PAgP unconditionally
  on         Enable Etherchannel only
  passive    Enable LACP only if a LACP device is detected


補充說明

  • 更新 IOS 版本: 此次實作 2960G 為 Version 12.2(35)SE5 有更新至最新 IOS Version 12.2(53)SE5,若不作任何設定仍會出現錯誤訊息。
  • 其它 Module: 很怪異的是此錯誤訊息僅會在 2960G 上出現,有嘗試過將相同環境應用於 2950、2970 上均不會出現此錯誤訊息,這點實在很怪異。

6、參考

文章標籤: