FWSM でのパケットをキャプチャするには、二通りのやり方があります。
- Catalyst 6500 側で SPAN を利用する方法
- FWSM で capture コマンドを利用する方法
Catalyst 6500 のスーパバイザと FWSM 間には、6本のギガビットイーサネット・インターフェースから構成される Port-Channel でつながっています。この Port-Channel をソースインターフェースとして SPAN をかけることで、FWSM と Catalyst 6500 間でやりとりされたパケット(実質 FWSM が入出力した全パケット)をキャプチャできます。FWSM が装着されたスロットに依存して Port-Channel の番号が IOS に決められ、変更することはできません。下記のコマンドで番号を調べることができます。この例では、スロット 3 の FWSM に対応する Port-Channel の番号は 307 となります。
Cat6504-E# show module | include Firewall
3 6 Firewall Module WS-SVC-FWM-1 SAD1114011U
Cat6504-E# show etherchannel summary | include Gi
307 Po307(SU) - Gi3/1(P) Gi3/2(P) Gi3/3(P)
Gi3/4(P) Gi3/5(P) Gi3/6(P)
Cat6504-E(config)# monitor session 1 source interface port-channel 307
Cat6504-E(config)# monitor session 1 destination interface gigabitEthernet 1/1
Cat6504-E# show monitor session 1
Session 1
---------
Type : Local Session
Source Ports :
Both : Po307
Destination Ports : Gi1/1
Egress SPAN Replication State:
Operational mode : Centralized
Configured mode : Centralized (default)
FWSM 関連の全通信ですので、トラフィックの量が非常に多くなる可能性があります。キャプチャする端末は少しパワーのあるマシンがよいです。
Catalyst 6500 でのキャプチャとは別に、FWSM では capture コマンドでもキャプチャできます。この方法の良いところは、アクセスリストでキャプチャしたいパケットを定義することができます。例えば、この例では Failover している二つの FWSM 間に流れている Failover Hello パケットのみをキャプチャします。Failover の Hello パケットは IP プロトコル 105 番を利用していますので、アクセスリストで定義すると、下記となります。
FWSM# changeto context admin
FWSM/admin# configure terminal
FWSM/admin(config)# access-list HELLO extended permit 105 any any
アクセスリスト HELLO を使って fover インターフェース上キャプチャを開始します。"circular-buffer" オプションを使うことで、バッファーが一杯まで貯まったら、古いパケットが新しいのに置き換わります。
FWSM/admin(config)# capture CAP_HELLO access-list HELLO buffer 1000000 interface fover circular-buffer
キャプチャを停止するには、(ここの no capture はキャプチャそのものを削除するのではなく、capture オブジェクトをインターフェースから外す効果です)
FWSM/admin(config)# no capture CAP_HELLO access-list HELLO interface inside
キャプチャを TFTP サーバにアップロードします。
FWSM/admin(config)# changeto system
FWSM(config)# copy /pcap capture: admin/CAP_HELLO tftp:
コピー終わったら、capture を削除します。
FWSM(config)# changeto context admin
FWSM/admin(config)# no capture CAP_HELLO