コンテンツにスキップ

ポリシー制御の全体像

Cisco IOSv では、ACL、prefix-list、route-map、ZBF などを組み合わせて、通信や経路の扱いを制御する。

ACL や route-map は「通信を止めるためだけの機能」ではない。パケットを分類する、経路を選ぶ、再配送対象を絞る、BGP 属性を付ける、PBR で転送先を変える、といった用途でも使う。


道具 主に見るもの 主な用途
標準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 は、それらを条件として使い、処理を決める。


同じ 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 の対象になるか」を選ぶ条件として使われる。


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

ACL、prefix-list、route-map は、どれも順番に評価される。

  • ACL は最後に暗黙の deny がある
  • prefix-list も最後に暗黙の deny がある
  • route-map は用途により挙動が変わるが、どの sequence にも一致しない対象は処理されない

そのため、必要な通信や経路を通す catch-all を入れるか、意図的に落とすかを明確にする必要がある。