IP : IP トンネリング

GRE キープアライブの動作方法

2005 年 4 月 19 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2006 年 6 月 16 日) | フィードバック

目次

概要
前提条件
      要件
      使用するコンポーネント
      表記法
背景説明
トンネルのキープアライブ メカニズム
      機能説明
      メモリとパフォーマンスへの影響
      実装時の注意事項
      コマンドと設定
      出力例と画面形式
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

この文書では、Generic Routing Encapsulation(GRE; 総称ルーティング カプセル化)キープアライブの動作方法の概要を説明します。

前提条件

要件

この文書の読者は次の項目に関する知識が必要です。

使用するコンポーネント

この文書の情報は、次のソフトウェアとハードウェアのバージョンに基づいています。

  • Cisco 7505 ルータ

  • IPSec 上の GRE をサポートする Cisco IOS(R) ソフトウェア

この文書の情報は、特定のラボ環境にあるデバイスに基づいて作成されています。この文書内で使用されているデバイスはすべて、クリアな状態(デフォルト)から設定作業を始めています。対象のネットワークが実稼動中である場合には、すべてのコマンドによる潜在的な影響について確実に理解しておく必要があります。

表記法

文書表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

背景説明

GRE キープアライブ機能を使用すれば、トンネルで使用する keepalive インターフェイス コマンドが有効になり、ポイントツーポイントの GRE トンネルにキープアライブを設定できるようになります。 keepalive コマンドでキープアライブの設定ができ、さらに、オプションでこのコマンドの新しい拡張機能を使用することもできます。

GRE トンネルを使用すると、転送プロトコル内で任意のパケットをカプセル化できます。 これらのトンネルでは、任意の標準ポイントツーポイント カプセル化スキームを実装するために必要なサービスを提供する設計になっているアーキテクチャも実現されています。 GRE トンネルには次のような利点があります。

  • GRE トンネルにより、単一プロトコルのバックボーン上でマルチプロトコルのローカル ネットワークを実現できます。

  • GRE トンネルにより、ホップ カウントが制限されているプロトコルを含んだネットワークへの対応策が提供されています。

  • GRE トンネルにより、不連続なサブネットワークを接続できます。

  • GRE トンネルにより、WAN 上に VPN を構築できます。

ただし、現在の GRE トンネルの実装方式には、遠端に到達不能な場合に、トンネルのどちらか一方のエンドポイントの回線プロトコルをダウン状態にする機能がありません。 そのため、トンネルから送信されたトラフィックがブラックホール化し、トンネルが常にアップ状態になるために、代替パスを使用できなくなります。

この状況は、スタティック ルートに依存するトンネルや、ルートを集約してトンネルの宛先へのルートを見つけるルーティング プロトコルに依存するトンネルで発生します。 また、コントロール プレーンのデータがデータ プレーンのデータとは異なるパスを使用する場合にも、この状況が発生します。

トンネルのキープアライブ メカニズム

このセクションでは、トンネルのキープアライブ メカニズムの機能を、例を使用して説明します。 また、このセクションでは、この機能で変更されるソフトウェア要素を列挙して、メモリとパフォーマンスへの影響についても説明しています。

機能説明

トンネル キープアライブ メカニズムにより、トンネル インターフェイスのインターフェイス特有のコマンドが使用可能となり、これらが機能拡張して実装されるので、トンネルの回線プロトコルをダウン状態にできるようになります。 詳細については、「コマンドと設定」セクションを参照してください。

トンネル キープアライブ メカニズムは、次の追加要件にも対処しています。

  • トンネルの遠端のエンドポイントでキープアライブがサポートされていない場合でも、トンネル キープアライブ メカニズムが機能する。

  • トンネル キープアライブ メカニズムがキープアライブの発信元となる。

  • トンネル キープアライブ メカニズムがキープアライブを処理する。

  • トンネルの回線プロトコルがダウンしている場合でも、トンネル キープアライブ メカニズムは遠端のキープアライブ パケットに応答する。

