ネットワーク

意外と知らないスタティックルートの設定種別

はじめに

ネットワークといえばルーティング!CCNA、CCNPと学習を続けていくと、OSPFやEIGRP、BGPといった様々なルーティングプロトコルが登場します。

そのため、ルーティングと言えばダイナミックルーティングに目が行きがちです。しかし、スタティックルートのことを忘れてはいけません!

Cisco IOSではスタティックルートの設定方法が3種類あるのですが、あなたはご存知でしょうか?今回は、それぞれの設定方法と動作差分を検証していきます。

 

構成図

 

Pre-Config

RT1

RT2

RT3

 

検証内容

RT2(2.2.2.2/32)からRT3(3.3.3.3/32)に通信できるよう、RT2に3.3.3.3/32に対するスタティックルートを3つの方法で設定し、それぞれの動作を検証していきます。

・ネクストホップのみ指定

・出力インターフェースのみ指定

・出力インターフェースとネクストホップの指定

 

また、RT2の事前のルーティングテーブルは次の通りです。

 

ネクストホップのみ指定

スタティックルートを設定するに際にネクストホップのみを指定する場合は、ネクストホップに指定したアドレスがルーティングテーブルで解決できれば※1ルーティングテーブルに登録されます。

RT2から見れば3.3.3.3/32は192.168.23.3がネクストホップとなるため、次のようにスタティックルートを設定します。

 

ルーティングテーブルを確認すると192.168.23.3は下から2つ目の192.168.23.0/24に含まれているため、ネクストホップを解決することができ、設定したスタティックルートはルーティングテーブルに登録されました。

 

通信の際はネクストホップとして設定したアドレスをARP解決し、Ethernet Headerを付与します。

 

さて、ネクストホップのみ記載する場合はアドレスが解決できればルーティングテーブルに登録されると伝えました。

では、この状況でR2のEthernet 0/1をshutdownし、再度ルーティングテーブルを確認してみます。

 

すると、3.3.3.3/32はルーティングテーブルに登録されたままになっています。理由は、192.168.0.0/24がルーティングテーブルに登録されているため、ネクストホップが解決できてしまっているからです。

 

このことから、通信できない経路情報がルーティングテーブルに登録されたままになってしまうため、ネクストホップのみ登録する際は注意が必要です。

 

※1

ネクストホップを解決する経路情報がdirectly connectedではないデフォルトルートの場合は、例えネクストホップが解決できたとしてもルーティングテーブルには登録されません。

 

出力インターフェースのみ指定

スタティックルートを設定するに際に出力インターフェースのみを指定する場合は、出力インターフェースがupしていればルーティングテーブルに登録されます。

RT2から見れば3.3.3.3/32はEthernet 0/1の先に存在するため、次のようにスタティックルートを設定します。

 

ルーティングテーブルを確認すると、Ethernet 0/1は現在upしているため設定したスタティックルートはルーティングテーブルに登録されました。

 

ここで注目いただきたい点は、3.3.3.3 is directly connectedと表記されていることです。3.3.3.3/32はEthernet 0/1に直接接続されていると認識されています。

また、通信の際もこの設定方式は特徴があります。通常はネクストホップをARP解決しますが、directry connectedとなっているため3.3.3.3/32をARP解決しようとします。

 

確認のため、RT2から3.3.3.3にpingを実行し、WiresharkでRT2とRT3の間を流れるパケットを覗いてみます。

まずはpingを実行し、通信が成立することを確認します。

 

次にWiresharkを確認すると、3.3.3.3に対してARP解決を行っていることが確認できます。

 

最後にRT2のARP tableを見てみると、3.3.3.3に紐づくMACアドレスが登録されていることが確認できました。

 

さて、本来であればARPは同じネットワークのIPアドレスからMACアドレスを解決するはず。なのに、何故異なるネットワークのIPアドレスを解決できたのかと言うと…RT3ではProxy ARPがデフォルトで有効になっているからです。

Proxy ARPが有効になっていると、受け取ったARP requestのTarget IP addressが自身のルーティングテーブルで解決できれば、ARP requestを受信したインターフェースのMACアドレスでARP replyを返すことができます。

 

確認のため、RT3のEthernet 0/1でProxy ARPを無効化し、RT2でclear ip arp 3.3.3.3を実行します。

 

Cisco IOSでclear ip arpを実行すると、既にarp tableに登録されているアドレスに対して再びARP requestを送信します。

再びRT2のARP tableを見てみると、RT3でProxy ARPが無効化されたため3.3.3.3に対するARP requestに応答しなくなるため、3.3.3.3に対するMACアドレスの紐づけが消えていることが確認できました。

 

また、当然ですがRT2のEthernet 0/1をshutdownすると、3.3.3.3/32の経路はルーティングテーブルから消滅します。

 

出力インターフェースとネクストホップの指定

スタティックルートを設定するに際に出力インターフェースのみを指定する場合は、出力インターフェースがupしていればルーティングテーブルに登録されます。

RT2から見れば3.3.3.3/32はEthernet 0/1の先に存在するため、次のようにスタティックルートを設定します。

 

ルーティングテーブルを確認すると、Ethernet 0/1は現在upしているため設定したスタティックルートはルーティングテーブルに登録されました。

 

また、RT2のEthernet 0/1をshutdownすると、3.3.3.3/32の経路はルーティングテーブルから消滅します。

 

これまで紹介した2パターンと異なり、出力インターフェースがdownすれば経路も消え、ARP解決もネクストホップに対して行われるため最も最適な設定方法と言えます。

 

まとめ

このように、スタティックルートには設定方法が3種類ありそれぞれ動作が異なります。

たかがスタティックルート、されどスタティックルート。動作の細部まで理解していなければ思わぬトラブルに巻き込まれる可能性もあるため、知っている技術こそ深掘りするようにしてみてください!

 

関連コンテンツ

Cisco Community : ネクストホップとして出口インターフェースまたはIPアドレスを指定したスタティックルート

Troubleshooting TechNotes : Specify a Next Hop IP Address for Static Routes

本サイトの使い方

学習コンテンツ一覧 (ネットワーク)