IPIPトンネリング

$Date: 2017/10/11 12:06:56 $


概要

IPIPトンネリング (IP over IP 以下、IPIP) は、IPパケットにさらにIPヘッダを付加してカプセル化することでネットワーク間でのVPN (Virtual Private Network) 接続を実現するトンネリングプロトコルです。 ヤマハルーターは RFC1853 (IP in IP Tunneling) に準拠しています。IPIPには認証や暗号化の仕組みは無いため、閉域網サービスなど安全な通信が提供されている環境で利用します。

また、ヤマハルーターでは独自仕様のIPIPキープアライブを使用することができます。IPIPキープアライブを使用すると、対向ルーターとの接続を確認してからトンネルをアップさせたり、 トンネル切断検知後に自動的にトンネルの再確立処理を行ったりすることができます。

IPIPトンネルには、以下の4種類が存在します。

トンネルの種類 説明
IPv4 over IPv4トンネル IPv4パケットをIPv4でカプセル化する。
IPv6 over IPv6トンネル IPv6パケットをIPv6でカプセル化する。
IPv4 over IPv6トンネル IPv4パケットをIPv6でカプセル化する。
IPv6 over IPv4トンネル IPv6パケットをIPv4でカプセル化する。



対応機種とファームウェアリビジョン

ヤマハルーターでは以下の機種およびファームウェアで、IPIPをサポートしています。

機種 ファームウェア IPIPキープアライブ/
トンネル端点ホスト名指定
RTX830 初期リビジョンから Rev.15.02.01 以降
NVR510 Rev.15.01.09 以降
NVR700W Rev.15.00.10 以降
RTX1210 Rev.14.01.20 以降
RTX5000 Rev.14.00.22 以降
RTX3500 Rev.14.00.22 以降
FWX120 -
RTX810 -
NVR500 -
RTX1200 -
SRT100 -
RT58i -
RTX3000 -
RTX1100 -
RTX1500 -
RT107e -

IPIPトンネリングの詳細

IPIPは、IPパケットにさらにIPヘッダを付加してカプセル化することによって、拠点間のVPNを実現させるトンネリングプロトコルです。IPIPには、認証や暗号化の仕組みはありません。

カプセル化されたIPIPパケットのフォーマットの概略図は以下のとおりです。

ipip_connection_example

以下の図は、IPIPを用いてPC1からPC2へIPパケットを送信する様子を表したものです。PC1から送信されたIPパケットはRT1でカプセル化され、RT2宛の新しい外側IPヘッダーが付加されます。RT2側でカプセル化を解除し、PC2は送信元アドレス"192.168.100.2"からのIPパケットを受信します。

ipip_connection_example

※Src:送信元アドレス、Dst:宛先アドレス


IPIPトンネル端点のアドレス指定方法

ヤマハルーターでは、IPIPトンネル端点のアドレスとしてIPアドレスかホスト名 (FQDN) を指定することができます。

※1:"tunnel endpoint remote address", "tunnel endpoint local address"コマンドは、RTX5000 / RTX3500 の Rev.14.00.22 以降、RTX1210 の Rev.14.01.20 以降、NVR700W の Rev.15.00.10 以降、NVR510 の Rev.15.01.09 以降、RTX830で使用可能です。


IPIPキープアライブ

ヤマハルーターでは、RFCに準拠したものではない独自仕様のIPIPキープアライブを使用することができます。デフォルトでIPIPキープアライブは無効です。

通常、IPIPトンネルは常時接続ですが、IPIPキープアライブを使用した場合は、対向ルーターに対してリクエストパケットを送信し、リプライパケットの応答が確認できた場合にのみトンネルを確立します。 また、トンネル確立後にキープアライブの応答が確認できなくなった場合は、トンネルの切断処理を行った後、再びリクエストパケットを送信してトンネルの再確立を試みます。

IPIPキープアライブを使用すると、以下のようなメリットがあります。

IPIPキープアライブは、"ipip keepalive use"コマンドにより設定を行い、キープアライブの送信間隔(INTERVAL)と、トンネルがダウンしたとみなすまでのキープアライブの送信回数(COUNT)を指定することができます。 デフォルトでINTERVALは10秒、COUNTは6回です。キープアライブ有効時に、COUNT回連続してキープアライブの応答が確認できなければ接続性が無いとみなしてトンネルをダウンします。 また、トンネル端点をホスト名で指定している場合、名前解決後にCOUNT回連続してキープアライブの応答が確認できなければ、再度名前解決をやり直します。

IPIPキープアライブ関連のログは、"ipip keepalive log"コマンドによってSYSLOGに出力するか否かを切り替えることができます。表示されるメッセージは、「SYSLOGメッセージ一覧」 をご確認ください。

尚、IPIPキープアライブを使用する際は以下の点に注意してください。


IPIPトンネリングの動作

IPIPトンネル端点のアドレス指定方法とIPIPキープアライブの有無の各組合せにおけるトンネルの確立処理は、以下の手順で処理されます。

ipip_flowchart

以下の条件を満たす場合、一旦IPIPトンネルをダウンさせた後、再度アップさせる処理が実行されます。


IPIPトンネリングとNATの併用について

