キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
6043
閲覧回数
12
いいね!
0
コメント
Hyungjin Lee
Cisco Employee
Cisco Employee

はじめに

ASAの Policy Based Routing (PBR) について、以下の簡易的な構成でのPBR設定例をもとに紹介します。本ドキュメントは、ASA バージョン 9.14(2)8を用いて確認しております。

 

 

Policy Based Routing (PBR)とは

従来のルーティングは、宛先 IP アドレスの ルーティングテーブル情報に基づいて ネクストホップに転送します。
ポリシーベース ルーティング(PBR)は、送信元アドレス、送信元ポート、宛先アドレス、宛先ポート、プロトコル、またはこれらの組み合わせの条件に基づいて 特定のトラフィックを指定のネクストホップに転送することができます。

 

 

PBR設定前

従来のルーティング:① PC1→Server② PC2→Serverのトラフィックを 宛先IPアドレス(Server)の ルーティングテーブル情報に基づいて Next-hop(Router1)に転送します。

PBR設定前.png

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 宛

 

 

PBR設定後

Policy Based Routing (PBR):特定のトラフィック(② PC2→Server) を、指定のnext-hop (Router2)に転送します。

PBR設定後.png

 

 

PBR設定・動作確認

PBR設定例及び 各コマンドの実施例を紹介します。各コマンド(show command, packet-trace, debug, packet capture)より、PBR設定及び 動作が確認できます。必要に応じて活用ください。

PBR設定・動作確認.png

[ 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を適用

 

[ show command 実施例 ]

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

 

[ packet-tracer 実施例 ]

packet-tracer コマンドについて詳しくは、パケットトレーサ を参照してください。
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

 

[ Debug実施例 ]

* 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

 

[ Packet captureで実施例 ]

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のパケットフロー ]を参照してください。

パケットフロー.png

 

[ PC2 → Serverのパケットフロー ]

PC2から ASAに着信し、PBRが適用され 指定のnext-hop(Router2)にルーティングされます。戻りパケットは、ルーティングテーブル情報に基づいて転送されます。

PC2 → Server.png

 

[ Server → PC2のパケットフロー ]

行き・戻り どちらのパケットも 宛先 IP アドレスの ルーティングテーブル情報に基づいて 転送されます。上記 パケットフローで確認できる通り、戻りパケットは Existing connectionのため、PBRが適用されません。そのため、逆側通信の場合は 宛先IPアドレス(Server)のルート情報が必要となり、そのルート設定に基づいて戻りパケットはルーティングされます。

Server → PC2.png

 

 

よくある質問

Routerと ASA Firewallの PBR処理の違いを教えてください。

ルーターはパケット単位で通信処理を行いますが、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

 

 

Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします