このところ触る機会が多い Cisco PIX/ASA の話です。Cisco ASA 5500 シリーズ (software version 7.0) の transparent mode を利用する機会がありました。transparent mode は通常の L3 IP forwarding でなく L2 で bridging をする動作モードです。このモードで動作している ASA を Spanning Tree Protocol (STP) が通過するように設定しなければならなかったのですが、これにハマってしまいました。
以下のコマンドで transparent mode での動作となります。
firewall transparent
デフォルトの設定では STP のフレーム (BPDU) は通過しないので ethertype を指定した ACL を inside/outside の両方のインターフェイスに明示的に適用しなければなりません。今回は特に ethertype は制限せず、全て通過するよう any を用いて ACL を作りました。
access-list Ethertypes ethertype permit any
access-group Ethertypes in interface inside
access-group Ethertypes in interface outside
access-group Ethertypes in interface inside
access-group Ethertypes in interface outside
これでうまくいくと思ったのですが、何故かツリーが構成されず、内側と外側で別々の root bridge ができてしまいます。
で結局何が悪かったかというと、物理インターフェイスをそのまま使っていたのがまずかったのです。うまく行かないときは次のように設定していました。
interface Ethernet0/0
speed 100
duplex full
nameif inside
security-level 100
!
interface Ethernet0/1
speed 100
duplex full
nameif outside
security-level 0
speed 100
duplex full
nameif inside
security-level 100
!
interface Ethernet0/1
speed 100
duplex full
nameif outside
security-level 0
実は transparent mode ではサブインターフェイスを使わなければならないのです。次のように設定し直すとうまくいきました。
interface Ethernet0/0
speed 100
duplex full
no nameif
no security-level
!
interface Ethernet0/0.1
vlan 100
nameif inside
security-level 100
!
interface Ethernet0/1
speed 100
duplex full
no nameif
no security-level
!
interface Ethernet0/1.1
vlan 101
nameif outside
security-level 0
speed 100
duplex full
no nameif
no security-level
!
interface Ethernet0/0.1
vlan 100
nameif inside
security-level 100
!
interface Ethernet0/1
speed 100
duplex full
no nameif
no security-level
!
interface Ethernet0/1.1
vlan 101
nameif outside
security-level 0
inside/outside で別々の VLAN 番号を振らなければなりません。このとき 802.1Q が使われるので、ASA が接続する inside 側のスイッチのインターフェイスは次のような設定になります。
(Catalyst 3550 の例)
interface GigabitEthernet0/1
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 100
switchport mode trunk
no ip address
no cdp enable
interface GigabitEthernet0/1
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 100
switchport mode trunk
no ip address
no cdp enable
物理インターフェイスを使っていた場合でも TCP/IP の ACL による制御機能は普通に動いてしまうのでハマりました。知っていれば何てことないのですが、transparent mode ではサブインターフェイスでの設定が必須ということで。
追記 (2007.9.11)
Cisco の Web サイトの設定例を見ると特に BPDU を通すためにはサブインターフェイスの設定が必要とは書かれていないですね。私の試した 7.0 では NG だったのですが、バージョンによるものかも知れないです。
最近は Cisco のサイトの設定例 (Configuration Examples and TechNotes) が充実してきているのでまずここを探すと良いと思います。
さらに追記
以下のバージョン以降はサブインターフェイス不要のようです。
7.0(6.26)、7.1(2.46)、7.2(2.14)、8.0(0.223)、8.2(0.7)
はじめまして、ICPAの中原でございます。
突然のメールで失礼致します。ブログを拝見させて頂いてメールさせて頂いております。
私どもは外資系ヘッドハンティングファームでございます。外資系IT企業、コンサルティングファーム、国内IT企業のエンジニアポジションをご紹介しております。
現在、クライアント(自社サービスを持った企業)の強いご希望でネットワークエンジニアを急務で探しておりまします。
管理人様がネットワークの知識を持っているエンジニアかと思い非常に興味を持っております。是非、1度お電話で構いませんのでお話させていただけないでしょうか??
もし、お話させていただける場合は
○電話番号
○ご連絡ができるお時間
をご記載の上ご返信いただけますと幸いでございます。
管理人様とお話できることを楽しみにしております。
何卒、よろしくお願いします。
E-mail nakahara@icpa.com