IPIPとNATを併用する場合、ローカルエンドポイントアドレスに「アドレス変換後のルーター自身のアドレス」を指定してください。 その際、IPv4 over IPv4トンネル、IPv4 over IPv6トンネルではプロトコル番号に4番が用いられ、IPv6 over IPv4トンネル、IPv6 over IPv6トンネルでは41番が用いられるため、 "nat descriptor masquerade static"コマンドにより、それらのプロトコル番号に対してNATの静的変換の設定を行ってください。また、NATの内側アドレスの範囲も明示的に指定することを推奨します。

自拠点側のWAN側IPアドレスが10.0.0.1/24、LAN側IPアドレスが192.168.100.1/24で、相手拠点側のWAN側IPアドレスが10.0.0.2/24の場合における、エンドポイントアドレスとNATの設定は次のようになります。

# tunnel select 1
#  tunnel endpoint local address 192.168.100.1 (※)
#  tunnel endpoint remote address 10.0.0.2 (※)
# nat descriptor type 1 masquerade
# nat descriptor address outer 1 10.0.0.1
# nat descriptor address inner 1 192.168.100.1-192.168.100.254
# nat descriptor masquerade static 1 1 192.168.100.1 4

(※)"tunnel endpoint address"コマンドを使用する場合は、"tunnel endpoint address 192.168.100.1 10.0.0.2"のようにローカルアドレスを指定してください。

NAT併用時の設定例については、「設定例6:IPv4 over IPv4 IPIPトンネル接続 NAT・フィルター併用時」をご確認ください。


IPIPトンネリングに関連したコマンド


IPIPトンネリングの設定例

IPIPの設定例を以下に示します。

【設定例1:IPv4 over IPv4 IPIPトンネル接続】


【設定例2:IPv6 over IPv6 IPIPトンネル接続】


【設定例3:IPv4 over IPv6 IPIPトンネル接続】


【設定例4:IPv6 over IPv4 IPIPトンネル接続】


【設定例5:IPv4 over IPv4 IPIPトンネル接続 トンネル端点ホスト名指定 + IPIPキープアライブ】


【設定例6:IPv4 over IPv4 NAT・フィルター併用時】

この設定例におけるフィルター設定は一例であるため、運用状況に応じて適切にフィルターの設定を行ってください。


【設定例7:IPv4 over IPv6トンネル接続 NGN網内折り返し、フレッツ・v6オプション契約】

フレッツ光ネクストでひかり電話契約をしていない場合(RAプロキシ)としている場合(DHCPv6-PD)で設定方法が異なるため、ひかり電話の契約を確認してください。


【ひかり電話を契約していない場合:RAプロキシ】


【ひかり電話を契約している場合:DHCPv6-PD】


【設定例8:IPv4 over IPv6トンネル接続 日本ネットワークイネイブラー株式会社 (以下JPNE) v6プラス (固定IP)】

「v6プラス (固定IP)」については、以下のページを参照してください。
http://www.jpne.co.jp/service/v6plus-static/

フレッツ光ネクストでひかり電話契約をしていない場合(RAプロキシ)としている場合(DHCPv6-PD)で設定方法が異なるため、ひかり電話の契約を確認してください。


【ひかり電話を契約していない場合:RAプロキシ】

【ひかり電話を契約している場合:DHCPv6-PD】



SYSLOGメッセージ一覧

本機能において出力されるSYSLOGメッセージを以下に示します。
出力されるメッセージには "[IPIP]" というプレフィックスが付加されます。

レベル 出力メッセージ 意味
DEBUG [IPIP] Receive keepalive request from unknown address (ADDRESS) 未登録のアドレス(ADDRESS)からキープアライブリクエストパケットを受信
[IPIP] Receive keepalive reply from unknown address (ADDRESS) 未登録のアドレス(ADDRESS)からキープアライブリプライパケットを受信
DEBUG
(ipip keepalive log on設定時)
[IPIP] Tunnel[XX] Keepalive timeout count=N トンネル切断検知までのキープアライブリクエストパケットの残り送信回数
[IPIP] Tunnel[XX] Keepalive timer expired IPIPキープアライブの到達性がなくなったと判定
[IPIP] Tunnel[XX] Receive illegal keepalive request from ADDRESS (Sequence ID: XXX) ADDRESSから不正なキープアライブリクエストパケットを受信(シーケンス番号不一致)
[IPIP] Tunnel[XX] Send keepalive request to ADDRESS (Sequence ID: XXX) ADDRESSにキープアライブリクエストパケットを送信(シーケンス番号:XXX)
[IPIP] Tunnel[XX] Send keepalive reply to ADDRESS (Sequence ID: XXX) ADDRESSにキープアライブリプライパケットを送信(シーケンス番号:XXX)
[IPIP] Tunnel[XX] Receive keepalive request from ADDRESS (Sequence ID: XXX) ADDRESSからキープアライブリクエストパケットを受信(シーケンス番号:XXX)
[IPIP] Tunnel[XX] Receive keepalive reply from ADDRESS (Sequence ID: XXX) ADDRESSからキープアライブリプライパケットを受信(シーケンス番号:XXX)

関連技術資料