[index] CentreCOM AR550S コマンドリファレンス 2.9

# GRE/概要・基本設定

      - 設定手順
      - 設定例
       - 基本設定
       - IP NATとの併用
       - ファイアウォールNATとの併用

GRE（Generic Routing Encapsulation）は、任意のネットワーク層プロトコルパケットを、別のネットワーク層プロトコルパケットに包み込んで送信する汎用のトンネリングプロトコルです。
本製品では、IPパケットを別のIPパケットでカプセル化することにより、プライベートIPアドレスで運用しているLAN同士をインターネット経由で接続することが可能です。

GREは設定がシンプルでわかりやすいところが特徴ですが、他のトンネリングプロトコル（L2TPやIPsecのトンネルモード）と比べて、以下の欠点があります。

- IPパケットしかトンネリングできない。
- トンネルの両端のルーターのIPアドレスが固定されていなくてはならない。L2TPやIPsecは、片側のアドレスが不定でも（若干の制限があるものの）使用できる。
- セキュリティー機能が弱い（32ビットのトンネル鍵のみ）

使用するネットワークの構成や要件に応じて、どのトンネリングプロトコルを使用するかを選択してください。一般的に、IPXやAppleTalkのトンネリングが必要ならL2TPを、IPだけのトンネリングでセキュリティー機能が必要ならIPsec（ESP）を、IPXやAppleTalkのトンネリングでセキュリティーが必要ならL2TPとIPsec（ESP）の併用を考えるとよいでしょう。

設定手順

GREの設定はIPフィルターとよく似ています。各ルーターで以下の設定を行います。

1. 最初にGREトンネルを作成します。GREトンネルは、カプセル化したパケットの送信先（トンネルの終点）を定義するものです。対向ルーターのIPアドレスを指定してください。また、オプションでトンネル鍵を指定することもできます。トンネル鍵は32ビットの数値で最高8桁の16進数で指定します。有効範囲は1〜FFFFFFFFです。トンネル鍵を指定する場合は、対向ルーターにも同じ鍵を指定してください。
2. GREフィルターを作成し、トンネリングするパケットの条件を指定します。始点・終点IPアドレスの組み合わせで指定する方法と、受信インターフェースで指定する方法があります。たとえば、次のような指定が可能です。
   - 192.168.10.0/24から192.168.20.0/24へのパケットをトンネリング
   - LAN側インターフェース（vlan1）で受信したパケットをトンネリング
3. 同じくGREフィルターで、カプセル化したパケットの送信先（トンネルの終点）を指定します。具体的には、対向ルーターのIPアドレスを指定します。こちらのルーターから到達できるアドレスでなくてはなりません。また、あらかじめ作成したGREトンネルで指定したアドレスでなくてはなりません。
4. 手順1、2の設定内容（GREフィルター）を、トンネル対象パケットの受信インターフェースに適用します。設定内容をIPインターフェースに適用しないとGREの設定は有効になりませんのでご注意ください。
5. GREモジュールを有効化します。

以下、実際にコマンド例を示しながら解説します。
■ GREモジュールはデフォルトでは無効になっています。有効にするにはENABLE GREコマンドを使います。

`ENABLE GRE ↓`

■ GREトンネルを作成するには、ADD GRE TUNNELコマンドを使います。REMOTEパラメーターに対向ルーターのアドレスを指定してください。また、KEYパラメーターでトンネル鍵を指定することもできます。トンネル鍵は32ビットの数値で最高8桁の16進数で指定します。有効範囲は1〜FFFFFFFFです。トンネル鍵を指定する場合は、対向ルーターにも同じ鍵を指定してください。

`ADD GRE TUNNEL REMOTE=2.2.2.2 KEY=deadbeaf ↓
`

■ トンネリングするアドレスの範囲を指定するには、ADD GREコマンドを使います。GREフィルターには1〜100の任意の番号を付けます。たとえば、192.168.10.0/24→192.168.20.0/24のパケットをカプセル化して、対向ルーター2.2.2.2に送る場合は、次のようにします。対向ルーターのアドレスは、GREトンネルのREMOTEパラメーターで指定したアドレスでなくてはなりません。

`ADD GRE=1 SOURCE=192.168.10.0 SMASK=255.255.255.0 DESTINATION=192.168.20.0 DMASK=255.255.255.0 TARGET=2.2.2.2 ↓`

