ルートマップ(Route-map)



ルートマップの用途


ルートマップ(route-map)は、さまざまな用途で利用されます。主な用途として次のような用途が挙げられます。

・ポリシーベースルーティング
通常のIPルーティングはパケットの送信先IPアドレスを基にパケットの転送先を決定します。
ルートマップによって、送信先IPアドレスだけではなく、送信元IPアドレスやIPヘッダのTOSフィールドの値、パケットの長さ、出力インタフェースなどに基づいてパケットをルーティングすることができます。これをポリシーベースルーティングといいます。
ポリシーベースルーティングを行うには、ルータのインタフェースに対してip policyコマンドでルートマップを適用します。


・リディストリビューション時のルートのフィルタやメトリック、タグの設定
ルートマップを使うと、
リディストリビューション時にルートをフィルタしたり、特定のルートにメトリックやタグを設定したりすることができます。
リディストリビューション時のルートのフィルタやメトリック、タグの設定を行うにはredistributeコマンドの中でルートマップを適用します。


・BGPのルートのフィルタ、パスアトリビュートの変更
ルートマップによって
BGPのアップデートに含まれるルート情報のフィルタや、個別のルート情報に付加されているパスアトリビュートの変更を行うことができます。
BGPのルートのフィルタ、パスアトリビュートの変更を行うには、ルートマップをBGPのピアに対してneighboerコマンドの中で適用します。


・NATのアドレス変換対象の指定
NATによって
IPパケットのアドレスを変換する対象のパケットをルートマップで指定することができます。ルートマップを使うことにより、より詳細なパケットの指定が可能です。
NATのアドレス変換対象の指定を行うには、ルートマップをip nat insideコマンドの中で適用します。




ルートマップの設定コマンド

ルートマップの構文は次のようになります。

(config)#route-map [map-tag] [permit|deny] [seq-number]
(config-route-map)#match [match criteria]
(config-route-map)#set [action]

ルートマップはmap-tagで指定した名前で識別します。

permit、denyはルートマップの用途によって意味が異なります。
ルートマップをルート情報のフィルタに使うときには、permitはルートを許可、denyはルートを拒否することを意味します。
ポリシーベースルーティングを行うときには、denyは通常のルーティングを意味します。

そのあとのシーケンス番号(seq-number)はルートマップの処理を実行する順番です。
シーケンス番号の小さい処理から行われます。このシーケンス番号によってによってルートマップの条件の追加や変更などが簡単になります。

matchのあとには、一致する条件を記述します。さまざまな一致条件があります。そして、matchの条件に一致した場合、setのアクションを行います。これらのmatchやsetは設定変更を簡単に行うことができます。

また、
ルートマップの最後にはアクセスリストと同様に暗黙のdenyがあります。ルートマップを使ってルートをフィルタするときなど、最後の暗黙のdenyを忘れないように気をつけてください。




ルートマップの設定例

ルートマップの設定例として、以下の条件に基づいてリディストリビュート時のメトリック、メトリックタイプの変更の設定を考えてみましょう。


【条件】
RIPからOSPFへのリディストリビューションの設定を行います。RIPのルートのうち、192.168.1.0はシードメトリックを100、タグを10、メトリックタイプをE1として、192.168.2.0はシードメトリックを200、メトリックタイプE2として、その他のルートはシードメトリックを300にしてOSPFにリディストリビュートします。


【設定】
(config)#route-map RIP2OSPF permit 10
(config-route-map)#match ip address 1
(config-route-map)#set metric 100
(config-route-map)#set metric-type 1
(config-route-map)#set tag 10
(config-route-map)#route-map RIP2OSPF permit 20
(config-route-map)#match ip address 2
(config-route-map)#set metric 200
(config-route-map)#route-map RIP2OSPF permit 30
(config-route-map)#set metric 300
(config-route-map)#exit
(config)#access-list 1 permit 192.168.1.0
(config)#access-list 2 permit 192.168.2.0
(config)#router ospf 100
(config-router)#redistribute rip subnets route-map RIP2OSPF


【解説】
リディストリビュートする際にルートごとに異なるメトリックを与えたり、メトリックタイプを変更したりするにはルートマップを使います。

192.168.1.0のルートをリディストリビュートするときにメトリックを100、タグを10、メトリックタイプをE1に変更するには、ルートマップのタグをRIP2OSPFとして次のようなルートマップの設定を行います。

(config)#route-map RIP2OSPF permit 10
(config-route-map)#match ip address 1
(config-route-map)#set metric 100
(config-route-map)#set metric-type 1
(config-route-map)#set tag 10
(config-route-map)#exit
(config)#access-list 1 permit 192.168.1.0

match ip address 1という条件は、アクセスリスト番号1でpermitされているルートが該当します。そして、setコマンドで指定されているアクションを行います。

そして、192.168.2.0のルートをリディストリビュートするときにメトリックを200、メトリックタイプをE2にするには、次のようなルートマップの設定を行います。
一連の処理なので、同じルートマップタグでシーケンス番号を増やします。

(config-route-map)#route-map RIP2OSPF permit 20
(config-route-map)#match ip address 2
(config-route-map)#set metric 200
(config-route-map)#exit
(config)#access-list 2 permit 192.168.2.0

デフォルトのメトリックタイプはE2なので、setコマンドはシードメトリックのものだけでよいです。

そして、最後にその他のルートのシードメトリックを300にするために、同じルートマップタグでシーケンス番号を30として次の設定を行います。

(config-route-map)#route-map RIP2OSPF permit 30
(config-route-map)#set metric 300

matchコマンドがない場合、すべてのルートが一致します。残りのすべてのルートに対して、setコマンドで指定したようにメトリックが300となります。シーケンス番号30のルートマップが設定されていなければ、暗黙のdenyのためそのほかのルートがリディストリビュートされなくなるので注意が必要です。

このルートマップをredistributeコマンドの中で適用します。

(config)#router ospf 100
(config-router)#redistribute rip subnets route-map RIP2OSPF

※OSPFにリディストリビュートする際には、subnetsは必須と考えて忘れないようにしてください。






『ネットワークのおべんきょしませんか?』 を購読しませんか?
めろんぱん E-mail
メールマガジンも購読してくださいね!!購読者限定のプレゼントあり!!


(C) Copyright 2000-2004 Gene All Rights Reserved