概要

最適ルートを柔軟に制御するためのさまざまな設定を考えます。これらの設定をきちんとマスターすれば、最適ルートを自由自在に決めてパケットの転送経路を制御できます。

ネットワーク構成

3台のルータR1、R2、R3が次の図のように接続されています。

図 ルート制御 ケーススタディ Part1 ネットワーク構成
図 ルート制御 ケーススタディ Part1 ネットワーク構成

設定情報

ルーティングプロトコルにはEIGRPを利用し、AS番号は1としています。各ルータの設定の抜粋を示します。

R1 設定抜粋

interface FastEthernet0/0.123
 encapsulation dot1Q 123
 ip address 192.168.123.1 255.255.255.0
!
router eigrp 1
 network 192.168.123.0
 no auto-summary

R2 設定抜粋

interface FastEthernet0/0.23
 encapsulation dot1Q 23
 ip address 192.168.23.2 255.255.255.0
!
interface FastEthernet0/0.123
 encapsulation dot1Q 123
 ip address 192.168.123.2 255.255.255.0
!
router eigrp 1
 network 192.168.0.0 0.0.255.255
 no auto-summary

R3 設定抜粋

interface FastEthernet0/0.23
 encapsulation dot1Q 23
 ip address 192.168.23.3 255.255.255.0
!
interface FastEthernet0/0.123
 encapsulation dot1Q 123
 ip address 192.168.123.3 255.255.255.0
!
router eigrp 1
 network 192.168.0.0 0.0.255.255
 no auto-summary

問題

R1のルーティングテーブルには、192.168.23.0/24へのルートが等コストロードバランスによって2つ載せられています。

R1 show ip route

R1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.123.0/24 is directly connected, FastEthernet0/0.123
D    192.168.23.0/24
           [90/30720] via 192.168.123.3, 00:06:51, FastEthernet0/0.123
           [90/30720] via 192.168.123.2, 00:06:51, FastEthernet0/0.123

R1は、192.168.23.0/24へIPパケットをルーティングするときに、等コストロードバランスではなくR3を優先するようにしてください。

アドミニストレイティブディスタンスによる制御

設定

R1

router eigrp 1
 distance 89 192.168.123.3 0.0.0.0

解説

ルーティングテーブルには、特定のネットワークに対する最適なルート情報を登録します。同じネットワークに対して複数のルート情報がある場合、最適なものを選択しなければいけません。そのための基準が、以下の2つです。

  • メトリック
  • アドミニストレーティブディスタンス

ルーティングテーブルに登録されるルート情報を制御するためには、メトリックまたはアドミニストレーティブディスタンスを調整します。どちらも値が小さい方が優先されます。

あまり意識されないのですが、アドミニストレーティブディスタンスの調整は同じルーティングプロセスで学習しているルート情報に対しても可能です。アドミニストレーティブディスタンスを利用するのは、あるネットワークのルート情報をEIGRPとOSPF両方で学習しているときに、OSPFを優先したいというような場合がほとんどです。ですが、この問題のように192.168.23.0/24をEIGRPで2つ学習しているときにもアドミニストレーティブディスタンスによる制御が可能です。

R1でR3から受信したEIGRPルートのアドミニストレーティブディスタンス値を小さくすれば、R1のルーティングテーブルには192.168.23.0/24のルートとして等コストロードバランスではなく、R3をネクストホップとするルート情報が登録されます。そのための設定は、以下の通りです。

R1

router eigrp 1
 distance 89 192.168.123.3 0.0.0.0

この設定により、192.168.123.3から受信したEIGRPルートのアドミニストレーティブディスタンス値を89にします。設定後、R1のルーティングテーブルは次のようになります。

R1 アドミニストレーティブディスタンス変更後のルーティングテーブル

R1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.123.0/24 is directly connected, FastEthernet0/0.123
D    192.168.23.0/24
           [89/30720] via 192.168.123.3, 00:00:07, FastEthernet0/0.123

