ポリシーベースルーティングの機能説明
ポリシーベースルーティングは、ポリシー(パケットの一致条件と処理内容)に基づいて経路を決定する機能です。
通常のルーティングでは、ルーティングテーブルに従ってパケットが中継されますが、ポリシーベースルーティングを適用することで、ポリシーに従ってパケットを中継できます。以下の例では、「VLAN 10インターフェースで受信した送信元ネットワークが192.0.2.0/24で、かつ宛先ネットワークが10.1.1.0/24の場合」は、ポリシーベースルーティングが適用されて172.16.4.100宛てにルーティングされます。
ポリシーベースルーティングの動作
ポリシーベースルーティングを適用するには、IPv4の場合はip policy route-mapコマンド、IPv6の場合はipv6 policy route-mapコマンドを使用します。
IPv4ポリシーベースルーティングのポリシーの定義
IPv4ポリシーベースルーティングのポリシーは、ルートマップエントリーで定義します。一致条件は、match ip addressコマンドで指定する標準IPアクセスリストにより決定され、条件に一致した場合に以下のsetコマンドで設定した処理が適用されます。
- set ip next-hop
条件に一致したパケットを、指定したネクストホップ宛てにルーティングします。
- set ip default next-hop
条件に一致したパケットの宛先ネットワークのルート情報がルーティングテーブルにない場合に、指定したネクストホップ宛てにルーティングします。ただし、宛先ネットワークがデフォルトルートまたはdirectly connected経路に一致する場合は例外で、本コマンドの場合でも指定したネクストホップ宛てにルーティングします。
- set ip precedence
条件に一致したパケットのIP Precedence値を変更します。
match ip addressコマンドで拡張IPアクセスリストを指定しても、動作しません。標準IPアクセスリストを指定してください。
受信したパケットの宛先ネットワークが自装置に直接接続されているネットワーク(directly connected経路)の場合でも、条件に一致するとポリシーベースルーティングの対象になります。
1つのVLANインターフェースに適用できるルートマップは1つです。1つのルートマップには、最大で8個のルートマップエントリーを設定できます。
permit指定のルートマップエントリー(例:route-map PBR permit 20)では、match ip addressコマンドで条件を、set ip next-hopコマンドなどでアクションを設定します。permit指定のルートマップエントリーでは、必ずアクションを設定してください。
deny指定のルートマップエントリー(例:route-map PBR deny 10)でも、match ip addressコマンドを設定してポリシーベースルーティングの対象外となる条件を設定できます。なお、deny指定のルートマップエントリーでは、アクションは設定しません。
IPv4ポリシーベースルーティングのポリシー定義方法を以下にまとめます。
ルートマップエントリー | match ip addressコマンドで 指定した標準IPアクセスリスト | 条件に一致した場合の動作概要 |
---|---|---|
permit指定 | permitルール | 当該ルートマップエントリーに設定したset ip next-hopコマンドなどのアクションが適用され、ポリシーベースルーティングされる。一致したトラフィックは、それより老番のルートマップエントリーではチェックされない。 |
permit指定 | denyルール | 当該ルートマップエントリーのアクションは適用されず、通常のルーティングテーブルに従って中継される。一致したトラフィックは、それより老番のルートマップエントリーではチェックされない。 |
deny指定 | permitルール | 通常のルーティングテーブルに従ってレイヤー3中継される。一致したトラフィックは、それより老番のルートマップエントリーではチェックされない。 |
deny指定 | denyルール | deny指定のルートマップエントリーでの、アクセスリストのdenyルールの設定は未サポート。 |
以下に、設定例を示します。
# ACL ip access-list ACL-1 1999 10 permit host 10.1.1.100 any ...(1) 20 permit 10.1.2.0 0.0.0.255 host 20.1.1.100 ...(1) ip access-list ACL-2 1998 10 deny 10.1.201.0 0.0.0.255 20.1.201.0 0.0.0.255 ...(2) 20 deny any 20.1.250.0 0.0.0.255 ...(2) 50 permit 10.1.0.0 0.0.255.255 any ...(3) # ROUTEFILTER route-map PBR deny 10 match ip address ACL-1 route-map PBR permit 20 set ip next-hop 192.168.10.100 match ip address ACL-2
(1)に一致するトラフィックは、「route-map PBR deny 10」にマッチします。deny指定のルートマップエントリーのため、通常のルーティングテーブルに従って中継されます。対象トラフィックは、これより老番のルートマップエントリーではチェックされません。
(2)に一致するトラフィックは、「route-map PBR permit 20」にマッチします。permit指定のルートマップエントリーでアクセスリストのdenyルールでマッチしているため、アクションは適用されず、通常のルーティングテーブルに従って中継されます。対象トラフィックは、これより老番のルートマップエントリーではチェックされません。
(3)に一致するトラフィックは、「route-map PBR permit 20」にマッチします。permit指定のルートマップエントリーでアクセスリストのpermitルールでマッチしているため、アクションが適用され、ポリシーベースルーティングされます。対象トラフィックは、これより老番のルートマップエントリーではチェックされません。
いずれにもマッチしない場合は、通常のルーティングテーブルに従って中継されます。
IPv6ポリシーベースルーティングのポリシーの定義
IPv6ポリシーベースルーティングのポリシーは、ルートマップエントリーで定義します。一致条件は、match ipv6 addressコマンドで指定する標準IPv6アクセスリストにより決定され、条件に一致した場合に以下のsetコマンドで設定した処理が適用されます。
- set ipv6 next-hop
条件に一致したパケットを、指定したネクストホップ宛てにルーティングします。
- set ipv6 default next-hop
条件に一致したパケットの宛先ネットワークのルート情報がルーティングテーブルにない場合に、指定したネクストホップ宛てにルーティングします。ただし、宛先ネットワークがデフォルトルートまたはdirectly connected経路に一致する場合は例外で、本コマンドの場合でも指定したネクストホップ宛てにルーティングします。
- set ipv6 precedence
条件に一致したパケットの、Traffic Classフィールドの上位3bitの値を変更します。
match ipv6 addressコマンドで拡張IPv6アクセスリストを指定しても、動作しません。標準IPv6アクセスリストを指定してください。
受信したパケットの宛先ネットワークが自装置に直接接続されているネットワーク(directly connected経路)の場合でも、条件に一致するとポリシーベースルーティングの対象になります。
IPv6ポリシーベースルーティングのポリシー定義方法は、IPv4ポリシーベースルーティングのポリシー定義方法と基本的には同じですが、「permit指定のルートマップエントリーで、アクセスリストのdenyルールでマッチした場合」のみ、「当該ルートマップエントリーの対象外になり、これより老番のルートマップエントリーでもチェックされる」動作になることに注意してください。