このドキュメントでは、総称ルーティングカプセル化(GRE)キープアライブとその仕組みについて説明します。
GREトンネルは、トランスポートプロトコル内のネットワークプロトコルパケットをカプセル化する方法を提供するルータ上の論理インターフェイスです。これは、ポイントツーポイントカプセル化スキームでネットワークトラフィックの転送を提供するメカニズムです。
GRE トンネルは、完全にステートレスになるように設計されています。つまり、各トンネル エンドポイントは、リモート トンネル エンドポイントの状態または可用性に関する情報を保持しないということを意味します。この結果、トンネルのリモート エンドに到達不能な場合、ローカル トンネル エンドポイント ルータは GRE トンネル インターフェイスの回線プロトコルをダウンさせる機能がありません。そのインターフェイスを発信インターフェイスとして使用するルーティング テーブル内のルート(特にスタティック ルート)を削除するために、リンクのリモート エンドが利用できない場合にインターフェイスをダウンとしてマークする機能が使用されます。具体的には、インターフェイスの回線プロトコルがダウンに変更された場合、そのインターフェイスを指すスタティック ルートはルーティング テーブルから削除されます。これにより、代替のネクストホップまたはインターフェイスを選択するために、代替(フローティング)スタティック ルートまたはポリシー ベース ルーティング(PBR)のインストールが可能になります。
通常、GREトンネルインターフェイスは、設定されるとすぐにアップし、有効なトンネル送信元アドレスまたはアップ状態のトンネル送信元インターフェイスがある限り、アップ状態を維持します。トンネルの宛先 IP アドレスもルーティング可能である必要があります。これは、トンネルの反対側が設定されていない場合にも必要です。つまり、GREトンネルインターフェイス経由のパケットのスタティックルートまたはPBR転送は、GREトンネルパケットがトンネルの反対側に到達できない場合でも有効です。
GREキープアライブが実装される前は、ルータのローカルの問題のためにトンネルインターフェイスをダウンさせる方法しかなく、トランスポートネットワークの問題が原因ではありませんでした。たとえば、GRE トンネリングされたパケットが転送に成功しても、トンネルのもう一方の端に達する前に失われるケースです。このようなシナリオでは、PBRを使用する代替ルートまたは別のインターフェイスを介したフローティングスタティックルートを使用できる場合でも、GREトンネルを通過するデータパケットが「ブラックホール化」されます。GRE トンネルのインターフェイスのキープアライブは、キープアライブが物理インターフェイスで使用されるのと同様にこの問題を解決するために使用されます。
GRE トンネル キープアライブ メカニズムは、リモート ルータが GRE キープアライブをサポートしない場合でも一方がリモート ルータとの間でキープアライブ パケットを発信および受信できる点で、PPP キープアライブと似ています。GRE は IP 内で IP をトンネリングするパケット トンネリング メカニズムなので、別の GRE IP トンネル パケットの内部に GRE IP トンネル パケットを構築できます。GRE キープアライブの場合、送信者は元のキープアライブ要求パケット内にキープアライブ応答パケットを事前に構築するため、リモート エンドは外部 GRE IP ヘッダーの標準 GRE カプセル化解除を実行し、内部 IP GRE パケットを送信者に戻すだけで十分です。次のパケットは、IP トンネリングの概念を示しています。この場合、GRE がカプセル化プロトコルで、IP がトランスポート プロトコルです。パッセンジャプロトコルもIPです(ただし、NHRPのような別のプロトコルを使用することもできます)。
ノーマル パケット:
| IP ヘッダー |
TCP ヘッダー |
Telnet |
トンネリングされたパケット:
| GRE IP ヘッダー |
GRE |
|
ルータ A から送信され、ルータ B を宛先とするキープアライブ パケットの例を示します。ルータ B がルータ A に戻すキープアライブの応答は内部の IP ヘッダー内にすでにあります。ルータ B は単にキープアライブ パケットをカプセル化解除して、それを物理インターフェイス(S2)に送り返すだけです。 その他の GRE IP データ パケットと同様に GRE キープアライブ パケットを処理します。
GRE キープアライブ:
| GRE IP ヘッダー |
GRE |
|
|||||||
| Source A | Destination B | PT=IP | |||||||
このメカニズムにより、キープアライブ応答がトンネルインターフェイスではなく物理インターフェイスから転送されるようになります。つまり、GREキープアライブ応答パケットは、「tunnel protection ...」などのトンネルインターフェイスの出力機能の影響を受けません。 QoS、Virtual Routing and Forwarding(VRF)など
GRE トンネル キープアライブのもう 1 つの特性は、PPP キープアライブと同様に、各側のキープアライブ タイマーが独立しており、一致する必要がないという点です。
Cisco IOS® ソフトウェア リリース 12.2(8)T では、ポイントツーポイントの GRE トンネル インターフェイスにキープアライブを設定できます。この変更によって、トンネル インターフェイスは、一定期間キープアライブが失敗した場合に、動的にシャットダウンします。
その他の形式のキープアライブの仕組みの詳細は、「Cisco IOS でのキープアライブ メカニズムの概要」を参照してください。
この出力は、GRE トンネルにキープアライブを設定するために使用するコマンドを示しています。
Router#configure terminal
Router(config)#interface tunnel0
Router(config-if)#keepalive 5 4
!--- The syntax of this command is keepalive [seconds [retries]].
!--- Keepalives are sent every 5 seconds and 4 retries.
!--- Keepalives must be missed before the tunnel is shut down.
!--- The default values are 10 seconds for the interval and 3 retries.
トンネル キープアライブ メカニズムの仕組みの理解を深めるため、この例のトンネル トポロジと構成を考えてみましょう。

