GRE over IPsec



 ◆ GRE over IPsecとは

 GRE over IPsecとは、文字通り、IPsec上でGREを動作させる技術です。 GRE over IPsecはIPsecによる
 LAN-to-LAN接続の行われたネットワークにおいて、その拠点間の経路情報をダイナミックルーティングで
 経路交換をやり取りしたい場合によく使用されます。GRE over IPsec という1つの技術として考えるのでは
 なく「IPsecの技術」と「GREの技術」の「 これら2つのVPN技術を組み合わせ 」と考える必要があります。


 ◆ IPsecとGREの違い

 IPsecとGREの違いの1つ目として、IPsecは「暗号化とトンネリング」という2つの技術を持っていますが
 GREは「トンネリング」という1つの技術しか持っていない能力の差があります。IPsecとGREとの違いの
 2つ目としてIPsecのトンネリングは「ユニキャストパケットしか転送できない」という弱点がありますが、
 GREのトンネリングでは「 ユニキャストもマルチキャストパケットも転送できる 」という違いがあります。

VPN
プロトコル
何のプロトコル
上で伝送できるか
何のプロトコルを
伝送できるか
マルチキャスト
伝送は可能か
データ暗号化
完全性保障
ポピュラーな
ソリューション
IPsec IP L3 ( IP ) × IPユニキャストの
トンネリング
GRE IP L3 ( IP. IPX, etc) × ダイナミックルーティング
のトンネリング


 GRE over IPsecを実装することで、IPsecとGREとで相互の特性を生かし相互に弱点を補うことができます。



 ◆ GRE over IPsecの設定例 ( LAN-to-LANの場合 )

 下図の通り1対1のサイト間接続では、一般的にダイナミックルーティングプロトコルをやりとりすることなく
 スタティックルートを使用するのでGRE over IPsecを使用することは先ずないのですが、コンフィグを分かり
 やすくするために、以下の構成でGRE over IPsecの設定例を紹介します。GRE over IPsecの技術の仕組みが
 GREとIPsecの技術の組み合わせであることから「GRE over IPsec」と言っても新しいコマンドはありません。



  



 crypto isakmp policy 1
 encry 3des
 hash md5
 authentication pre-share
 group 2
 !
 crypto isakmp key cisco address 200.1.1.1
 crypto isakmp keepalive 30
 !
 crypto ipsec transform-set IPSEC esp-3des esp-md5-hmac
 mode transport
 !
 crypto map M-ipsec 1 ipsec-isakmp
 set peer 200.1.1.1
 set transform-set IPSEC
 match address A-ipsec
 !
 !
 interface Loopback0
 ip address 100.1.1.1 255.255.255.255
 !
 interface GigabitEthernet 0/0
 pppoe enable group global
 pppoe-client dial-pool-number 1
 no cdp enable
 !
 interface GigabitEthernet0/1
 ip address 10.1.1.254 255.255.255.0
 ip tcp adjust-mss 1332
 !
 interface Tunnel 1
 ip address 192.168.1.1 255.255.255.0

 ip mtu 1372
 tunnel source Dialer1
 tunnel destination 200.1.1.1

 !
 interface Dialer1
 ip unnumbered Loopback0
 ip access-group A-security in
 ip mtu 1454
 encapsulation ppp
 dialer pool 1
 dialer-group 1
 no cdp enable
 ppp authentication chap callin
 ppp chap hostname cisco@cisco.com
 ppp chap password cisco
 crypto map M-ipsec
 !
 !
 router ospf 1
 log-adjacency-changes
 network 10.1.1.254 0.0.0.0 area 0
 network 192.168.1.1 0.0.0.0 area 0

 !
 !
 ip route 0.0.0.0 0.0.0.0 Dialer1
 !
 ip access-list extended A-ipsec
 permit gre host 100.1.1.1 host 200.1.1.1
 !
 ip access-list extended A-security
 permit esp host 200.1.1.1 host 100.1.1.1
 permit udp host 200.1.1.1 host 100.1.1.1 eq isakmp
 permit gre host 200.1.1.1 host 100.1.1.1
 !
 dialer-list 1 protocol ip permit


 crypto isakmp policy 1
 encry 3des
 hash md5
 authentication pre-share
 group 2
 !
 crypto isakmp key cisco address 100.1.1.1
 crypto isakmp keepalive 30
 !
 crypto ipsec transform-set IPSEC esp-3des esp-md5-hmac
 mode transport
 !
 crypto map M-ipsec 1 ipsec-isakmp
 set peer 100.1.1.1
 set transform-set IPSEC
 match address A-ipsec
 !
 !
 interface Loopback0
 ip address 200.1.1.1 255.255.255.255
 !
 interface GigabitEthernet 0/0
 pppoe enable group global
 pppoe-client dial-pool-number 1
 no cdp enable
 !
 interface GigabitEthernet0/1
 ip address 10.1.2.254 255.255.255.0
 ip tcp adjust-mss 1332
 !
 interface Tunnel 1
 ip address 192.168.1.2 255.255.255.0

 ip mtu 1372
 tunnel source Dialer1
 tunnel destination 100.1.1.1

 !
 interface Dialer1
 ip unnumbered Loopback0
 ip access-group A-security in
 ip mtu 1454
 encapsulation ppp
 dialer pool 1
 dialer-group 1
 no cdp enable
 ppp authentication chap callin
 ppp chap hostname cisco@cisco.com
 ppp chap password cisco
 crypto map M-ipsec
 !
 !
 router ospf 1
 log-adjacency-changes
 network 10.1.2.254 0.0.0.0 area 0
 network 192.168.1.2 0.0.0.0 area 0

 !
 !
 ip route 0.0.0.0 0.0.0.0 Dialer1
 !
 ip access-list extended A-ipsec
 permit gre host 200.1.1.1 host 100.1.1.1
 !
 ip access-list extended A-security
 permit esp host 100.1.1.1 host 200.1.1.1
 permit udp host 100.1.1.1 host 200.1.1.1 eq isakmp
 permit gre host 100.1.1.1 host 200.1.1.1
 !
 dialer-list 1 protocol ip permit



 ◆ GRE over IPsecコンフィグ上の注意点

 GRE over IPsecのコンフィグ設定は、GREの設定とIPsecの設定の組み合わせであることから、すでに
 解説した部分については省略し、GRE over IPsecのコンフィグ上の注意点となる箇所だけを説明します。

