ルート再配送(route-map)

Packet Tracer では、IGRP がサポートされていないため、ここでは、実機における設定例を紹介します。

 再配送する時に条件を指定して配送することができます。例えば、特定のルートごとにメトリックを設定することができます。

 配送の設定は、非常に癖が強いので、お手持ちの実機とIOSのバージョンによって異なる動作をするかもしれません。

再配送するには、ルートマップ(route-map)を指定します。

ルートマップは、以下のように様々なところで使われます。

●ルートマップ(route-map)の用途

  • 再配送(リディストリビューション)
  • ポリシーベースのルーティング
  • NATの変換対象のアドレス指定
  • BGPにおけるルートフィルタ、パスアトリビュートの変更

ここでは、ルートマップ(route-map)を使って再配送の設定を行います。

以下のネットワークを使用します。

ルートマップ(route map)の設定方法

Router(config)#route-map [map-tag] {permit | deny} [sequence-number]
Router(config-route-map)#match [condition]
Router(config-route-map)#set [action]

map-tag: ルートマップの名前
permit | deny: 許可|拒否の指定。省略した場合は、デフォルトで「permit」
sequence-number: ルートマップ名が同じ場合に使用するシーケンス番号。コマンドを省略するとデフォルトで、「10」になる。シーケンス番号は、小さい数から順番に処理される。
condition: 条件を指定。全ての条件を満さないとアクションを起こしません。
action: 条件が合致した場合のアクションの指定

●Router_Bの再配送の設定

ルートマップを設定するには、アクセスリストを組み合わせて指定します。

Router_B(config)#access-list 1 permit 172.16.0.0 ←アクセスリストでルートを指定する

Router_B(config)#route-map rip-to-igrp permit 10
Router_B(config-route-map)#match ip address 1 ←アクセスリスト1を指定します
Router_B(config-route-map)#set metric 32 100 255 1 1500 ←マッチしたら、このメトリックを使用
Router_B(config-route-map)#exit
Router_B(config)#route-map rip-to-igrp permit 20 ←マッチしなかった場合
Router_B(config-route-map)#set metric 64 100 255 1 1500 ←このメトリックを使用

 ルートマップの最後には、アクセスリストと同様に暗黙の「deny」があるので注意して下さい。どれにも一致しない場合は、再配送されなくなります。

上の例で、もしもシーケンス番号20がなければ、シーケンス番号10に一致しないルートは、再配送されません。

IGRPのシードメトリックの指定については「ルート再配送(RIPとIGRP)」を参考にして下さい。

●RIPルートの再配送

RIPの経路情報をIGRPで再配送するように設定します。その際、ルートマップ「rip-to-igrp」を指定します。

Router_B(config)#router igrp 100
Router_B(config-router)#redistribute rip route-map rip-to-igrp
Router_B(config-router)#network 172.18.0.0

●IGRPルートの再配送

IGRPで学習したルートをRIPへ再配送するように再配布の設定にシードメトリックを指定します。

Router_B(config)#router rip
Router_B(config-router)#redistribute igrp 100 metric 10
Router_B(config)#network 172.17.0.0

「redistribute eigrp 100 metric 10」と指定することで、シードメトリック値を「10」に設定します。

それでは、ルータを設定してゆきます。

Router_A、Router_CのF0にPCを接続するのは、少々面倒です。
 強制的にインタフェースをUPさせるために、F0インタフェースで「no keepalive」コマンドを設定しておきます。

●Router_Aの設定

!
version 12.3
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname Router_A
!
boot-start-marker
boot-end-marker
!
enable password cisco
!
no aaa new-model
ip subnet-zero
!
ip cef
!
interface FastEthernet0
 ip address 172.16.0.1 255.255.0.0
 speed auto
 no keepalive
!
interface Serial0
 bandwidth 64
 ip address 172.17.0.1 255.255.0.0
 clockrate 64000
 no fair-queue
!
router rip
 network 172.16.0.0
 network 172.17.0.0
!
ip classless
no ip http server
!
!
line con 0
line aux 0
line vty 0 4
 password cisco
 login
!
end

●Router_Bの設定

!
version 12.1
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname Router_B
!
logging buffered 4096 debugging
enable password cisco
!
memory-size iomem 25
ip subnet-zero
!
interface Serial0
 bandwidth 64
 ip address 172.17.0.2 255.255.0.0
 no fair-queue
!
interface Serial1
 bandwidth 64
 ip address 172.18.0.1 255.255.0.0
!
interface FastEthernet0
 no ip address
 shutdown
 speed auto
!
router rip
 redistribute igrp 100 metric 10
 network 172.17.0.0
!
router igrp 100
 redistribute rip route-map rip-to-igrp
 network 172.18.0.0
!
ip classless
no ip http server
!
access-list 1 permit 172.16.0.0
route-map rip-to-igrp permit 10
 match ip address 1
 set metric 32 100 255 1 1500
