メモのページ - チラシの裏メモ 3枚目

通信技術や気になった事を黙々とメモし続ける

SUP32を搭載したCatalyst6500のアーキテクチャ

販売開始から10年程経過し今更感が強いが、Home Labで運用開始したSUP32搭載Catalyst6500のアーキテクチャに関して簡単にまとめてみた。

インプレス社刊の「Cisco Catalyst LANスイッチ教科書(改訂新版)」と「Cisco LANスイッチ教科書(第3版)」にSUP32のアーキテクチャに関して記載が無かった為、調べた内容を上記参考書の体裁風にPower Pointで再作成し、パケットの流れを以下にまとめてみた。
上図(クリックすると拡大表示)の赤枠内がSUP32、赤丸内の数字は下記の各項目を表す。
上図内ではEOBCは省略している。

間違いや不足箇所は、判明次第追記および修正する事とする。

1.パケットが最初にポートに到着。入力バッファに一時的に置かれる。
既存のパケットヘッダ内の情報を使用し、フォワーディングエンジンによるForwarding TableのLookup実行とQoSおよびセキュリティポリシー適用の為の、内部ヘッダを構築する。

2.ラインカード上にあるBus ASICは、パケットをバス(SUP32の場合は32Gbpsの共有バス)に転送する為の調停メカニズムを動作させる。
バスが使用中ではない場合、SUP上の調停プロセスはパケットをバスに転送して良い旨をラインカード上の調停メカニズムに通知する。
※受信したパケットをバスに転送する際、各ラインカード上に、SUP上で動作する調停プロセスと通信するローカルな調停メカニズムがある。その内容はSUPに対しパケットを転送して良いか確認するというもの。

3.ラインカード上の調停メカニズムがSUPから確認応答を受信すると、Bus ASICは共有バス上にパケットを転送する。
ただし、SUPから転送先を指示されるまでの間は送信バッファ上に留まる。

4.パケットはバスを通ってSUP上のPFC3Bに転送される。

5.PFC3Bがパケットを受信。
PFC3B上のレイヤ2エンジンは、宛先MAC Addressを使用しレイヤ2 Lookupを実行し出力Interfaceを決定する。
その後、パケットはレイヤ3エンジンに渡される。

6.PFC3B上のレイヤ3エンジンは、レイヤ3のLookupと並行し多くのプロセスを実行する。
・MSFC2A上で構築されたFIB(Routing Tableから構築されている)の情報がPFC3B上のFIB TCAMに書き込まれる。
併せて、Neighbor Table(ARP Tableから構築されている)の情報がPFC3B上のNeighbor Tableに書き込まれる。
・レイヤ3でスイッチングする際、レイヤ3エンジンはFIB TCAMを使用しレイヤ3 Lookup(宛先IP Address、Subnet Mask、出力Interface)を実行する。
・このパケットに適用されるACLが存在するか確認する為、QoSとセキュリティACLにおいてLookupが実行される。
・このパケットが属するトラヒックフローの為に、NetFlowの統計情報を更新する。
(MSFC2A上のFIBとNeighbor Tableがソフトウェアベースである事に対し、PFC3B上のFIB TCAMとNeighbor Tableはハードウェアベースである。)

7.上記6のLookupの結果はPFC3Bによってまとめられる。
Lookupの結果には以下の情報も含まれる。
・パケットの扱いに関する情報 (転送 or 破棄)
・宛先MAC Address書き換えの為の情報
・CoS値およびToS値調整の為の情報

8.Lookupの結果は、バスを介して出力Interfaceに転送される。

9.出力Interfaceは上記7の情報をを受信する。
受信した内容を基にパケットのイーサネットヘッダを構築。
パケットはバッファから取り出され物理インターフェースから転送される。


ルーティングやスイッチングだけでなく、ハードウェアに関してもいろいろ調べてみると結構面白いものだ。
スペック面では業務で扱っているSUP2Tに到底かなわないが、愛着が湧いてきた。壊れて起動しなくなるまで使い倒したいと思う。


http://www.cisco.com/c/en/us/products/collateral/switches/catalyst-6500-series-switches/prod_white_paper0900aecd803e508c.html