EIGRP、OSPFのディルトリビュートリストを使用したルートフィルタリング

ディストリビュートリスト

ディストリビュートリスト(Distribute-list)とはフィルタリングメカニズムの一つで、特定のルートの受信または送信を制御するために使用されます。ディストリビュートリストは、アクセスリスト(ACL)、プレフィックスリスト、またはルートマップ(Route-map) と連携して、ルーティングテーブルにインポートするルートや、他のルータにアドバタイズするルートを制御する機能です。

EIGRPでのディストリビュートリストの設定

EIGRPでは、ディストリビュートリストを使用して、ルートの受信(インバウンド)や送信(アウトバウンド)を制御できます。特定のネットワークやプレフィックスに基づいてルートをフィルタリングし、不要なルートがルーティングテーブルに追加されたり、他のルータにアドバタイズされないようにします。

基本構文

Router(config)#router eigrp
Router(config-router)#distribute-list [acl-number | acl-name | prefix prefix-name | route-map route-map-name ] [ in | out ] interface-id

コマンド内容
acl-number | acl-nameアクセスリストを指定します。
prefix prefix-nameプレフィックスリストを指定します。
route-map route-map-nameルートマップを指定します。
in | outinは受信、outはアドバタイズに対してフィルタリングを適用します。
interface-id適用するインターフェイスを指定。
指定しない場合はすべてのインターフェイスに適用されます。

設定例(ACLを使用する場合)

Router1で1.1.1.1に関するルート情報をアドバタイズしないように設定します。

Router2で1.1.1.1に関するルート情報を受信しなくなっています。

設定例(ルートマップを使用する場合)

現在、Router2ではRouter1のルート情報をすべて受信しています。Router2で1.1.1.1に関するルート情報を受信しないように設定します。

ルーティング情報が更新され、Router2で10.10.10.10に関するルート情報を受信しなくなりました。

OSPFでのディストリビュートリスト

OSPFのディストリビュートリストは、ルート再配布時にのみ使用されます。OSPF内のルータ間で交換されるルート(LSA)には適用できませんが、他のルーティングプロトコル(EIGRP、BGP、RIPなど)からOSPFへ再配布する際にフィルタリングを行うことができます。

基本構文

OSPFでのdistribute-listコマンドはinとoutで構文が異なります。inの場合はEIGRPと同じですが、outの場合はフィルタリングする再配布されているルーティングプロトコルを指定します。
inの場合

Router(config)#router ospf
Router(config-router)#distribute-list [acl-number | acl-name | prefix prefix-name | route-map route-map-name ] in interface-id

コマンド内容
acl-number | acl-nameアクセスリストを指定します。
prefix prefix-nameプレフィックスリストを指定します。
route-map route-map-nameルートマップを指定します。
interface-id適用するインターフェイスを指定。
指定しない場合はすべてのインターフェイスに適用されます。

outの場合

Router(config)#router ospf
Router(config-router)#distribute-list [acl-number | acl-name | prefix prefix-name | route-map route-map-name ] out protocol

コマンド内容
acl-number | acl-nameアクセスリストを指定します。
prefix prefix-nameプレフィックスリストを指定します。
route-map route-map-nameルートマップを指定します。
protocolフィルタリングするルーティングプロトコルを指定します。

設定例(inコマンドでの設定)

Router1

Router2

Router3

Router4

現在、Router2,Router3,Router4ではRouter1のルート情報を受信しています。

※Router2,Router3も同様

Router2で1.1.1.1に関するルート情報を受信しないようにフィルタリングします。

コマンド実施後、Router2では1.1.1.1に関するルート情報を受信しなくなりましたが、Router3,Router4では1.1.1.1に関するルート情報を受信しています。これは、LSA自体をフィルタリングはしていないので、LSDBが構成され、ほかのルータとルート情報が交換されるためです。



設定例(outコマンドでの設定)

Router1

hostname Router1

int g0/2
ip address 192.168.12.1 255.255.255.0
no shut

int lo1
ip address 1.1.1.1 255.255.255.255

int lo2
ip address 2.2.2.2 255.255.255.255

router eigrp 1
netw 0.0.0.0 0.0.0.0

Router2

hostname Router2

int g0/1
ip address 192.168.12.2 255.255.255.0
no shut

int g0/3
ip address 192.168.23.2 255.255.255.0
no shut

router eigrp 1
netw 192.168.12.0 0.0.0.255

router ospf 1
netw 192.168.23.0 0.0.0.255 area 0
redistribute eigrp 1 subnets

Router3

hostname Router3

int g0/2
ip address 192.168.23.3 255.255.255.0
no shut

router ospf 1
netw 192.168.23.0 0.0.0.255 area 0

現在、Router3では再配布されたRouter1のEIGRPのルート情報を受信しています。

Router2でEIGRPから再配布されたルート情報の中の1.1.1.1に関するルート情報をRouter3にアドバタイズしないように設定します。

Router3で1.1.1.1に関するルート情報を受信しなくなりました。