ポリシー制御の全体像
Cisco IOSv では、ACL、prefix-list、route-map、ZBF などを組み合わせて、通信や経路の扱いを制御する。
ACL や route-map は「通信を止めるためだけの機能」ではない。パケットを分類する、経路を選ぶ、再配送対象を絞る、BGP 属性を付ける、PBR で転送先を変える、といった用途でも使う。
道具の使い分け
Section titled “道具の使い分け”| 道具 | 主に見るもの | 主な用途 |
|---|---|---|
| 標準ACL | IPv4送信元アドレス | 単純な送信元制御、route-map の条件 |
| 拡張ACL | 送信元、宛先、プロトコル、ポート | インターフェースACL、PBRの対象選択 |
| prefix-list | 経路プレフィックスとprefix長 | 再配送、経路フィルタ、BGPポリシー |
| route-map | match条件とset動作 | 再配送、BGP属性変更、PBR |
| reflexive ACL | 内側から開始したセッション | 簡易的な戻り通信許可 |
| ZBF | ゾーン間通信とセッション | ステートフルなファイアウォール制御 |
ACL はパケットを見る。prefix-list は経路を見る。route-map は、それらを条件として使い、処理を決める。
パケット制御と経路制御
Section titled “パケット制御と経路制御”同じ ACL や route-map でも、どこで使うかにより意味が変わる。
flowchart LR
subgraph packet_control["パケット制御"]
packet["インターフェースを通るパケット"]
acl["ACL: 通信を permit または deny"]
pbr["route-map: PBR で next-hop を変更"]
packet --> acl
packet --> pbr
end
subgraph route_control["経路制御"]
route["学習または再配送する経路"]
prefix["prefix-list: 経路 prefix を選別"]
redist["route-map: metric や tag を設定"]
bgp["route-map: BGP 属性を設定"]
route --> prefix
route --> redist
route --> bgp
end
インターフェースに適用した ACL の permit / deny は、実際の通信を通すか落とすかを決める。一方、route-map の match ip address で ACL を参照する場合、ACL は「route-map の対象になるか」を選ぶ条件として使われる。
DRPでの位置づけ
Section titled “DRPでの位置づけ”OSPF、BGP、EIGRP のような動的ルーティングプロトコルでは、経路をすべてそのまま入れると、意図しない経路流入や経路ループを作りやすい。
そのため、再配送では次のように分担する。
| 処理 | 使う道具 |
|---|---|
| 再配送するprefixを絞る | prefix-list |
| 条件に一致した経路だけ処理する | route-map |
| OSPF external metricを付ける | route-map set metric / set metric-type |
| EIGRP external metricを付ける | route-map set metric |
| BGP属性を付ける | route-map set local-preference / set community |
| 戻り再配送を防ぐ | route-map set tag / match tag |
暗黙のdeny
Section titled “暗黙のdeny”ACL、prefix-list、route-map は、どれも順番に評価される。
- ACL は最後に暗黙の deny がある
- prefix-list も最後に暗黙の deny がある
- route-map は用途により挙動が変わるが、どの sequence にも一致しない対象は処理されない
そのため、必要な通信や経路を通す catch-all を入れるか、意図的に落とすかを明確にする必要がある。