conf t

インフラエンジニアのメモ

アドバタイズ制限 distribute-list

今回はEIGRPのdistribute-listを学習します。

 

 

現在、下図のR1からR5はEIGRPで経路情報を交換しています。 

ルータR1からR2へEIGRPで経路情報をアドバタイズするのですが、

10.1.2.0のセグメントは隠したいとします。

このようにアドバタイズを制限したいときに使うのが

distribute-listです。

これはaccess-listを用いて、アドバタイズを制限することができるコマンドです。

 

以下をR1にて打ち込みます。 

R1#(config)access-list 1 deny 10.1.2.0 0.0.0.255

R1#(config)access-list 1 permit any

R1#(config)router eigrp 1

R1#(config-router)distribute-list 1 out serial 0/0

 

f:id:monaski:20131201211923p:plain

 distribute-listでoutを指定すると、アドバタイズの送信を制限、

inを指定すると、アドバタイズの受信を制限します。

拒否用のアクセスリストを作成する際は、最後にpermit anyを忘れない事。

access-listは最後に暗黙のdenyが入ってますから、すべてのアドバタイズを

拒否してしまいます。

 

上記を設定後、R2からR4へpingをしてみたのですが、成功してしまいました・・・。

 

おかしいと思い、R2でshow ip routeを実行してみると、

10.0.0.0/8を学習していました。

EIGRPはデフォルトで経路集約が有効になっています。

クラスフル境界のルータはクラスフルアドレスに従い、

自動経路集約します。

 

今回10.0.0.0/8のクラスAと192.168.1.0/24のクラスBがあり、

ちょうどその境界にルータR1がいます。だから自動集約されます。

 

今回10.1.1.0と10.1.2.0はともにクラスAのネットワークですから、

集約されて10.0.0.0としてアドバタイズされたようです。

 

 

ということで、自動集約を無効かするため、R1で以下を実行。

 

R1#(config-router)no auto-summary

 

これで自動集約は無効になりました。

 

ちなみにR1にてeigrpに参加させるネットワークをnetworkで指定する場合は、

 

R1#(config-router)network 10.0.0.0

 

とクラスフルに指定しても、

 

R1#(config-router)network 10.1.1.0 0.0.0.255

R1#(config-router)network 10.1.2.0 0.0.0.255

 

と分けて

指定してもどちらでも大丈夫です。

クラスフルで指定したからと言って、経路集約を強制されるという

わけではありません。

 

 

 

 

R2のルーティングテーブルを確認すると

f:id:monaski:20131201214317p:plain

(上がR1、下がR2のコンソールです。)

 

10.1.1.0しか学習していないことがわかります。

R2からR4へのpingも失敗しました。

distribute-listでのアドバタイズ制限が無事成功しました。

 

これにて今回は終了です。

 

 

 

 

余談。

ネットワーク構築中、疎通確認でpingを実行したところ

 

ping 10.2.1.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.2.1.2, timeout is 2 seconds:

U.U.U

Success rate is 0 percent (0/5)

 

U.U.Uってなんだ?

調べてみると、あて先が存在しない場合に出るそうです。

この場合は、10.1.2.2にpingしようとして間違えて

10.2.1.2と存在しないIPを指定しまったわけです。