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 100exit
route-map NAME permit 20exitroute-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で転送先を変える |
用途ごとのpermit/deny
Section titled “用途ごとのpermit/deny”route-map の permit / deny は、使う場所によって意味が変わる。
| 用途 | permit |
deny |
|---|---|---|
| 再配送 | 一致した経路を再配送対象にする | 一致した経路を再配送しない |
| BGP neighbor policy | 一致した経路を受信/広告対象にする | 一致した経路を受信/広告しない |
| PBR | 一致したパケットをpolicy routeする | 一致したパケットは通常ルーティングへ戻す |
BGP neighbor に route-map を適用する場合、どの sequence にも一致しない経路は広告/受信されない。必要なら最後に catch-all の permit sequence を入れる。
再配送での使い方
Section titled “再配送での使い方”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 100exit
router ospf 10 redistribute eigrp 100 subnets route-map EIGRP-TO-OSPFexitprefix-list が対象prefixを選び、route-map がOSPFへ入れるときの属性を付ける。
PBRでの使い方
Section titled “PBRでの使い方”ip access-list extended PBR-WEB permit tcp 192.168.10.0 0.0.0.255 any eq 443exit
route-map PBR-WEB permit 10 match ip address PBR-WEB set ip next-hop 192.0.2.254exit
interface GigabitEthernet0/0 ip policy route-map PBR-WEBexitPBR では、パケットが通常の宛先ベースルーティングに入る前に route-map を評価する。ルータ自身が生成する通信に使う場合は ip local policy route-map を使う。