R3(192.168.123.3)から受信したルートのアドミニストレーティブディスタンス値がデフォルトの90から89へ変更されていることがわかります。ただ、R1のEIGRPトポロジーテーブル上では変更ありません。

R1 EIGRPトポロジテーブル

R1#show ip eigrp topology
IP-EIGRP Topology Table for AS(1)/ID(192.168.123.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status

P 192.168.123.0/24, 1 successors, FD is 28160
        via Connected, FastEthernet0/0.123
P 192.168.23.0/24, 1 successors, FD is 30720
        via 192.168.123.3 (30720/28160), FastEthernet0/0.123
        via 192.168.123.2 (30720/28160), FastEthernet0/0.123

R2(192.168.123.2)とR3(192.168.123.3)から受信したルートのメトリック(FD)が同じ30720で両方ともサクセサです。

このようにアドミニストレーティブディスタンスの制御は、異なるルーティングプロセスのルートだけでなく同じルーティングプロセス内のルートでも可能だということをぜひ知っておいてください。

アドミニストレイティブディスタンスの設定の変更について

以下、アドミニストレーティブディスタンス値を変更する設定についての補足です。アドミニストレーティブディスタンスを変更するには、ルーティングプロトコルのコンフィグレーションモードでdistanceコマンドによって、アドミニストレーティブディスタンスを変更することができます。distanceコマンドの構文は次のとおりです。

(config-router)#distance ‹AD-value› [<neighbor-address>] [<wildcard-mask>] {<ACL>}

<AD-value> : アドミニストレイティブディスタンス値
<neighbor-address> <wildcard-mask> : ネイバーのIPアドレス ワイルドカードマスク
<ACL> : ACL番号

distanceコマンドのあとに設定したいアドミニストレイティブディスタンス値を指定すると、そのルーティングプロトコルのすべてのルートのアドミニストレイティブディスタンスが変更されます。<neighbor-address> <wildcard-mask>によって、特定のネイバーから受信したルートのアドミニストレイティブディスタンスを変更することができます。なお、<neighbor-address> <wildcard-mask>の指定を0.0.0.0 255.255.255.255とすると、「any」の意味です。また、最後にアクセスリスト番号を関連付けることによって、アクセスリストでpermitされたルートのアドミニストレイティブディスタンスだけを変更することができます。

OSPF/EIGRP/BGPはそれぞれルートの種類ごとにアドミニストレイティブディスタンスを変更するためのコマンドもあります。

オフセットリストによる制御

設定

R2

access-list 1 permit 192.168.23.0

router eigrp 1
 offset-list 1 out 100 FastEthernet0/0.123

解説

オフセットリストを利用して、R1で192.168.23.0/24のルートとしてR3を優先するようにします。オフセットリストの利用では、R1だけでの設定では実現できません。オフセットリストでは、ルート情報の送信元による制御ができないからです。オフセットリストを利用するには、R2で設定します。R2からR1へルートを送信するときに、オフセットリストで192.168.23.0/24のメトリックを加算します。R2でのオフセットリスト設定のコマンドは次のようになります。

R2 オフセットリストの設定

access-list 1 permit 192.168.23.0

router eigrp 1
 offset-list 1 out 100 FastEthernet0/0.123

この設定により、R2はFastEthernet0/0.123から送信する192.168.23.0/24のメトリックに100を加算します。オフセットリスト設定後、R2でshow ip protocolsは次のように表示されます。

R2 show ip protocols(オフセットリストの設定)

R2#show ip protocols
Routing Protocol is "eigrp 1"
  Outgoing update filter list for all interfaces is not set
  Incoming update filter list for all interfaces is not set
  Outgoing routes in FastEthernet0/0.123 will have 100 added to metric if on list 1
  Default networks flagged in outgoing updates
  Default networks accepted from incoming updates
  EIGRP metric weight K1=1, K2=0, K3=1, K4=0, K5=0
  EIGRP maximum hopcount 100
  EIGRP maximum metric variance 1
  Redistributing: eigrp 1
  EIGRP NSF-aware route hold timer is 240s
  Automatic network summarization is not in effect
  Maximum path: 4
  Routing for Networks:
    192.168.0.0/16
  Routing Information Sources:
    Gateway         Distance      Last Update
    192.168.123.3         90      00:22:41
    192.168.123.1         90      00:01:34
    192.168.23.3          90      00:22:41
  Distance: internal 90 external 170

その結果、R1では192.168.23.0/24のルートとしてR3(192.168.123.3)をネクストホップとするルートのみがルーティングテーブルに登録されます。

R1 show ip route

R1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.123.0/24 is directly connected, FastEthernet0/0.123
D    192.168.23.0/24
           [90/30720] via 192.168.123.3, 00:01:10, FastEthernet0/0.123

R1のEIGRPトポロジーテーブルを見ると、R2から受信する192.168.23.0/24のAD(Advertised Distance)がR3のものより100増えていることがわかります。そのためR3から受信するルートがサクセサとなっています。

R1 show ip eigrp topology

R1#show ip eigrp topology
IP-EIGRP Topology Table for AS(1)/ID(192.168.123.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status

P 192.168.123.0/24, 1 successors, FD is 28160
        via Connected, FastEthernet0/0.123
P 192.168.23.0/24, 1 successors, FD is 30720
        via 192.168.123.3 (30720/28160), FastEthernet0/0.123
        via 192.168.123.2 (30820/28260), FastEthernet0/0.123

こうしたオフセットリストは、かなり古くからサポートされているコマンドです。そのせいか、あんまり細かい制御ができない面もあります。たとえば、ルートの送信元の指定ができません。また、オフセットリストの対象をネットワークアドレスのみで決めています。もっと細かい制御を行うために、ルートマップを利用することができます。IOS 12.4からディストリビュートリストにルートマップを適用することが可能です。ルートマップであれば、ルートの送信元やサブネットマスクも含めたルートの指定を行った上で、メトリックの変更が可能です。

オフセットリストの概要

オフセットリストは、ルータが送受信するルート情報のメトリックを加算する機能です。RIPやEIGRPのディスタンスベクタ系ルーティングプロトコルで利用できます。ルータ間でLSAを交換するOSPFでは、オフセットリストを利用することができません。

RIPやEIGRPでインタフェースからルート情報を送受信するタイミングで特定のルートのメトリック値を加算することが可能です。
オフセットリストの設定は、ルーティングプロトコルのコンフィグレーションモードで行います。コマンド構文は以下の通りです。

Router(config-router)#offset-list ‹ACL› {in|out} ‹offset› [‹interface›]

‹ACL›:標準アクセスリスト番号、または名前付きの標準アクセスリスト名です。
アクセスリストでpermitされたルート情報がメトリック追加の対象です。

{in|out}:メトリックを加算するタイミングの指定です。
‹offset›:加算するメトリック値です。

‹interface›:インタフェースの指定。省略すると全インタフェースが対象です。

そして、オフセットリストの適用を確認するには、show ip protocolsコマンドを利用します。また、ルーティングテーブルやEIGRPトポロジーテーブルなどでもオフセットリストの確認ができます。

ルートマップによる制御

設定

R1

router eigrp 1
 distribute-list route-map ADD_metric in FastEthernet0/0.123
!
access-list 1 permit 192.168.23.0
access-list 2 permit 192.168.123.2
!
route-map ADD_metric permit 10
 match ip address 1
 match ip route-source 2
 set metric 90000 10 255 1 1500
!
route-map ADD_metric permit 100

解説

R1で192.168.23.0/24のルートとしてR3を優先するようにします。そのために、R2から192.168.23.0/24のルートを受信したときに、メトリックを増やします。オフセットリストでは、ルートの送信元までの指定はできませんでした。ルートマップを利用すれば、match ip route-sourceの条件でルートの送信元の指定もできます。R1での設定は、次のようになります。

R1

router eigrp 1
 distribute-list route-map ADD_metric in FastEthernet0/0.123
!
access-list 1 permit 192.168.23.0
access-list 2 permit 192.168.123.2
!
route-map ADD_metric permit 10
 match ip address 1
 match ip route-source 2
 set metric 90000 10 255 1 1500
!
route-map ADD_metric permit 100

この設定は、「ADD_metric」という名前でルートマップを作成しています。各シーケンスの内容を詳しく考えます。

‹シーケンス10›
シーケンス10はpermitです。matchの条件に一致したルート情報を許可します。match ip address 1 にて、ルート情報のネットワークアドレスを指定しています。この「1」はアクセスリスト1です。つまり、match ip address 1 は、ネットワークアドレスが「192.168.23.0」のルートが対象です。そして、match ip route-source 2 でルート情報の送信元の指定です。「2」とはアクセスリスト2で、ルートの送信元が192.168.123.2が対象です。この2つのmatch条件をまとめると、

  • R2から受信した(match ip route-source 2)
  • ネットワークアドレス 192.168.23.0 (match ip address 1)

がシーケンス10でpermitされる対象です。
そして、シーケンス10にはsetコマンドがあります。set metricによってpermitされた対象にメトリックの指定を行っています。ただ、BGPルートや再配送時のときのset metricとは動作が違います。指定したメトリック値になるわけではありません。EIGRPは、ネイバーから受信したルートのメトリックに受信インタフェースのメトリックを足します。(単純な足し算ではないこともありますが・・・)このときのset metricは足し合わせるメトリックの指定です。R3から受信する192.168.23.0/24のルートよりも、R2から受信する192.168.23.0/24のルートの方がメトリックが大きくなるようにしています。

‹シーケンス100›
シーケンス100は、暗黙のdenyを回避するためのシーケンスです。R2から受信したネットワークアドレス192.168.23.0以外のすべてのルートをpermitするためのシーケンスです。このシーケンス100がないと、R3から受信するルートが暗黙のdenyでフィルタされてしまいます。

設定後のR1のEIGRPトポロジテーブルは次のようになります。

R1 show ip eigrp topology

R1#show ip eigrp topology
IP-EIGRP Topology Table for AS(1)/ID(192.168.123.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status

P 192.168.123.0/24, 1 successors, FD is 28160
        via Connected, FastEthernet0/0.123
P 192.168.23.0/24, 1 successors, FD is 30720
        via 192.168.123.3 (30720/28160), FastEthernet0/0.123
        via 192.168.123.2 (30976/28160), FastEthernet0/0.123

R2から受信したルート「28160」というメトリックです。それにルートマップのset metricの処理を行うことで、メトリック値は「30976」になっています。R3から受信したルートの最終的なメトリックは「30720」です。そのため、192.168.23.0/24に対するサクセサルートはR3経由のルートです。R2経由のルートはフィージブルサクセサとなります。

図 ルートマップを適用したディストリビュートリストとトポロジテーブル
図 ルートマップを適用したディストリビュートリストとトポロジテーブル

その結果、ルーティングテーブルにはサクセサ、つまりR3をネクストホップとするルートが登録されます。R1のルーティングテーブルは次のようになっています。

R1 show ip route

R1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.123.0/24 is directly connected, FastEthernet0/0.123
D    192.168.23.0/24
           [90/30720] via 192.168.123.3, 00:09:40, FastEthernet0/0.123

ディストリビュートリストでルートマップを適用

EIGRPでルートを送信したり受信するときにルートマップをディストリビュートリストで適用することでより細かい制御ができます。ルートを単純にpermit/denyするだけでなく、メトリックの変更なども可能です。

(config)#router eigrp ‹AS›
(config-router)#distribute-list route-map ‹route-map-name› {in|out} [‹interface›]

‹AS›:EIGRP AS番号
‹route-map-name›:適用するルートマップ名
‹interface›:インタフェースの指定

まとめ

以上のようにルーティングテーブルに登録する最適ルートを制御するために、さまざまな方法が使えます。

  • アドミニストレイティブディスタンスの制御
  • オフセットリストでメトリックの制御
  • ルートマップによる制御

これらの最適ルートの制御方法を理解すれば、ルーティングについての理解もより深まります。

関連記事

IPルーティング応用