2021-03-15
09:39 AM
- 最終編集日:
2023-12-20
04:40 PM
、編集者:
JapanTAC_CSC
ASAの Policy Based Routing (PBR) について、以下の簡易的な構成でのPBR設定例をもとに紹介します。本ドキュメントは、ASA バージョン 9.14(2)8を用いて確認しております。
従来のルーティングは、宛先 IP アドレスの ルーティングテーブル情報に基づいて ネクストホップに転送します。
ポリシーベース ルーティング(PBR)は、送信元アドレス、送信元ポート、宛先アドレス、宛先ポート、プロトコル、またはこれらの組み合わせの条件に基づいて 特定のトラフィックを指定のネクストホップに転送することができます。
従来のルーティング:① PC1→Server、② PC2→Serverのトラフィックを 宛先IPアドレス(Server)の ルーティングテーブル情報に基づいて Next-hop(Router1)に転送します。
asav# show route
<snip>
C 192.168.1.0 255.255.255.0 is directly connected, inside
L 192.168.1.254 255.255.255.255 is directly connected, inside
C 192.168.2.0 255.255.255.0 is directly connected, outside
L 192.168.2.253 255.255.255.255 is directly connected, outside
S 192.168.100.0 255.255.255.0 [1/0] via 192.168.2.251, outside <-- Router1 宛
Policy Based Routing (PBR):特定のトラフィック(② PC2→Server) を、指定のnext-hop (Router2)に転送します。
PBR設定例及び 各コマンドの実施例を紹介します。各コマンド(show command, packet-trace, debug, packet capture)より、PBR設定及び 動作が確認できます。必要に応じて活用ください。
1. Access-list(ACL) 設定
access-list PBR-ACL extended permit ip host 192.168.1.2 host 192.168.100.100 <-- 特定トラフィックを定義(PC2→Server)
2. route-map 設定
route-map PBR permit 10
match ip address PBR-ACL <-- 生成設定した Access-Listを指定
set ip next-hop 192.168.2.252 <-- next-hop指定(Router2のIP)
3. Interface に適用
interface GigabitEthernet0/0
policy-route route-map PBR <-- 着信Interfaceへroute-mapを適用
asav# show policy-route <-- PBRの有無確認 (Interface GigabitEthernet0/0に Route-map PBR設定)
Interface Route map
GigabitEthernet0/0 PBR
asav# show route-map <-- Route-mapの確認 (PBR-ACLにマッチすると Next-hop 192.6.2.252を指定)
route-map PBR, permit, sequence 10
Match clauses:
ip address (access-lists): PBR-ACL
Set clauses:
ip next-hop 192.168.2.252
asav# show access-list PBR-ACL <-- PBR-ACLにマッチしたパケット確認
access-list PBR-ACL; 1 elements; name hash: 0x9e175fdb
access-list PBR-ACL line 1 extended permit ip host 192.168.1.2 host 192.168.100.100 (hitcnt=5) 0xddb23923
asav# packet-tracer input inside tcp 192.168.1.2 http 192.168.100.100 65001
Phase: 1
Type: PBR-LOOKUP <-- PBR適用
Subtype: policy-route
Result: ALLOW
Config:
route-map PBR permit 10
match ip address PBR-ACL
set ip next-hop 192.168.2.252
Additional Information:
Matched route-map PBR, sequence 10, permit
Found next-hop 192.168.2.252 using egress ifc outside
<snip>
Type: ADJACENCY-LOOKUP
Subtype: Resolve Nexthop IP address to MAC
Result: ALLOW
Config:
Additional Information:
Found adjacency entry for Next-hop 192.168.2.252 on interface outside
Adjacency :Active
MAC address 0050.5691.38ab hits 0 reference 1
Result:
input-interface: inside
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: allow
* PC2 → Serverに Ping実施
asav# debug policy-route
Mar 11 2021 06:30:20: %ASA-6-711001: pbr: policy based route lookup called for 192.168.1.2/12 to 192.168.100.100/0 proto 1 sub_proto 8 received on interface inside
Mar 11 2021 06:30:20: %ASA-6-711001: pbr: First matching rule from ACL(10)
Mar 11 2021 06:30:20: %ASA-6-711001: pbr: route map PBR, sequence 10, permit; proceed with policy routing
Mar 11 2021 06:30:20: %ASA-6-711001: pbr: evaluating next-hop 192.168.2.252
Mar 11 2021 06:30:20: %ASA-6-711001: pbr: policy based routing applied; egress_ifc = outside : next_hop = 192.168.2.252
asav# capture PBR interface inside trace detail match ip host 192.168.1.2 host 192.168.100.100 <-- capture設定
asav# show capture
capture PBR type raw-data trace detail interface inside [Capturing - 0 bytes]
match ip host 192.168.1.2 host 192.168.100.100
* PC2 → Serverに Ping実施
asav# show capture
capture PBR type raw-data trace detail interface inside [Capturing - 260 bytes]
match ip host 192.168.1.2 host 192.168.100.100
asav# show capture PBR <-- packet capture結果
2 packets captured
1: 04:42:25.627408 192.168.1.2 > 192.168.100.100 icmp: echo request
2: 04:42:25.628843 192.168.100.100 > 192.168.1.2 icmp: echo reply
2 packets shown
asav# show capture PBR trace packet-number 1 <-- packet trace確認
2 packets captured
1: 04:42:25.627408 192.168.1.2 > 192.168.100.100 icmp: echo request
Phase: 1
Type: CAPTURE
Subtype:
Result: ALLOW
Config:
Additional Information:
Forward Flow based lookup yields rule:
in id=0x7f852c1633a0, priority=13, domain=capture, deny=false
hits=1, user_data=0x7f852c042090, cs_id=0x0, l3_type=0x0
src mac=0000.0000.0000, mask=0000.0000.0000
dst mac=0000.0000.0000, mask=0000.0000.0000
input_ifc=inside, output_ifc=any
Phase: 2
Type: ACCESS-LIST
Subtype:
Result: ALLOW
Config:
Implicit Rule
Additional Information:
Forward Flow based lookup yields rule:
in id=0x7f853037d200, priority=1, domain=permit, deny=false
hits=11258, user_data=0x0, cs_id=0x0, l3_type=0x8
src mac=0000.0000.0000, mask=0000.0000.0000
dst mac=0000.0000.0000, mask=0100.0000.0000
input_ifc=inside, output_ifc=any
Phase: 3
Type: PBR-LOOKUP <-- PBR適用
Subtype: policy-route
Result: ALLOW
Config:
route-map PBR permit 10
match ip address PBR-ACL
set ip next-hop 192.168.2.252
Additional Information:
Matched route-map PBR, sequence 10, permit
Found next-hop 192.168.2.252 using egress ifc outside
<snip>
Type: ADJACENCY-LOOKUP
Subtype: Resolve Nexthop IP address to MAC
Result: ALLOW
Config:
Additional Information:
Found adjacency entry for Next-hop 192.168.2.252 on interface outside
Adjacency :Active
MAC address 0050.5691.38ab hits 3 reference 1
Result:
input-interface: inside
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: allow
1 packet shown
新規パケットが 該当Interfaceの着信時、既存コネクションがない場合に、PBRが適用されます。 PBR適用後 コネクションが生成され、以後はそのコネクションマッチするパケットは PBRのNext Hopに自動転送されるようになります。詳しくは、[ PC2 → Serverのパケットフロー ]を参照してください。
なお、注意点として、PBRは宛先側のNext Hopのみ変更することができ、送信元側のNext Hopは変更することができません。そのため、対向機器からの新規通信の戻りパケットは ルーティングテーブルに基づいた処理となります。詳しくは、[ Server → PC2のパケットフロー ]を参照してください。
PC2から ASAに着信し、PBRが適用され 指定のnext-hop(Router2)にルーティングされます。戻りパケットは、ルーティングテーブル情報に基づいて転送されます。
行き・戻り どちらのパケットも 宛先 IP アドレスの ルーティングテーブル情報に基づいて 転送されます。上記 パケットフローで確認できる通り、戻りパケットは Existing connectionのため、PBRが適用されません。そのため、逆側通信の場合は 宛先IPアドレス(Server)のルート情報が必要となり、そのルート設定に基づいて戻りパケットはルーティングされます。
ルーターはパケット単位で通信処理を行いますが、ASAはFirewallとなりセッション単位の制御となります。 そのため、ルーターのPBRの場合は パケット毎にPBRの適用が可能です。 逆に、ASA Firewallはセッション(コネクション)毎のPBR適用となるため、通信方向によって適用可能なPBRがかわります。
Cisco ASA シリーズ 9.14 CLI コンフィギュレーション ガイド
https://www.cisco.com/c/ja_jp/td/docs/security/asa/asa914/configuration/general/asa-914-general-config/route-policy-based.html
ASA 8.3+ パケット処理順序と 処理負荷概要と、パケットトレーサ
https://community.cisco.com/t5/-/-/ta-p/3155834
ASA: パケットキャプチャ機能の活用(CLI)
https://community.cisco.com/t5/-/-/ta-p/3140307
ファイアウォール トラブルシューティング
https://community.cisco.com/t5/-/-/ta-p/3161736
Firepower System and FTDトラブルシューティング
https://community.cisco.com/t5/-/-/ta-p/3161733
検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう
シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします
下記より関連するコンテンツにアクセスできます