パケット転送経路の設定
ASAは IP Routingのために、以下をサポートします。 Static Routingの利用が 一般的です。
- Static Routing
- RIP
- OSPF
- EIGRP
- BGP version 9.2(1)からサポート
- Multicast Routing
- Policy Based Routing(PBR) version 9.4(1)からサポート
- IS-IS Routing version 9.6(1)からサポート
Tip:
Dynamic Routingを用いる場合、比較的新しいトレインの利用が向きます。 Dynamic Routingの機能拡張は、新しいトレインほど実装されるためです。
ASAバージョン 9.5(1)より、Global Routing Tableと Management Routing Tableが分離されるようになりました。 詳しくは以下ドキュメントを参照ください。
ASA9.5(1)以降: 管理通信用のRouting Tableの分離について
https://supportforums.cisco.com/ja/document/12942351
パケット転送の決定方法
以下を元に、パケット転送が決定されます。
- マッチするルートが無い場合、Default Routeを使用。 仮にDefault Routeが無い場合、パケットは破棄
- マッチするルートがあった場合、そのルートに紐づいたInterfaceにパケットを転送
- マッチするルートが複数あった場合、より長く prefix lengthがマッチするルートを選択 (Longest Match)
例えば、以下のルートで、192.168.32.1宛のパケットが到達した場合、192.168.32.0/24(=255.255.255.0)にマッチし、outside01の10.1.1.2にパケットを転送します。
ciscoasa# show route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
...
R 192.168.32.0/24 [120/4] via 10.1.1.2, outside01
O 192.168.32.0/19 [110/229840] via 10.1.1.3, outside02
なお、上記のパケット転送の決定は ASAを通過するトラフィック(through-the-box)の場合です。 ASA管理やASA終端VPNなどASA宛のトラフィック(to-the-box)の場合は その受信Interfaceに紐づいたRouting Tableが優先利用されます。
ルーティングの処理フェーズ
"UN-NAT or Routing"のフェーズで以下の優先順位で処理されます。
UN-NAT(Untranslate-NAT/宛先アドレス変換)が最優先となります。 Policy Based Routing(PBR)を設定時は優先して処理されます。 これら、UN-NATとPBRにマッチしない場合、通常の Route Lookupが実行されます。
"UN-NAT or Routing"のフェーズで Egress Interface(送出インターフェイス)が決定され、後のNAT(送信元アドレス変換)や Inspectionや サービスモジュール検査(e.g. Firepower)の処理、及び コネクションの生成が行われます。
既にコネクションのある後続パケットは、"UN-NAT or Routing"や"ACL checks"のフェーズはバイパスされ、高速に処理されます。
最後の L2/L3 Lookupのフェーズで、L3 Route Lookupによる Next-Hopの確認、及び、L2 Resolution(ARP解決)を行った後、パケットはEgress Interfaceから送出されます。仮にNexts-Hopの確認や ARP解決に失敗すると、パケットはドロップされます。
ルーティング処理結果の確認
パケットトレーサでの確認が大変便利です。詳しくは以下ドキュメントを参考ください。
ASA 8.3+ パケット処理順序と 処理負荷概要と、パケットトレーサ
https://supportforums.cisco.com/ja/document/12745356
よくある質問
冗長構成で Dynamic Routing 利用した場合、どのような情報が同期されますか
冗長構成では Routing Tableの同期のみ対応しており、Dynamic Routing Protocolの状態や情報の同期には対応してません。 Active機がDynamic Routingの処理を行い、Standby機のDynamic Routingは待機状態となります。仮にFailover(切り替え)が発生した場合、新Active機(旧Standby機)は、Failover前に同期されていたRouting Tableを利用して通信を継続しつつ、Routing Updateを行い あらたに Routing Tableを学習し直します。
参考情報
CLI Book 1: Cisco ASA Series General Operations CLI Configuration Guide, 9.4
- Information About Routing - How Forwarding Decisions Are Made
http://www.cisco.com/c/en/us/td/docs/security/asa/asa94/config-guides/cli/general/asa-94-general-config/route-overview.html#ID-2101-000000f3
ファイアウォール トラブルシューティング
https://community.cisco.com/t5/-/-/ta-p/3161736
Firepower System and FTDトラブルシューティング
https://community.cisco.com/t5/-/-/ta-p/3161733