■ 次のように複数の条件を同時に指定することもできます。これにより、複数拠点をインターネット経由で結ぶことも可能です。たとえば、192.168.10.0/24→192.168.20.0/24のパケットを2.2.2.2へ、192.168.10.0/24→192.168.30.0/24のパケットは3.3.3.3へ送る場合は、次のようにします（あらかじめ、2.2.2.2と3.3.3.3へのGREトンネルを作成しておいてください）。

`ADD GRE=1 SO=192.168.10.0 SMASK=255.255.255.0 DEST=192.168.20.0 DMASK=255.255.255.0 TARGET=2.2.2.2 ↓
ADD GRE=1 SO=192.168.10.0 SMASK=255.255.255.0 DEST=192.168.30.0 DMASK=255.255.255.0 TARGET=3.3.3.3 ↓
`

■ また、特定のIPインターフェースで受信したパケットすべてをカプセル化したい場合は、SOURCE/SMASK、DESTINATION/DMASKの代わりにINTERFACEパラメーターを使用します。このときアドレスは指定できません。たとえば、vlan1で受信したすべてのパケットをカプセル化して、対向ルーター2.2.2.2に送る場合は、次のようにします。

`ADD GRE=1 INT=vlan1 TARGET=2.2.2.2 ↓`

■ GREフィルターの設定を変更するには、SET GREコマンドを使います。このコマンドはENTRYパラメーターが必須です（SHOW GREコマンドで確認できます）。

`ADD GRE=1 ENTRY=1 TARGET=2.2.2.1 ↓`

■ GREフィルターをIPインターフェースに適用するには、SET IP INTERFACEコマンドのGREパラメーターを使います。GREの設定はインターフェースに適用して初めて効果を持ちます。通常、GREフィルターはトンネリング対象パケットを受信するインターフェースに適用します。

`SET IP INT=vlan1 GRE=1 ↓`

■ GREフィルターの設定を確認するには、SHOW GREコマンドを使います。

`SHOW GRE ↓`

■ GREモジュールの状態を確認するには、SHOW GREコマンドのGENERALオプションを使います。

`SHOW GRE GENERAL ↓`

■ IPインターフェースに適用されているGREフィルターは、SHOW IP INTERFACEコマンドで確認できます。GREフィルターが適用されていれば、「GRE」欄にフィルター番号が表示されます。

`SHOW IP INT ↓
SHOW IP INT=vlan1 ↓
`

■ GREフィルターからエントリーを削除するには、DELETE GREコマンドを使います。

`DELETE GRE=1 ENTRY=1 ↓
DELETE GRE=1 ENTRY=ALL ↓
`

■ IPインターフェースからGREフィルターの適用を解除するには、SET IP INTERFACEコマンドのGREパラメーターにNONEを指定します。

`SET IP INT=vlan1 GRE=NONE ↓`

■ GREモジュールを無効にするには、DISABLE GREコマンドを使います。

`DISABLE GRE ↓`

設定例

GREトンネリングを用いて、2つのプライベートネットワークを接続する設定例をいくつか示します。
ここでは、次のような構成を想定します。ルーターA、Bとも、WAN側（ppp0）インターフェースにグローバルアドレスが固定的に割り当てられているものとします。
なお以下の例では、IPの設定までは完了しているものと仮定しています。

基本設定

プライベートLAN間の通信だけを行う設定です。NATの設定がされていないため、プライベートLANからインターネットにはアクセスできません。
ルーターA

1. GREモジュールを有効にします。

   `ENABLE GRE ↓`
2. ルーターB（2.2.2.2）を対向とするGREトンネルを作成します。トンネル鍵はbebeebeeとします。ルーターBにも同じ鍵を指定してください。

   `ADD GRE TUNNEL REMOTE=2.2.2.2 KEY=bebeebee ↓`
3. ローカルLAN（192.168.10.0/24）からリモートLAN（192.168.20.0/24）へのパケットをカプセル化してルーターB（2.2.2.2）に送るGREフィルター「1」を作成します。

   `ADD GRE=1 SO=192.168.10.0 SMASK=255.255.255.0 DEST=192.168.20.0 DMASK=255.255.255.0 TARGET=2.2.2.2 ↓`
