今回はRIPへのルート情報の再配送の際に登場するNext Hopフィールドについて解説致します。
座学
RIPのNext Hopフィールド
RIPのルート情報を広報する際に使用されるResponseメッセージにはNext Hopと呼ばれるフィールドが存在します。
このNext Hopフィールドは、ある状況下において、最適なルーティングを実現するために使用されます。
一般的に、上記のNext Hopフィールドには0.0.0.0が格納されます。もし、RIP経由でルート情報を学習し、かつ、Next Hopフィールドが0.0.0.0の場合、そのルート情報のネクストホップには、ルート情報の広報元のアドレスを使用します。
以下の値が同じルート情報を広報する場合に、Next Hopフィールドに0.0.0.0以外が格納されます。
- RIPに再配送したルート情報のネクストホップインタフェース
- RIPでルート情報を広報する際に使用するインタフェース
例えば、下図では、R2においてRIPに再配送した10.2.2.0/24をR1に広報しています。この際、もし、R2が10.2.2.0/24のNext Hopフィールドに0.0.0.0を格納して、R1に対してルート情報を広報した場合、R1は10.2.2.0/24のネクストホップは10.1.1.2と認識します。この結果、R1は10.2.2.0/24宛のパケットをR3に直接転送せず、R2に転送してしまうため、非効率なルーティングが発生してしまいます。(この様な非効率なルーティングのことを、Suboptimal Routingと呼びます。)
上図の様な構成で、最適なルーティングを実現するために、Next Hopフィールドは使用されます。R2はR1に対して、10.2.2.0/24を広報する際、Next Hopフィールドに10.1.1.3を格納することで、R1は10.2.2.0/24のネクストホップを10.1.1.3と認識できます。この結果、R1は10.2.2.0/24宛のパケットをR3に直接転送できるため、非効率なルーティングの発生を回避可能です。
実機での動作確認
検証内容
R1とR2でRIPv2を動作させ、ルート情報を交換します。
R2のg2でRIPのSplit Horizonを無効にします。(Split Horizonが有効な場合、R2はg2がネクストホップインタフェースの10.2.2.0/24をg2から広報できないため)
R2でネクストホップに10.1.1.3を指定した10.2.2.0/24宛のスタティックルートを設定します。
R2でRIPに対してスタティックルートを再配送します。
R1が10.2.2.3と通信する際、R2を経由しないことを確認します。
初期設定
interface GigabitEthernet2
ip address 10.1.1.1 255.255.255.0
!
router rip
version 2
network 10.0.0.0
interface GigabitEthernet2
ip address 10.1.1.2 255.255.255.0
no ip split-horizon
!
ip route 10.2.2.0 255.255.255.0 10.1.1.3
!
router rip
version 2
redistribute static
network 10.0.0.0
interface Loopback0
ip address 10.2.2.3 255.255.255.0
!
interface GigabitEthernet2
ip address 10.1.1.3 255.255.255.0
R2のRIP Databaseの確認
R2のRIP Database内の10.2.2.0/24のネクストホップが10.1.1.3であることが確認できます。。
R2#show ip rip database
10.0.0.0/8 auto-summary
10.1.1.0/24 directly connected, GigabitEthernet2
10.2.2.0/24 redistributed
[1] via 10.1.1.3, from 0.0.0.0,
R2がRIP経由でルート情報を広報する際の動作確認
R2がRIP経由で広報している10.2.2.0/24のNext Hopフィールドに10.1.1.3が格納されていることが確認できます。
R2#debug ip rip
*Apr 16 10:40:29.192: RIP: build update entries
*Apr 16 10:40:29.192: 10.1.1.0/24 via 0.0.0.0, metric 1, tag 0
*Apr 16 10:40:29.192: 10.2.2.0/24 via 10.1.1.3, metric 1, tag 0
以下はR2が送信したRIPv2のResponseメッセージになります。10.2.2.0/24のNext Hopフィールドに10.1.1.3が格納されていることが確認できます。
R1がRIP経由でルート情報を受信した際の動作確認
R1がRIP経由で学習した10.2.2.0/24のNext Hopフィールドが10.1.1.3であることが確認できます。
R1#debug ip rip
*Apr 16 11:17:30.244: RIP: received v2 update from 10.1.1.2 on GigabitEthernet2
*Apr 16 11:17:30.244: 10.1.1.0/24 via 0.0.0.0 in 1 hops
*Apr 16 11:17:30.244: 10.2.2.0/24 via 10.1.1.3 in 1 hops
R1のRIP Databaseの確認
R1のRIP Databaseに存在する10.2.2.0/24のネクストホップが10.1.1.3であることが確認できます。
R1#show ip rip database
10.0.0.0/8 auto-summary
10.1.1.0/24 directly connected, GigabitEthernet2
10.2.2.0/24
[1] via 10.1.1.3, from 10.1.1.2, 00:00:08, GigabitEthernet2
R1のルーティングテーブルの確認
R1のルーティングテーブル内の10.2.2.0/24のネクストホップが10.1.1.3であることが確認できます。
R1#show ip route rip
10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
R 10.2.2.0/24 [120/1] via 10.1.1.3, 00:00:18, GigabitEthernet2
疎通確認
R1から10.2.2.3へTracerouteを実行すると、R1はR2ではなく、R3に直接パケットを転送していることが確認できます。
R1#traceroute 10.2.2.3 source 10.1.1.1 probe 1
Type escape sequence to abort.
Tracing the route to 10.2.2.3
VRF info: (vrf in name/id, vrf out name/id)
1 10.1.1.3 1 msec
コメント