ルータ A:
interface loopback 0
ip address 192.168.1.1 255.255.255.255
!
interface tunnel 0
ip address 10.10.10.1 255.255.255.252
tunnel source loopback0
tunnel destination 192.168.1.2
keepalive 5 4
ルータ B:
interface loopback 0
ip address 192.168.1.2 255.255.255.255
!
interface tunnel 0
ip address 10.10.10.2 255.255.255.252
tunnel source loopback0
tunnel destination 192.168.1.1
keepalive 5 4
このシナリオでは、ルータ A で次のステップを実行します。
| IP ヘッダー |
GRE |
|
| Source:192.168.1.2 | Destination:192.168.1.1 | PT=0 |
そのパケットをトンネル インターフェイスから送信し、その結果、次のように外部 IP ヘッダーでパケットがカプセル化されます。
| GRE IP ヘッダー |
GRE |
|
|||||||
| Source:192.168.1.1 | Destination:192.168.1.2 | PT=IP | |||||||
| IP ヘッダー |
GRE |
|
| Source:192.168.1.2 | Destination:192.168.1.1 | PT=0 |
ルータ B が到達不能な場合、ルータ A は通常のトラフィックとともにキープアライブ パケットの生成と送信を続行します。キープアライブが戻ってこない場合、トンネルの回線プロトコルは、トンネル キープアライブ カウンタが再試行回数(このケースでは 4 回)未満である限り、アップ状態のままになります。この条件が true でない場合、次回ルータ A がルータ B にキープアライブを送信しようとするときに回線プロトコルがダウンします。
操作でキープアライブを確認するには、debug tunnel と debug tunnel keepalive を有効にします。
ルータ A からのデバッグの例:
debug tunnel keepalive
Tunnel keepalive debugging is on
01:19:16.019: Tunnel0: sending keepalive, 192.168.1.1->192.168.1.2
(len=24 ttl=0), counter=15
01:19:21.019: Tunnel0: sending keepalive, 192.168.1.1->192.168.1.2
(len=24 ttl=0), counter=16
01:19:26.019: Tunnel0: sending keepalive, 192.168.1.1->192.168.1.2
(len=24 ttl=0), counter=17
ユニキャスト RPF(Unicast Reverse Path Forwarding)は、ルーティング テーブルに対してパケット送信元アドレスの検証を行うことでスプーフィングされた IP トラフィックを検出および破棄できるセキュリティ機能です。 ユニキャスト RPF がストリクトモード(ip verify unicast source reachable-via rx)で実行されるときは、戻りパケットを転送するためにルータが使用するインターフェイスでパケットを受信する必要があります。GREキープアライブパケットを受信するルータのトンネルインターフェイスでstrictモードまたはlooseモードのユニキャストRPFが有効になっている場合、パケットの送信元アドレス(ルータ自身のトンネル送信元アドレス)へのルートがトンネルインターフェイスを経由しないため、トンネルのカプセル化解除後にRPFによってキープアライブパケットがドロップされます。RPF パケット ドロップは、次に示す show ip traffic 出力で確認できます。
Router#show ip traffic | section Drop
Drop: 0 encapsulation failed, 0 unresolved, 0 no adjacency
0 no route, 156 unicast RPF, 0 forced drop
0 options denied
その結果、キープアライブの戻りパケットの損失が原因で、トンネルのキープアライブの発信側がトンネルをダウンさせます。このため、GRE トンネル キープアライブが機能するためには、ユニキャスト RPF をストリクト モードまたはルーズ モードで設定してはなりません。ユニキャスト RPF の詳細については、「Unicast Reverse Path Forwarding について」を参照してください。
IPsec は IP マルチキャスト パケットをサポートしないため、GRE トンネルは IPsec と組み合わせることがあります。このため、ダイナミック ルーティング プロトコルは IPsec VPN ネットワークを介して正常に実行できません。GRE トンネルでは IP マルチキャストがサポートされているので、GRE トンネル上ではダイナミック ルーティング プロトコルが動作します。その結果の GRE IP ユニキャスト パケットは、IPsec で暗号化できます。
IPsec が GRE パケットを暗号化できる方法は 2 つあります。
いずれの方法も、IPsec 暗号化が GRE カプセル化の追加後に実行されることを指定します。暗号マップを使用する場合とトンネル保護を使用する場合とには、2 つの主な違いがあります。
GRE トンネルに暗号化を追加する 2 つの方法を考えると、暗号化された GRE トンネルをセットアップする方法は 3 つあります。
シナリオ 1 と 2 で説明する構成は、多くの場合、ハブアンドスポーク設計で行われます。トンネル保護は、設定の規模を小さくするためにハブ ルータで設定し、スタティックな暗号マップは各スポークで使用します。
ピア B(スポーク)で GRE キープアライブを有効にするこれらの各シナリオを検討し、どこで暗号化にトンネル モードを使用するのかを考えてみましょう。
設定:
このシナリオでは、GRE キープアライブがピア B で設定されるため、キープアライブが生成されるときの一連のイベントは次のようになります。
| IP ヘッダー |
ESP ヘッダー |
GRE IP ヘッダー |
GRE ヘッダー |
|
ESP トレーラ |
|||||||
| ソースB | 宛先A | ソースB | 宛先A | PT=IP | ||||||||
| GRE IP ヘッダー |
GRE |
|
|||||||
| ソースB | 宛先A | PT=IP | |||||||
| IP ヘッダー |
GRE |
|
| ソースA | 宛先B | PT=0 |
| IP ヘッダー |
GRE |
|
| ソースA | 宛先B | PT=0 |
そのため、ピアAがキープアライブに応答し、ルータのピアBが応答を受信しても、ピアBは応答を処理しないため、最終的にはトンネルインターフェイスの回線プロトコルをダウン状態に変更します。
結果:
ピア B でキープアライブが有効になっていると、ピア B のトンネルの状態はアップ/ダウンに変更されます。
設定:
このシナリオでは、GRE キープアライブがピア B で設定されるため、キープアライブが生成されるときの一連のイベントは次のようになります。
| IP ヘッダー |
ESP ヘッダー |
GRE IP ヘッダー |
GRE ヘッダー |
|
ESP トレーラ |
|||||
| ソースB | 宛先A | ソースB | 宛先A | PT=IP |
| GRE IP ヘッダー |
GRE |
|
|||||||
| ソースB | 宛先A | PT=IP | |||||||
| IP ヘッダー |
GRE |
|
| ソースA | 宛先B | PT=0 |
| IP ヘッダー |
ESP ヘッダー |
|
ESP トレーラ |
|||||||
| ソースB | 宛先A | |||||||||
| IP ヘッダー |
GRE |
|
| ソースA | 宛先B | PT=0 |
結果:
ピアBで有効にされたキープアライブにより、トンネルの状態がトンネルの宛先のアベイラビリティに基づいて判断されます。
設定:
このシナリオは、ピア A が暗号化されたキープアライブを受信し、復号してカプセル化解除する点でシナリオ 1 と似ています。ただし、応答が転送される場合、ピア A がトンネル インターフェイスでトンネル保護を使用するため、暗号化されません。したがって、ピア B は暗号化されていないキープアライブ応答を破棄し、処理しません。
結果:
ピア B でキープアライブが有効になっていると、ピア B のトンネルの状態はアップ/ダウンに変更されます。
GRE パケットを暗号化する必要があるこのような状況では、利用可能な解決策は 3 つあります。
| 改定 | 発行日 | コメント |
|---|---|---|
4.0 |
15-Jun-2026
|
再認定 |
3.0 |
18-Apr-2025
|
書式設定を更新し、文法とスペルの誤りを修正しました。 |
2.0 |
19-Dec-2022
|
代替テキストが追加されました。
概要、ゲルンド、スタイルの要件、およびフォーマットを更新。 |
1.0 |
31-Oct-2014
|
初版 |