目次
概要
最適ルートを柔軟に制御するためのさまざまな設定を考えます。これらの設定をきちんとマスターすれば、最適ルートを自由自在に決めてパケットの転送経路を制御できます。
ネットワーク構成
3台のルータR1、R2、R3が次の図のように接続されています。
設定情報
ルーティングプロトコルには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されたルートのアドミニストレイティブディスタンスだけを変更することができます。
オフセットリストによる制御
設定
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ルーティング応用
- DNSラウンドロビン方式の負荷分散
- 負荷分散装置(ロードバランサ)の仕組み
- ルーティングプロセス ~実行中のルーティングプロトコル用のプログラム~
- 複数のルーティングプロトコルの利用
- 再配送(再配布) ~ルーティングドメイン境界で必須の設定~
- Cisco再配送(再配布)の設定 ~redistributeコマンド~
- Cisco 再配送の設定例 ~OSPFとRIPの双方向再配送~
- 再配送 設定ミスの切り分けと修正 Part1
- 再配送 設定ミスの切り分けと修正 Part2
- 再配送 設定ミスの切り分けと修正 Part3
- 再配送 設定ミスの切り分けと修正 Part4
- 再配送 設定ミスの切り分けと修正 Part5
- 再配送 設定ミスの切り分けと修正 Part6
- オフセットリスト(offset-list) ~ルート情報のメトリックを加算~
- オフセットリストの設定例 RIP
- オフセットリストの設定例 EIGRP
- ルートフィルタの概要
- ルートフィルタのポイント
- ディストリビュートリストによるルートフィルタの設定
- Ciscoディストリビュートリストによるルートフィルタの設定例
- プレフィクスリスト(prefix-list)によるルートフィルタの設定
- Ciscoプレフィクスリストによるルートフィルタの設定例
- Ciscoルートマップ(route-map)の概要 ~何をどう処理するか~
- Ciscoルートマップの設定
- Ciscoルートマップ(route-map)設定のポイント
- Ciscoルートマップによる再配送時のルート制御の設定例
- ポリシーベースルーティングの設定例
- GREトンネルインタフェース ~仮想的なポイントツーポイント接続~
- GREトンネルインタフェースの設定例
- GREトンネルの注意点 ~フラッピングしないように~
- オーバーレイネットワークとアンダーレイネットワーク
- ルート制御 ケーススタディ Part1
- ルート制御 ケーススタディ Part2
- ルート制御 ケーススタディ Part3
- VRF/VRF-Liteの概要 ~仮想的にルータを分割する~
- VRFの設定と確認コマンド [Cisco]
- VRF-Liteによるレイヤ3VPNの設定例 [Cisco]
- VRFルートリーク(スタティックルート)
- VRFルートリーク(スタティックルート)の設定例
- VRFルートリーク(MP-BGP)
- VRFルートリーク(MP-BGP)の設定例
- [FVRFの仕組み] FVRF(Front door VRF)とは
- [FVRFの仕組み] ポイントツーポイントGREトンネル:FVRFなし
- [FVRFの仕組み] ポイントツーポイントGREトンネル : FVRFあり(tunnel vrfコマンド)
- [FVRFの仕組み] IPSec VTI : FRVRFあり
- [FVRFの仕組み] IPSec VTI : FVRFあり 設定例
- [FVRFの仕組み] DMVPN : FVRFあり
- [FVRFの仕組み] DMVPN : FVRFあり 設定例 Part1
- [FVRFの仕組み] DMVPN : FVRFあり 設定例 Part2
- tunnel vrfコマンド
- tunnel vrfコマンドの設定例
- [演習] ルーティングループの防止
- [演習] 企業ネットワーク構築演習 Part1:拠点1の構築
- [演習] 企業ネットワーク構築演習 Part2:拠点2/拠点3の構築
- [演習] 企業ネットワーク構築演習 Part3:広域イーサネットの接続
- [演習] 企業ネットワーク構築演習 Part4:インターネット(AS1/AS2)の構築
- [演習] 企業ネットワーク構築演習 Part5:インターネットへの接続
- [演習] 企業ネットワーク構築演習 Part6:インターネットVPNの構築