コンフィグレーション 説明
crypto isakmp keepalive 30


 詳細説明はIKE Phase1コンフィグの通り。今回の場合はダイナミックルーティング
 プロトコルを使用するので、IKEキープアライブを定期的に送信する必要はない。
 従って、ESPパケットの送受信状況をモニタして必要な時にだけIKEキープアライブを
 送信する on-demand を設定する。⇒ crypto isakmp keepalive 30 on-demand
 ※ この値はデフォルトなので表示されない。

mode transport


 デフォルトの「mode tunnel」でも動作するが、デフォルト値の場合だとIPsecの
 トンネリングを行い、さらにGREでトンネリングを行うという二重の無駄が発生して
 ルータの無駄なリソース消費と無駄なヘッダー付けがされてしまう。トンネリングは
 GREに任せているので、IPsecのモードは mode transport にすることが望ましい。

ip tcp adjust-mss 1332


 IPsecの場合に定義していたMSS値1356byteから単純にGREヘッダーの24byteを引くと
 1332byteとなります。ただしIPsecをトランスポートにしている場合、暗号化をAESに
 している場合とでオーバーヘッドの値が変わってくるので、この1332という値は設定の
 パラメータによりMSSの値は異なる。ただ、フラグメントを起こさない事は重要であるが
 20byteくらいのオーバーヘッドの追加へのマイナス面は少ないので、1332byteが妥当。

interface Tunnel 0
 GREインターフェースを設定する。番号は任意でIPsecピアであわせる必要もなし。

ip address 192.168.1.1
 GREインターフェースのIPアドレスを設定する。適当なプライベートIPを割り当てる。

ip mtu 1372
 MSSに40byte (IPヘッダ+TCPヘッダ) を加えた値がMTUとなる。

tunnel source Dialer 1
 GREトンネルの送信元IPアドレスを指定する。※  I/Fによる指定も可能。

tunnel destination 200.1.1.1
 GREトンネルの宛先IPアドレスを指定する。

OSPFのコンフィグレーション


 TunnelインターフェースとLAN側インターフェースを有効にする。
 グローバルIPを持つDialerやloopbackのインターフェースを有効にする必要はなし。

ip access-list extended A-ipsec
permit gre host 100.1.1.1 host 200.1.1.1


 IPsecの暗号化対象となるACLを定義しています。GRE over IPsecの場合、
 GREの解説にある通り、トラフィックの送信元IPと宛先IPがGREインターフェースの
 送信元IPと宛先IPに変更されるので、暗号化対象はGRE I/Fの送信元IPと宛先IP。

ip access-list extended A-security
permit gre host 200.1.1.1 host 100.1.1.1


 IPsec通信のためのESPやIKEトラフィックの許可だけでなく、GRE通信のための
 送信元IPと宛先IPアドレスを持つトラフィックを許可する。GREはIPプロトコル番号47。




  




IPsec、IPsec-VPN、リモートアクセスVPN

ネットワークエンジニアとして

Copyright (C) 2002-2024 ネットワークエンジニアとして All Rights Reserved.