トンネル キープアライブ メカニズムの動作方法の例を次に示します(図 1 を参照)。

図 1:トンネル キープアライブ メカニズムの例

F1_63760a.gif

出力

interface tunnel 0                       interface tunnel 0
 ip address 1.1.1.1 255.255.255.240       ip address 1.1.1.2 255.255.255.240
 tunnel source 128.8.8.8                  tunnel source 129.9.9.9
 tunnel destination 129.9.9.9             tunnel destination 128.8.8.8
 keepalive 5 4                            keepalive 5 4
 interface loopback 0                     interface loopback 0
 ip address 128.8.8.8 255.255.255.255     ip address 129.9.9.9 255.255.255.255

A から B へ発信されるキープアライブ パケット

       ・--outer IP header---'      ・--inner IP header---'
       =============================================================
       |IP | IP src  | IP dst  | GRE | IP | IP src  | IP dst  | GRE |
       |   |128.8.8.8|129.9.9.9|PT=IP|    |129.9.9.9|128.8.8.8| PT=0|
       =============================================================
                               ・---'                         ・--'
                                GRE header                    GRE header

ルータ A のトンネルのエンドポイントでキープアライブを有効にすると、ルータではインターバルごとに内側の IP ヘッダーが作成されます。 ヘッダーの最後には、Protocol Type(PT)に 0 が設定された GRE ヘッダーもルータで追加されますが、他のペイロードはありません。 次に、ルータではパケットがトンネルを通して送信されます。その結果、パケットは外部 IP ヘッダーとともにカプセル化されて、PT に IP が設定された GRE ヘッダーが付けられます。 トンネル キープアライブ カウンタは 1 増加します。 トンネルの遠端のエンドポイントに到達する方法があり、トンネルの回線プロトコルが他の理由によるダウン状態になっていない場合は、パケットはルータ B に到達します。次に、パケットはトンネル 0 とマッチングされて、カプセル化が解除され、宛先 IP つまりトンネルの発信元であるルータ A に転送されます。ルータ A にパケットが到達すると、再びカプセル化が解除されて、PT が調べられます。 PT を調べた結果が 0 であれば、このパケットはキープアライブ パケットであることになります。 その場合、トンネル キープアライブ カウンタが 0 にリセットされた上で、パケットは廃棄されます。

ルータ B に到達できない場合は、ルータ A では、通常のトラフィックとともにキープアライブ パケットが引き続き作成されて送信されます。 回線プロトコルがダウンしている場合は、キープアライブはルータ A に戻りません。これにより、キープアライブ カウンタが増加し続けます。 トンネルのキープアライブ カウンタが 0 のままか設定値未満の場合は、トンネルの回線プロトコルがアップ状態になっています。 この条件が満たされない場合、次回、キープアライブをルータ B に送信しようとする際に、キープアライブ カウンタが設定されたキープアライブ値に到達するとすぐに回線プロトコルがダウン状態になります。 アップ状態でもダウン状態でも、このトンネルでは、キープアライブ パケット以外のトラフィックの転送や処理は行われません。 キープアライブ パケットだけが処理されるため、このトンネルが転送と受信に影響を与えることはありません。 そのため、トンネル参照アルゴリズムはどんな場合でも成功し、回線プロトコルがダウンしているときは、データ パケットだけが廃棄されることになります。 キープアライブ パケットが受信されると、トンネルのエンドポイントが再び到達可能になったことを示しています。 その場合、トンネル キープアライブ カウンタが 0 にリセットされて、回線プロトコルが再びアップ状態になります。

メモリとパフォーマンスへの影響

