フロートリンク

フロートリンクによるVPN自動設定の動作について説明します。

フロートリンクのネームサーバへの登録と情報取得

フロートリンクを使用するノード(サービスアダプタ)は、起動完了時および、約5分間隔でフロートリンクのネームサーバへアクセスし、自身のノードID、IPアドレス、及びグループキーの登録または更新を行います。また、所属するグループの他のノードのIPアドレスを取得します。

1: フロートリンクのネームサーバとの通信フロー
  1. フロートリンクのネームサーバのURLのホスト名を、リゾルバ機能を用いてDNSサーバに問い合わせる
  2. DNSサーバからフロートリンクのネームサーバのIPアドレスを得る
  3. ノード自身の、ノードID、IPアドレス、及び所属グループのグループキーをネームサーバに登録する
  4. 所属グループのグループキーと対向ノードのノードIDを用いて、対向ノードのIPアドレスをネームサーバに問い合わせる
  5. ネームサーバから対向ノードのIPアドレスを得る
  6. 対向ノードのIPアドレスに対してVPN接続を開始する

フロートリンクのネームサーバに登録されたIPアドレスの有効期間は15分です。登録したノードからのアクセス(有効期間の更新)が途絶えた場合には有効期間経過後に削除されます。

フロートリンクのネームサーバへのアクセスは、まずIPv6での通信を試み、失敗した場合にIPv4を使用します。

フロートリンクのネームサーバに登録するIPアドレスの選択

登録するIPアドレスの選択基準は次の通りです。
"interface <interface> floatlink address-family ipv4" の場合
IPv4プライマリアドレスを登録します。エイリアスアドレスは選択しません。
"interface <interface> floatlink address-family ipv6" の場合
状態がanycast, deprecated, duplicated, detached のいずれでもないグローバルアドレスのうち、最後に付与されたIPv6アドレスを登録します。リンクローカルアドレスは選択しません。
  • "interface <interface> floatlink my-address" で指定されたインタフェースに、"interface <interface> floatlink address-family"で指定されたアドレスファミリのIPアドレスが付与されていない場合には、ネームサーバに登録しません。
  • 複数のインタフェースを使用する場合には、インタフェースごとに異なるアドレスファミリを指定できます。

フロートリンクのグループ

フロートリンクでは、直接VPN接続を行うノード(VPN拠点となるサービスアダプタ)をグループとして管理します。

一つのグループに複数のノードが所属できます。また、一つのノードが複数のグループに所属できます。

各ノードはフロートリンクのネームサーバから、自身が所属するグループの他のノードのIPアドレスを取得してVPN構成に反映させます。

変更されたIPアドレスの反映

自身のIPアドレスに変更があった場合、フロートリンクのネームサーバへの定期的なアクセス時に更新します。

ネームサーバから取得した情報によって自身または対向装置のIPアドレスの変化を検知すると、VPNのアドレス構成を変更し対向装置と再接続します。

IPアドレスの変化からの復旧見込み時間

フロートリンクのネームサーバへアクセスするタイミングは装置ごとに異なります。IPアドレスが変化した装置がネームサーバへ通知するために0分から5分要し、変更されたIPアドレスを対向装置がネームサーバから取得するために0分から5分要するため、復旧見込み時間は最大で約10分(期待値として5分前後)となります。

パスフィルターの自動設定

フロートリンクによってVPN対向装置のIPアドレスを取得すると、VPN対向間の通信をパスするIPパケットフィルタのフィルタルールが自動的に設定されます。
  • フロートリンクの設定で指定されたアドレスファミリ(IPv4/IPv6)に応じて、ノードIDに対応するIPv4アドレスまたはIPv6アドレス間の通信をパスするフィルタが設定されます。
  • 自動設定されたフィルタルールは、filterおよびfilter6コマンドの設定によるフィルタルールより高い優先度でマッチします。

NAT環境への対応

ローカルアドレス(自身のIPアドレス)またはリモートアドレス(対向のIPアドレス)の、NATによるアドレス書き換えの検知を有効化することにより、上位に設置されるルータや接続サービス網内でNATが適用される環境であってもフロートリンクによるVPN接続を利用できます。
コマンド 設定内容 備考
floatlink dynamic-local-address NATによるローカルアドレス書き換えの検知 自身のアドレスにNATが適用される装置で有効にする(主に拠点装置)
floatlink dynamic-remote-address NATによるリモートアドレス書き換えの検知 対向のアドレスにNATが適用される装置で有効にする(主にセンター装置)

現在は、VPN対向のいずれか一方がNAT配下に設置される構成に対応しています。両方がNAT配下に設置される構成には対応していません。(dynamic-local-address と dynamic-remote-address はいずれか一方のみenableを指定できます)

アドレス書き換えの検知が有効であると、IPsecインタフェースはAggressive modeでIKEの折衝を行い、NAT Traversalを有効化します。

注:NATによるアドレス書き換えの検知に関する注意
IPsecインタフェースのみ対応
IP-IPトンネルインタフェース及びL2TPv3インタフェースでは使用できません。
IPv6 NATに非対応
IPsec/IKEのNAT TraversalはIPv6 NATに対応していないため、アドレス書き換えの検知を有効化する場合は "address-family ipv6" を設定できません。
VPN構成にNAT配下の装置が無い場合の有効化は非推奨
IKEのAggressive modeかつ事前共有鍵での認証は、Main modeと比較してセキュリティレベルが低くなるため、NAT配下の装置との接続が必要でないのであれば、アドレス書き換えの検知は無効化してご利用ください。
フロートリンクのネームサーバへプライベートアドレスが登録される
アドレス書き換えの検知の設定状態、及び実際のNAT適用状況によらず、常にインタフェースの実IPアドレスをフロートリンクのネームサーバへ登録します。NAT配下の装置の場合には、プライベートアドレスが登録されることになります。このため、VPN対向がNAT配下となるセンター装置側では、パスフィルターの自動設定及び静的経路のフロートリンクによる設定が実質的に利用できません。必要に応じてUDP 500及びUDP 4500のポートへの通信をパスするパケットフィルタを設定してください。

IPsec NAT Traversal の強制適用

IPsecのESPパケットを正常に転送できないネットワークに対処するため、ESPパケットのUDPによるカプセル化を常時適用することができます。
注:
  • 対向機器がNAT Traversalを使用可能でない場合は適用しません。
ヒント: NAT TraversalはIPsecのESPパケットをさらにUDPでカプセル化することでNAT環境下でのセッションの識別・維持を実現するのが基本原理です。そのために、セキュリティアソシエーションの始点及び終点を、IPアドレスのみでなく、カプセル化する際のUDPポート番号を含めた、アドレス及びポート番号のペアとして扱うよう拡張されています。(ステータス参照コマンドによる参照結果にも反映されます)