本文簡要討論Catalyst 2948G-L3和4908G-L3第3層交換機上的分散式橋接表,並討論在交換機上配置網橋組時分散式網橋表和非對稱路由拓撲的影響。
本文件沒有特定需求。
本文中的範例設定是在實驗環境中使用以下裝置建立的(已清除設定):
執行Cisco IOS 12.0(7)W5(15d)的Catalyst 2948G-L3
兩台路由器(無特定型號或IOS)
用作伺服器的PC或其他工作站
本文檔中的配置是在隔離的實驗室環境中實施的。使用前,請確認您已瞭解任何組態或指令可能對網路造成的影響。已使用write erase 命令清除所有裝置上的配置並重新載入,以確保它們具有預設配置。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
Catalyst 2948G-L3交換器上有兩種典型的橋接組態:
所有埠都屬於一個網橋組;沒有第3層配置。
連線埠組屬於一個或多個橋接器群組;網橋虛擬介面(BVI)用於路由各種網橋組的流量。
在這兩種配置中,使用show bridge-group-number命令檢視網橋組中給定MAC地址的第2層轉發表項。
Catalyst 2948G-L3和4908G-L3交換器上的橋接器表專案實際上由至少兩個專案在內部形成,一個在來源介面(具有該MAC的裝置)上,另一個在目的地介面(根據訊框中的目的地MAC,來源為該MAC的流量目的地的介面)上。 這是因為在Catalyst 2948G-L3和4908G-L3交換器上填充橋接表的學習流程實際上是根據每個連線埠而不是整個交換器來分散的。
例如,考慮圖1中的拓撲。
圖1:具有兩台連線主機的Catalyst 2948G-L3交換器
在此拓撲中,假設介面fast 1和fast 2屬於同一網橋組。交換器中為每個MAC位址新增兩個橋接器表專案:一個在介面fast 1上,另一個在介面fast 2上,如下所示:
2948G-L3#show bridge 1 Total of 300 station blocks, 298 free Codes: P - permanent, S - self Bridge Group 1: Address Action Interface 0000.1111.1111 forward FastEthernet1 0000.2222.2222 forward FastEthernet2 2948G-L3#
此範例顯示,Catalyst 2948G-L3交換器已得知介面fast 1上的MAC位址000.111.1111,且介面fast 2上的MAC位址000.2222.2222。
在內部,每個MAC地址有兩個條目:一個在介面fast 1上,另一個在介面fast 2上。對於MAC地址0000.1111.1111,介面fast 1上的條目是「本地」條目,這意味著使用MAC 000.1111.1111的裝置直接或通過其他第2層裝置連線到此介面。
介面fast 2上的000.1111.1111條目是「遠端」條目,這意味著具有此MAC地址的裝置未連線到此介面。遠端網橋表條目指向具有MAC地址的裝置實際連線的介面(在本例中為interface fast 1)。
對於MAC地址0000.2222.2222,條目反轉 — interface fast 2具有用於MAC地址的本地條目,而interface fast 1具有用於指向interface fast 2的MAC地址的遠端條目。
圖2顯示了MAC地址如何儲存在全域性轉發表中,以及Catalyst 2948G-L3交換機上每個埠的內部網橋表的狀態。
圖2:全域性和每埠轉發表目的狀態
您可以使用show epc patricia interface <interface> mac檢視網橋表條目的實際內部狀態(patricia tree是用於儲存和訪問網橋表的資料結構)。 例如,以下是介面fast 1的橋接器表(「mac」)專案的內部狀態:
2948G-L3#show epc patricia interface fast 1 mac 1# MAC addr:0000.0000.0000 VC:0 Entry: 2# MAC addr:0900.2b01.0001 MyMAC 3# MAC addr:0180.c200.0000 MyMAC 4# MAC addr:0100.0ccc.cccd MyMAC 5# MAC addr:0100.0ccc.cccc MyMAC 6# MAC addr:0001.43a0.cc07 HsrpMAC 7# MAC addr:0000.2222.2222 IF Number:5 Entry:Remote 8# MAC addr:0000.1111.1111 IF Number:4 Entry:Local Total number of MAC entries: 8 2948G-L3#
請注意,介面fast 1的「本地」條目用於MAC地址0000.1111.111,而「遠端」條目用於MAC地址0000.2222.222。
介面fast 2則相反:
2948G-L3#show epc patricia interface fast 2 mac 1# MAC addr:0000.0000.0000 VC:0 Entry: 2# MAC addr:0900.2b01.0001 MyMAC 3# MAC addr:0180.c200.0000 MyMAC 4# MAC addr:0100.0ccc.cccd MyMAC 5# MAC addr:0100.0ccc.cccc MyMAC 6# MAC addr:0001.43a0.cc08 HsrpMAC 7# MAC addr:0000.2222.2222 IF Number:5 Entry:Local 8# MAC addr:0000.1111.1111 IF Number:4 Entry:Remote Total number of MAC entries: 8 2948G-L3#
這裡,介面fast 2的「本地」條目用於MAC地址0000.2222.222,而「遠端」條目用於MAC地址0000.1111.111。
在Catalyst 2948G-L3或4908G-l3交換器中使用橋接組態以及非對稱路由拓撲的情況下,對分散的橋接表會有重要的功能影響。具體而言,使用非對稱路由橋接可能導致網橋組內發生週期性未知的單點傳播泛洪。
非對稱路由意味著通過Catalyst 2948G-L3交換機進出給定IP子網的流量模式不會遵循同一路徑。例如,考慮圖3中的拓撲。
圖3:非對稱路由拓撲
在此拓撲中,源自IP子網10.10.10.0/24且目的地為伺服器1(10.1.1.20)的流量進入路由器1,並通過介面gig 1轉發到IP子網10.1.1.0/24。介面gig 1連線到Catalyst 2948G-L3交換機上的介面gig 49。
介面gig 49與介面fast 1一樣,屬於網橋組1,伺服器1連線到該組。
當伺服器1將流量傳送回IP子網10.10.10.0/24上的請求主機時,它使用預設網關。伺服器1的預設網關是連線到介面gig 50的Router 2。介面gig 50也是網橋組1的成員。
關於此拓撲,需要注意的重要一點是,雖然從IP子網10.10.10.0/24發往伺服器1的流量是由路由器1傳送的,但是從伺服器1到IP子網10.10.10.0/24的返回流量會通過路由器2,而不是路由器1。
結果是,介面gig 49(連線到路由器1)不會定期看到來自伺服器1(MAC地址000.3333.333)的流量。 這意味著介面gig 49最終會使伺服器1的「遠端」網橋表條目過期,從而迫使Catalyst 2948G-L3交換機將介面gig 49上收到的發往伺服器1的幀泛洪到網橋組中的所有埠。
詳細分析為什麼會發生這種情況。假設所有ARP表和網橋表都是空的。
Router 1收到來自10.10.10.100且目的地為伺服器1(10.1.1.20)的流量。
伺服器1的路由器1的ARP出介面gig 1。
Catalyst 2948G-L3交換機在介面gig 49上接收廣播ARP,並在網橋組中的所有埠上泛洪該幀 — 這會導致介面gig 49上出現MAC 0000.1111.1111的本地條目,而網橋組中的所有介面上出現MAC 000.111.1111的遠端條目。
伺服器1收到ARP請求並響應ARP — 這會導致介面fast 1上的MAC 000.333.3333出現本地條目,介面gig 49上的MAC 000.3333.3333出現遠端條目。
2948G-L3#show bridge 1 Total of 300 station blocks, 298 free Codes: P - permanent, S - self Bridge Group 1: Address Action Interface 0000.3333.3333 forward FastEthernet1 0000.1111.1111 forward Gi49 2948G-L3#show epc patricia interface gig 49 mac 1# MAC addr:0000.3333.3333 IF Number:4 Entry:Remote 2# MAC addr:0001.43a0.cd07 HsrpMAC 3# MAC addr:0000.1111.1111 IF Number:52 Entry:Local 4# MAC addr:0100.0ccc.cccd MyMAC 5# MAC addr:0180.c200.0000 MyMAC 6# MAC addr:0900.2b01.0001 MyMAC 7# MAC addr:0100.0ccc.cccc MyMAC Total number of MAC entries: 7 2948G-L3#show epc patricia interface fast 1 mac 1# MAC addr:0000.0000.0000 VC:0 Entry: 2# MAC addr:0900.2b01.0001 MyMAC 3# MAC addr:0180.c200.0000 MyMAC 4# MAC addr:0100.0ccc.cccd MyMAC 5# MAC addr:0100.0ccc.cccc MyMAC 6# MAC addr:0001.43a0.cc07 HsrpMAC 7# MAC addr:0000.3333.3333 IF Number:4 Entry:Local 8# MAC addr:0000.1111.1111 IF Number:52 Entry:Remote Total number of MAC entries: 8 2948G-L3#
此外,伺服器1現在具有路由器1(MAC地址為0000.1111.111.10.10.10.1)的完整ARP條目。
Server1% arp -a Net to Media Table Device IP Address Mask Flags Phys Addr ------ -------------------- --------------- ----- --------------- hme0 10.1.1.1 255.255.255.255 00:00:11:11:11:11 hme0 10.1.1.20 255.255.255.255 SP 00:00:33:33:33:33 hme0 224.0.0.0 240.0.0.0 SM 01:00:5e:00:00:00 Server1%
路由器1使用MAC地址0000.3333.3333完成10.1.1.20的ARP條目。
Router1#show arp Protocol Address Age (min) Hardware Addr Type Interface Internet 10.1.1.1 - 0000.1111.1111 ARPA GigabitEthernet1 Internet 10.10.10.1 - 0050.3e7c.45a1 ARPA GigabitEthernet8 Internet 10.1.1.20 0 0000.3333.3333 ARPA GigabitEthernet1 Internet 10.10.10.100 1 0000.aaaa.aaaa ARPA GigabitEthernet8 Router1#
路由器1使用已完成的ARP條目將資料包從10.10.10.100轉發到伺服器1(10.1.1.20)。
Catalyst 2948G-L3交換器收到訊框時,會檢查介面gig 49上儲存的橋接器表是否有目的地MAC位址(0000.3333.3333) — 請回想一下,此表是介面專用的,而不是交換器的全域網路。
Catalyst 2948G-L3交換器會找到伺服器1的MAC位址的Remote專案,並將訊框轉送到介面fast 1(跨距樹狀目錄中的「IF編號:4」)。
2948G-L3#show epc patricia interface gig 49 mac 1# MAC addr:0000.3333.3333 IF Number:4 Entry:Remote 2# MAC addr:0001.43a0.cd07 HsrpMAC 3# MAC addr:0000.1111.1111 IF Number:52 Entry:Local 4# MAC addr:0100.0ccc.cccd MyMAC 5# MAC addr:0180.c200.0000 MyMAC 6# MAC addr:0900.2b01.0001 MyMAC 7# MAC addr:0100.0ccc.cccc MyMAC Total number of MAC entries: 7 2948G-L3#
伺服器1成功接收該幀。
伺服器1做出響應時,會根據其IP堆疊配置確定10.10.100位於不同的IP子網中,因此伺服器1會將ARP作為其預設網關IP地址(10.1.1.2)。
Catalyst 2948G-L3交換機收到廣播ARP時,會將該幀泛洪到網橋組中的所有介面,從而導致介面fast 1上的MAC 000.3333.3333出現本地條目,網橋組中的所有介面上出現MAC 0000.3333.3333出現遠端條目。
路由器2收到ARP請求並響應ARP — 這會導致介面gig 50上MAC 000.222.2222的本地條目和介面fast 1上MAC 000.222.2222的遠端條目。
2948G-L3#show bridge 1 Total of 300 station blocks, 297 free Codes: P - permanent, S - self Bridge Group 1: Address Action Interface 0000.2222.2222 forward Gi50 0000.3333.3333 forward FastEthernet1 0000.1111.1111 forward Gi49 2948G-L3#show epc patricia interface gig 50 mac 1# MAC addr:0000.2222.2222 IF Number:53 Entry:Local 2# MAC addr:0000.3333.3333 IF Number:4 Entry:Remote 3# MAC addr:0000.1111.1111 IF Number:52 Entry:Remote 4# MAC addr:0001.43a0.cd08 HsrpMAC 5# MAC addr:0100.0ccc.cccd MyMAC 6# MAC addr:0180.c200.0000 MyMAC 7# MAC addr:0900.2b01.0001 MyMAC 8# MAC addr:0100.0ccc.cccc MyMAC Total number of MAC entries: 8 2948G-L3#show epc patricia interface fast 1 mac 1# MAC addr:0000.0000.0000 VC:0 Entry: 2# MAC addr:0900.2b01.0001 MyMAC 3# MAC addr:0180.c200.0000 MyMAC 4# MAC addr:0100.0ccc.cccd MyMAC 5# MAC addr:0100.0ccc.cccc MyMAC 6# MAC addr:0001.43a0.cc07 HsrpMAC 7# MAC addr:0000.2222.2222 IF Number:53 Entry:Remote 8# MAC addr:0000.3333.3333 IF Number:4 Entry:Local 9# MAC addr:0000.1111.1111 IF Number:52 Entry:Remote Total number of MAC entries: 9 2948G-L3#
此外,Router 2現在有適用於伺服器1(10.1.1.20)的完整ARP專案,MAC位址為000.333.333。
Router2#show arp Protocol Address Age (min) Hardware Addr Type Interface Internet 10.1.1.2 - 0000.2222.2222 ARPA GigabitEthernet1 Internet 10.1.1.20 0 0000.3333.3333 ARPA GigabitEthernet1 Router2#
伺服器1使用MAC地址0000.2222.2222完成10.1.1.2的ARP條目。
Server1% arp -a Net to Media Table Device IP Address Mask Flags Phys Addr ------ -------------------- --------------- ----- --------------- hme0 10.1.1.1 255.255.255.255 00:00:11:11:11:11 hme0 10.1.1.2 255.255.255.255 00:00:22:22:22:22 hme0 10.1.1.20 255.255.255.255 SP 00:00:33:33:33:33 hme0 224.0.0.0 240.0.0.0 SM 01:00:5e:00:00:00 Server1%
伺服器1通過其預設網關10.1.1.2將響應傳送到10.10.100。伺服器1傳輸的幀將MAC地址000.2222.2222作為目標MAC,將000.3333.3333作為源MAC。
Catalyst 2948G-L3交換器收到訊框時,會檢查介面fast 1的橋接器表是否有目的地MAC位址(000.222.222)。
Catalyst 2948G-L3交換機找到Router 2的MAC地址的Remote條目,並將幀轉發到介面gig 50(生成樹中的IF編號:53)。
2948G-L3#show epc patricia interface fast 1 mac 1# MAC addr:0000.0000.0000 VC:0 Entry: 2# MAC addr:0900.2b01.0001 MyMAC 3# MAC addr:0180.c200.0000 MyMAC 4# MAC addr:0100.0ccc.cccd MyMAC 5# MAC addr:0100.0ccc.cccc MyMAC 6# MAC addr:0001.43a0.cc07 HsrpMAC 7# MAC addr:0000.2222.2222 IF Number:53 Entry:Remote 8# MAC addr:0000.3333.3333 IF Number:4 Entry:Local 9# MAC addr:0000.1111.1111 IF Number:52 Entry:Remote Total number of MAC entries: 9 2948G-L3#
此時,一切如預期般運行。例如,當網路分析器連線到介面fast 2(也位於網橋組1中)時,分析器僅接收泛洪流量(如廣播和組播),但是當分析器捕獲從10.10.10.100到10.1.1.20(伺服器1)的單播流量時,網路管理員很快就會感到驚訝。
當伺服器1的遠端條目在介面gig 49(連線到Router 1)上過時時會出現此問題。 如果沒有源MAC地址為0000.3333.3333的幀到達介面,則在300秒(網橋表老化時間)之後會發生這種情況。這就是伺服器1的遠端條目過期後內部網橋表的顯示方式:
2948G-L3#show epc patricia interface gig 49 mac 1# MAC addr:0001.43a0.cd07 HsrpMAC 2# MAC addr:0000.1111.1111 IF Number:52 Entry:Local 3# MAC addr:0100.0ccc.cccd MyMAC 4# MAC addr:0180.c200.0000 MyMAC 5# MAC addr:0900.2b01.0001 MyMAC 6# MAC addr:0100.0ccc.cccc MyMAC Total number of MAC entries: 6 2948G-L3#
唯一的條目是路由器1的本地條目 — 伺服器1的遠端條目(MAC地址0000.3333.3333)已被刪除。這會導致從路由器1到伺服器1的所有單播流量在網橋組中的每個介面上泛洪。
遺憾的是,隔離問題的唯一方法是檢查每個介面的內部網橋表條目的狀態。這是因為show bridge輸出表示Catalyst 2948G-L3交換器仍具有伺服器1的專案:
2948G-L3#show bridge 1 Total of 300 station blocks, 297 free Codes: P - permanent, S - self Bridge Group 1: Address Action Interface 0000.2222.2222 forward Gi50 0000.3333.3333 forward FastEthernet1 0000.1111.1111 forward Gi49 2948G-L3#
這是因為,只要Catalyst 2948G-L3交換機在任何介面上都有用於MAC地址的Local條目,該MAC地址就會出現在網橋表中。
此外,Router 1上的show arp顯示該ARP專案完整且正確:
Router1#show arp Protocol Address Age (min) Hardware Addr Type Interface Internet 10.1.1.1 - 0000.1111.1111 ARPA GigabitEthernet1/1 Internet 10.10.10.1 - 0050.3e7c.45a1 ARPA FastEthernet7/1 Internet 10.1.1.20 7 0000.3333.3333 ARPA GigabitEthernet1/1 Internet 10.10.10.100 9 0000.aaaa.aaaa ARPA FastEthernet7/1 Router1#
這是因為預設情況下ARP老化時間為4小時,明顯長於網橋表老化時間。
此問題有兩種解決方法:
重新設計路由拓撲,以便給定遠端IP子網的流量遵循相同路由進出交換機Catalyst 2948G-L3。
將連線到Catalyst 2948G-L3交換機的路由器介面的ARP老化時間縮短到5分鐘(使用arp timeout <seconds>介面配置命令)。
首選第一種解決方法,但第二種方法可以顯著減少單播泛洪量,而不會對效能產生不利影響(在大多數情況下,路由器上增加的ARP負擔並不顯著)。
使用預設的4小時ARP老化時間,單播泛洪可能持續近4小時。若使用ARP計時器縮短,單播泛洪最多可以持續四分鐘,然後橋接器表專案才會重新安裝。這是因為,如果在路由器的ARP表中沒有看到主機的流量(老化時間 — 60秒),路由器會為該主機重新安裝ARP,並在Catalyst 2948G-L3或4908G-L3交換機中刷新或重新安裝動態網橋表條目。
請注意,由於無法精確同步ARP計時器和網橋表計時器,第二種解決方法很可能不能完全消除單播泛洪。
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
06-Oct-2005 |
初始版本 |