ルートフィルタリングとは、ルーティングプロトコル(OSPF,EIGRP,BGPなど)によって送受信するルート情報をフィルタリングする機能のことです。
これにより特定のルート情報のみを他ルータに送信すると言ったことが可能です。
その逆も然りで、特定のルート情報を他ルータに送信しないと言ったことも可能です。
具体的な数字で説明すると、ルータR1とR2があるとします。
R1には192.168.1.0/24と192.168.2.0/24の2つのルート情報を持っているとします。
R1はR2に192.168.1.0/24のルート情報は送信したいけど、192.168.2.0/24のルート情報を送信したくない。
そういった場合にルートフィルタリングが使用できます。
※ルート情報=ネットワークと言う意味で記載しています
なぜルートフィルタリングを行うのか。その目的は以下の通りです。
===========================================
1. 特定のルート情報を隠蔽したい
2. 再配送(redistribute)でのルーティングループを防止する
===========================================
詳しくは別途投稿する中で記載していきます。
※再配送→異なるルーティングプロトコル間でのルーティングを行うための設定
(例 : OSPF ⇔ EIGRP , OSPF⇔ BGP, EIGRP ⇔ BGPなど)
では具体的なルートフィルタリングの方法は主に以下のものがあります。
1. ディストリビュートリスト (distribute-list)
2. ルートマップ (root-map)
※各ルーティングプロトコル共通して使用できるものです。
個別のルーティングプロトコルで使用できるものまで記載すると、内容が混乱するので割愛しています。
今回はまず1. のディストリビュートリスト (以下:distribute-list)から記載していきます。
1. distribute-list
distribute-listにより、ルートフィルタリングの目的1と2が実現可能になります。
distribute-listを実現するために、標準ACLもしくはプレフィックスリストで定義したリストを使用します。
※再配送の際も同じ手法を使用
では構文を見ていきましょう。
==============================================
①構文(例): 標準ACLをEIGRPに適用した場合
※192.168.1.0 0.0.0.255のルートであれば他ルートへpermit(許可)し、Gi0/0からout(他ルータへ送信)する
(config)#access-list 10 permit 192.168.1.0 0.0.0.255
(config)# router eigrp 1
(config-router)# distribute-list 10 out GigabitEthernet0/0
②構文(例): prefix-listをEIGRPに適用した場合
※192.168.1.0/24のルートであれば他ルートへpermit(許可)し、Gi0/0からout(他ルータへ送信)する
(config)# ip prefix-list PRE01 permit 192.168.1.0/24
(config)# router eigrp 1
(config-router)# distribute-list prefix PRE01 out GigabitEthernet0/0
=============================================
今回の構文ではout(他ルータへ送信)を使用しましたが、両方ともin(他ルータから受信)も使用できます。
ここで、少しACLとプレフィックスリストの違いに触れてみましょう。
以下、各設定の構文の例です。
【標準ACL】
access-list 10 permit 192.168.1.0 0.0.0.255
(プレフィックスリスト)
ip prefix-list PRE01 permit 192.168.1.0/24
この違いは何でしょうか。
違いは、プレフィックスリストの方はサブネットまで確認することができます。
標準ACLの方ですと、0.0.0.255となっていますので、192.168.1.までのビット値が同じであれば問題なしと判断されます。つまり、192.168.1.0~255/24でも192.168.1.128~255/25でも問題ないわけです。
それに対して、プレフィックスリストはサブネットまで確認されるので、上記の場合は192.168.1.0~255/24しか問題なしと判断されないのです。192.168.1.0~127/25や192.168.1.128~255/25だとダメです。
一般的にACLで指定するよりも、プレフィックスリストで指定した方が高速処理されるようです。
またプレフィックスリストは、オプションでgeやleなどのサブネットの範囲を柔軟に指定できます。
最後にdistribute-listの注意点になります。特にOSPFに関してです。
OSPFでdistribute-list in(他ルータから受信) は使用しないこと。
これはルートフィルタリングができても、LSAをフィルタリングできるわけではないため。
また同じくOSPFで、distribute-list out(他ルータへ送信)は通常のdistribute-listでは使用できず、再配送によるdistribute-listでしか適用できないです。仮に行ったとしても動作しません。
これを読む通りOSPFはdistribute-listに制約が多いです。OSPFでは、area filter-listをABRで実装し、distribute-listのinやoutに代わる手法と取ります。
(※手法はこれだけと言う意味ではないです)
※ABR→OSPFの異なるエリア間(エリア0とエリア1など)の境目に設置されたルータのこと。
OSPFと異なるルーティングプロトコルに境目に位置するルータをASBRとも言います。