4. GREフィルター「1」をvlan1に適用します。

   `SET IP INT=vlan1 GRE=1 ↓`

ルーターB

1. GREモジュールを有効にします。

   `ENABLE GRE ↓`
2. ルーターA（1.1.1.1）を対向とするGREトンネルを作成します。トンネル鍵はルーターAに設定したのと同じbebeebeeとします。

   `ADD GRE TUNNEL REMOTE=1.1.1.1 KEY=bebeebee ↓`
3. ローカルLAN（192.168.20.0/24）からリモートLAN（192.168.10.0/24）へのパケットをカプセル化してルーターA（1.1.1.1）に送るGREフィルター「1」を作成します。

   `ADD GRE=1 SO=192.168.20.0 SMASK=255.255.255.0 DEST=192.168.10.0 DMASK=255.255.255.0 TARGET=1.1.1.1 ↓`
4. GREフィルター「1」をvlan1に適用します。

   `SET IP INT=vlan1 GRE=1 ↓`

IP NATとの併用

上記の基本設定にIP NAT（レンジNAT）の設定を追加して、プライベートLAN間だけでなく、それぞれのプライベートLANからインターネットにもアクセスできるようにします。
ルーターA

1. GREモジュールを有効にします。

   `ENABLE GRE ↓`
2. ルーターB（2.2.2.2）を対向とするGREトンネルを作成します。トンネル鍵はbebeebeeとします。ルーターBにも同じ鍵を指定してください。

   `ADD GRE TUNNEL REMOTE=2.2.2.2 KEY=bebeebee ↓`
3. ローカルLAN（192.168.10.0/24）からリモートLAN（192.168.20.0/24）へのパケットをカプセル化してルーターB（2.2.2.2）に送るGREフィルター「1」を作成します。

   `ADD GRE=1 SO=192.168.10.0 SMASK=255.255.255.0 DEST=192.168.20.0 DMASK=255.255.255.0 TARGET=2.2.2.2 ↓`
4. GREフィルター「1」をvlan1に適用します。

   `SET IP INT=vlan1 GRE=1 ↓`
5. IP NATモジュールを有効にします。

   `ENABLE IP NAT ↓`
6. ローカルLAN側ホストのプライベートIPアドレスを、ppp0のグローバルアドレスに変換するダイナミックENATの設定を行います。

   `ADD IP NAT IP=192.168.10.0 MASK=255.255.255.0 GBLINT=ppp0 ↓`

ルーターB

1. GREモジュールを有効にします。

   `ENABLE GRE ↓`
2. ルーターA（1.1.1.1）を対向とするGREトンネルを作成します。トンネル鍵はルーターAに設定したのと同じbebeebeeとします。

   `ADD GRE TUNNEL REMOTE=1.1.1.1 KEY=bebeebee ↓`
3. ローカルLAN（192.168.20.0/24）からリモートLAN（192.168.10.0/24）へのパケットをカプセル化してルーターA（1.1.1.1）に送るGREフィルター「1」を作成します。

   `ADD GRE=1 SO=192.168.20.0 SMASK=255.255.255.0 DEST=192.168.10.0 DMASK=255.255.255.0 TARGET=1.1.1.1 ↓`
4. GREフィルター「1」をvlan1に適用します。

   `SET IP INT=vlan1 GRE=1 ↓`
5. IP NATモジュールを有効にします。

   `ENABLE IP NAT ↓`
6. ローカルLAN側ホストのプライベートIPアドレスを、ppp0のグローバルアドレスに変換するダイナミックENATの設定を行います。

   `ADD IP NAT IP=192.168.20.0 MASK=255.255.255.0 GBLINT=ppp0 ↓`

> Note - この設定では、NAT用グローバルアドレスとしてppp0のインターフェースアドレスを使っているため、ルーターA、Bは外部からのPingに応えません。接続性をテストするときなどにはご注意ください。詳細は「IP」/「レンジNAT」をご覧ください。

ファイアウォールNATとの併用

上記の基本設定にファイアウォールNATの設定を追加して、プライベートLAN間だけでなく、それぞれのプライベートLANからインターネットにもアクセスできるようにします。
GREとファイアウォールを併用するときは、次のポイントに注意してください。

- 対向ルーターからのGREパケットがファイアウォールで遮断されないようALLOWルールを設定する
- プライベートLAN間のパケットにファイアウォールNATが適用されないようNONATルールを設定する