!
route-map rip-to-igrp permit 20
 set metric 64 100 255 1 1500
!
line con 0
 exec-timeout 0 0
 transport input none
line aux 0
line vty 0 4
 password cisco
 login
!
end

●Router_Cの設定

!
version 12.2
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname Router_C
!
enable password cisco
!
memory-size iomem 25
ip subnet-zero
!
interface FastEthernet0
 ip address 172.19.0.1 255.255.0.0
 no keepalive
 speed auto
!
interface Serial0
 bandwidth 64
 ip address 172.18.0.2 255.255.0.0
 no fair-queue
 clockrate 64000
!
interface Serial1
 no ip address
 shutdown
!
interface Serial2
 no ip address
 shutdown
!
router igrp 100
 network 172.18.0.0
 network 172.19.0.0
!
ip classless
no ip http server
!
line con 0
line aux 0
line vty 0 4
 password cisco
 login
!
end

各ルータのルーティングテーブルを確認してみます。

●Router_Aのルーティングテーブル

Gateway of last resort is not set

C    172.17.0.0/16 is directly connected, Serial0
C    172.16.0.0/16 is directly connected, FastEthernet0
R    172.19.0.0/16 [120/10] via 172.17.0.2, 00:00:01, Serial0
R    172.18.0.0/16 [120/10] via 172.17.0.2, 00:00:01, Serial0

●Router_Bのルーティングテーブル

Gateway of last resort is not set

C    172.17.0.0/16 is directly connected, Serial0
R    172.16.0.0/16 [120/1] via 172.17.0.1, 00:00:03, Serial0
I    172.19.0.0/16 [100/158260] via 172.18.0.2, 00:00:27, Serial1
C    172.18.0.0/16 is directly connected, Serial1

●Router_Cのルーティングテーブル

Gateway of last resort is not set

I    172.17.0.0/16 [100/158350] via 172.18.0.1, 00:00:01, Serial0
I    172.16.0.0/16 [100/314600] via 172.18.0.1, 00:00:01, Serial0
C    172.19.0.0/16 is directly connected, FastEthernet0
C    172.18.0.0/16 is directly connected, Serial0

ルートマップ(route-map)の検証

 IGRPでは、経路を計算するメトリックとして、「帯域幅」「遅延」「負荷」「信頼性」「MTU」の5つを使うようになっています。

メトリックの計算式は、以下になります。

メトリック=[K1×帯域幅 + (K2 × 帯域幅) ÷ (256 - 負荷) + (K3 × 遅延)] × [K5 ÷ (信頼度 + K4)]

係数であるK1~K5のデフォルト値は

K1=1,K2=0,K3=1,K4=0,K5=0

になっているので

メトリック = 帯域幅 + 遅延

になります。

K4=0,K5=0の場合、[K5 ÷ (信頼度 + K4)]は、計算されないようになっています。

ということは、ルートマップで再配送で指定したメトリックは、「帯域幅」と「遅延」だけが、使われることになります。

Router(config-router)#redistribute rip metric 帯域幅 遅延 信頼性 負荷 MTU

172.16.0.0のルート ・・・ 帯域幅:32kbps 遅延:100(10μsec)
172.17.0.0のルート ・・・ 帯域幅:64kbps 遅延:100(10μsec)

Router_Bの遅延の値は、「show int s1」で確認できます。

●Router_Cのルーティングテーブル

Router_B#show int s1
Serial1 is up, line protocol is up
  Hardware is PowerQUICC Serial
  Internet address is 172.18.0.1/16
  MTU 1500 bytes, BW 64 Kbit, DLY 20000 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation HDLC, loopback not set
 ・
 ・
(省略)

遅延の値は、「DLY 20000」となっています。

遅延はμsecを10を割ったものを使うので注意が必要です。

●172.17.0.0のルート

172.17.0.0へのメトリックは、「158350」になっています。

メトリック=帯域幅+遅延

帯域幅 = 10000000/64 = 156250

遅延 = 100(再配送で指定) + 20000/10 = 2100

メトリック=帯域幅+遅延 = 156250 + 2100 = 158350

●172.16.0.0のルート

172.17.0.0へのメトリックは、「314600」になっています。

メトリック=帯域幅+遅延

帯域幅 = 10000000/32 = 312500

遅延 = 100(再配送で指定) + 20000/10 = 2100

メトリック=帯域幅+遅延 = 312500 + 2100 = 314600

◆帯域幅(BW)と遅延(DLY)の変更

ちなみに、帯域幅(BW)と遅延(DLY)に関しては、コマンドでデフォルトの値を変更することができます。

 帯域幅(BW)と遅延(DLY)を変更するには、インタフェースコンフィグレーションモードで、以下のコマンドで指定します。

Router(config-if)#bandwidth 56
Router(config-if)#delay 2000

関連コンテンツ