コンテンツにスキップ

route-map

route-map は、match で対象を選び、set で処理を指定する順序付きポリシーである。

route-map は、再配送、BGP属性制御、PBR などで使う。同じ構文でも、使う場所によって permit / deny や unmatched の意味が変わるため、用途ごとに考える。


route-map NAME permit 10
match ip address prefix-list TARGET
set metric 20
set tag 100
exit
route-map NAME permit 20
exit

route-map は sequence の小さい順に評価される。match がない sequence は、対象すべてに一致する。


match は対象を選ぶ条件である。

match 主な用途
match ip address ACL PBRなどでパケット条件を見る
match ip address prefix-list NAME IPv4経路prefixを見る
match ipv6 address prefix-list NAME IPv6経路prefixを見る
match tag VALUE 再配送元の識別に使う
match metric VALUE metricで経路を選ぶ

複数の match を書く場合の評価は、コマンド種別や設定の組み合わせで読み間違えやすい。複雑な条件は、sequence を分けて読みやすくする。


set は一致した対象に対する処理である。

set 主な用途
set metric 再配送時のmetricを付ける
set metric-type OSPF外部経路のtypeを決める
set tag 再配送元を識別する印を付ける
set local-preference BGPのAS内優先度を変える
set community BGP communityを付ける
set ip next-hop PBRで転送先を変える

route-map の permit / deny は、使う場所によって意味が変わる。

用途 permit deny
再配送 一致した経路を再配送対象にする 一致した経路を再配送しない
BGP neighbor policy 一致した経路を受信/広告対象にする 一致した経路を受信/広告しない
PBR 一致したパケットをpolicy routeする 一致したパケットは通常ルーティングへ戻す

BGP neighbor に route-map を適用する場合、どの sequence にも一致しない経路は広告/受信されない。必要なら最後に catch-all の permit sequence を入れる。


ip prefix-list EIGRP-TO-OSPF seq 10 permit 10.10.0.0/16 le 24
route-map EIGRP-TO-OSPF permit 10
match ip address prefix-list EIGRP-TO-OSPF
set metric 20
set metric-type type-1
set tag 100
exit
router ospf 10
redistribute eigrp 100 subnets route-map EIGRP-TO-OSPF
exit

prefix-list が対象prefixを選び、route-map がOSPFへ入れるときの属性を付ける。


ip access-list extended PBR-WEB
permit tcp 192.168.10.0 0.0.0.255 any eq 443
exit
route-map PBR-WEB permit 10
match ip address PBR-WEB
set ip next-hop 192.0.2.254
exit
interface GigabitEthernet0/0
ip policy route-map PBR-WEB
exit

PBR では、パケットが通常の宛先ベースルーティングに入る前に route-map を評価する。ルータ自身が生成する通信に使う場合は ip local policy route-map を使う。