この機能では、ルータ システムのメモリとパフォーマンスにはほとんど追加の負荷がかからないので、この機能の追加による影響はありません。 キープアライブ パケットは、通常のパケットとして処理されるので、高トラフィックの状態では廃棄される可能性があります。 今のところは、リトライ回数を変更すれば、この問題に対処できます。 この方法では不十分であることがわかった場合は、ローカルに生成したキープアライブ パケットを送信用のハイ プライオリティ キューに入れることができます。 次に、IP ヘッダーの TOS 値を、デフォルト値や設定値以外のより適切な値に設定できます。

実装時の注意事項

この機能は、基本的な IP トンネル コードと GRE サブシステムに含まれています。 そのため、トンネルと GRE サブシステムを備えた基本 IP パッケージで提供されることになります。

コマンドと設定

このセクションでは、Cisco Bug ID CSCuk26449 で取り上げられている状況での、この機能で有効にされ拡張された keepalive コマンドについての説明だけを行います。 他のコマンドについては、それぞれの『Cisco IOS コンフィギュレーション ガイドとコマンド リファレンス』に説明されています。 Cisco IOS ソフトウェア リリース 12.2(8)T 以降では、[no] keepalive <period> <retries> コマンドが使用可能になりました。機能拡張されたのは 2 番目のパラメータです。 また、Cisco IOS ソフトウェア リリース 12.1E と 12.2S にも、Cisco Bug ID CSCuk29980 と CSCuk29983 により、このコマンドが移植されています。

keepalive は、トンネル インターフェイス上でキープアライブを有効にするインターフェイス設定コマンドなので、現在サポートされているのは GRE/IP モード用のキープアライブだけです。 コマンドの 2 番目のパラメータ(retries)は、トンネル インターフェイスの場合だけに表示されて使用可能になります。 最初のパラメータの値は、1 から 32767 の範囲に設定できます。値が 0 の場合は、「no keepalive」と等価です。 このパラメータには、デフォルトで 10 が設定されます。2 番目のパラメータの値は、1 から 255 の範囲に設定でき、送信済で戻って来ないキープアライブの数を示します。この数を超えるとトンネル インターフェイスの回線プロトコルがダウン状態になります。 デフォルトでは、トンネル インターフェイスのキープアライブは無効になっています。

出力例と画面形式

このセクションでは、出力例を示します。

 cisco-7505#configure terminal 
 Enter configuration commands, one per line.  End with CNTL/Z.
 cisco-7505(config)#interface tunnel 1
 cisco-7505(config-if)#?
   access-expression   Build a bridge boolean access expression
   ……………
   keepalive           Enable keepalive			<=====
   ……………
   timeout             Define timeout values for this interface
 cisco-7505(config-if)#keepalive ?				<=====
   <0-32767>  Keepalive period (default 10 seconds)
 cisco-7505(config-if)#keepalive 5 ?				<=====
   <1-255>    Keepalive retries (default 3 times)
 cisco-7505(config-if)#keepalive 5 4				<=====
 cisco-7505(config-if)#end
 cisco-7505#show interfaces tunnel 1
 Tunnel1 is up, line protocol is up 
   Hardware is Tunnel
   Internet address is 10.1.1.1/24
   MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec, rely 255/255, load 1/255
   Encapsulation TUNNEL, loopback not set
   Keepalive set (5 sec), retries 4				<=====
   Tunnel source 9.2.2.1, destination 6.6.6.2
   Tunnel protocol/transport GRE/IP, key disabled, sequencing disabled
   Tunnel TOS 0xF, Tunnel TTL 128
   Checksumming of packets disabled, fast tunneling enabled
   Last input never, output 00:57:05, output hang never
   Last clearing of "show interface" counters never
   Queueing strategy: fifo
   Output queue 0/0, 1 drops; input queue 0/75, 0 drops
   30 second input rate 0 bits/sec, 0 packets/sec
   30 second output rate 0 bits/sec, 0 packets/sec
      0 packets input, 0 bytes, 0 no buffer
      Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
      0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
      3 packets output, 1860 bytes, 0 underruns
      0 output errors, 0 collisions, 0 interface resets
      0 output buffer failures, 0 output buffers swapped out
 

関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 63760