ルーターA

1. GREモジュールを有効にします。

   `ENABLE GRE ↓`
2. ルーターB（2.2.2.2）を対向とするGREトンネルを作成します。トンネル鍵はbebeebeeとします。ルーターBにも同じ鍵を指定してください。

   `ADD GRE TUNNEL REMOTE=2.2.2.2 KEY=bebeebee ↓`
3. ローカルLAN（192.168.10.0/24）からリモートLAN（192.168.20.0/24）へのパケットをカプセル化してルーターB（2.2.2.2）に送るGREフィルター「1」を作成します。

   `ADD GRE=1 SO=192.168.10.0 SMASK=255.255.255.0 DEST=192.168.20.0 DMASK=255.255.255.0 TARGET=2.2.2.2 ↓`
4. GREフィルター「1」をvlan1に適用します。

   `SET IP INT=vlan1 GRE=1 ↓`
5. ファイアウォールとダイナミックENATの基本設定をします。

   `ENABLE FIREWALL ↓
   CREATE FIREWALL POLICY=net ↓
   ENABLE FIREWALL POLICY=net ICMP_F=ALL ↓
   DISABLE FIREWALL POLICY=net IDENTPROXY ↓
   ADD FIREWALL POLICY=net INT=vlan1 TYPE=PRIVATE ↓
   ADD FIREWALL POLICY=net INT=ppp0 TYPE=PUBLIC ↓
   ADD FIREWALL POLICY=net NAT=ENHANCED INT=vlan1 GBLINT=ppp0 ↓
   `
6. 外側インターフェースで受信したGREパケットをNATの対象からはずします。

   `ADD FIREWALL POLICY=net RU=1 AC=NONAT INT=ppp0 PROT=GRE ↓`
7. 内側インターフェースで受信したパケットのうち、トンネリング対象のパケットをNATの対象からはずします。

   `ADD FIREWALL POLICY=net RU=2 AC=NONAT INT=vlan1 PROT=ALL IP=192.168.10.1-192.168.10.254 REM=192.168.20.1-192.168.20.254 ↓`

ルーターB

1. GREモジュールを有効にします。

   `ENABLE GRE ↓`
2. ルーターA（1.1.1.1）を対向とするGREトンネルを作成します。トンネル鍵はルーターAに設定したのと同じbebeebeeとします。

   `ADD GRE TUNNEL REMOTE=1.1.1.1 KEY=bebeebee ↓`
3. ローカルLAN（192.168.20.0/24）からリモートLAN（192.168.10.0/24）へのパケットをカプセル化してルーターA（1.1.1.1）に送るGREフィルター「1」を作成します。

   `ADD GRE=1 SO=192.168.20.0 SMASK=255.255.255.0 DEST=192.168.10.0 DMASK=255.255.255.0 TARGET=1.1.1.1 ↓`
4. GREフィルター「1」をvlan1に適用します。

   `SET IP INT=vlan1 GRE=1 ↓`
5. ファイアウォールとENATの基本設定をします。

   `ENABLE FIREWALL ↓
   CREATE FIREWALL POLICY=net ↓
   ENABLE FIREWALL POLICY=net ICMP_F=ALL ↓
   DISABLE FIREWALL POLICY=net IDENTPROXY ↓
   ADD FIREWALL POLICY=net INT=vlan1 TYPE=PRIVATE ↓
   ADD FIREWALL POLICY=net INT=ppp0 TYPE=PUBLIC ↓
   ADD FIREWALL POLICY=net NAT=ENHANCED INT=vlan1 GBLINT=ppp0 ↓
   `
6. 外側インターフェースで受信したGREパケットをNATの対象からはずします。

   `ADD FIREWALL POLICY=net RU=1 AC=NONAT INT=ppp0 PROT=GRE ↓`
7. 内側インターフェースで受信したパケットのうち、トンネリング対象のパケットをNATの対象からはずします。

   `ADD FIREWALL POLICY=net RU=2 AC=NONAT INT=vlan1 PROT=ALL IP=192.168.20.1-192.168.20.254 REM=192.168.10.1-192.168.10.254 ↓`

(C) 2005-2012 アライドテレシスホールディングス株式会社

PN: J613-M0710-03 Rev.H