フロートリンク

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

フロートリンクに対応するVPN機能
ルーティングベースIPsec
IP-IPトンネル
L2TPv3

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

フロートリンクを使用するノード(サービスアダプタ)は、起動完了時および、約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アドレスの選択基準は次の通りです。
"...floatlink.address-family : ipv4" の場合
IPv4プライマリアドレスを登録します。エイリアスアドレスは選択しません。
"...floatlink.address-family : ipv6" の場合
状態がanycast, deprecated, duplicated, detached のいずれでもないグローバルアドレスのうち、最後に付与されたIPv6アドレスを登録します。リンクローカルアドレスは選択しません。
  • 各VPN接続設定の...floatlink.my-address キーで指定されたインタフェースに、...floatlink.address-family で指定されたアドレスファミリのIPアドレスが付与されていない場合には、ネームサーバに登録しません。
  • 複数のインタフェースでフロートリンクを使用する場合には、インタフェースごとに異なるアドレスファミリを指定できます。

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

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

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

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

ノードID

フロートリンクを利用するノード(サービスアダプタ)は、グループ内で一意となるノードIDをフロートリンクのネームサーバに登録し、接続対向の識別に使用します。

フロートリンクのネームサーバには、一つのノードIDに対してIPv4アドレスとIPv6アドレスをそれぞれ一つ登録できます。また、一台のノードで複数のノードIDを登録できます。

なお、一つのノードIDに複数のIPv4アドレス(または複数のIPv6アドレス)は登録できないため、PPPoEインタフェースとPPPインタフェースのそれぞれのIPv4アドレスをVPNの接続元として使用するといった場合には、ノードIDまたはグループを分ける必要があります。

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

自身のIPアドレスに変更があった場合はフロートリンクのネームサーバへ通知します。

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

復旧見込み時間

フロートリンクのネームサーバへアクセスするタイミングは装置ごとに異なります。IPアドレスの変更が発生した装置は1分ほどでネームサーバへ通知しますが、対向装置がネームサーバからIPアドレスを取得するのは5分間隔のため、平均3,4分での復旧が見込めます。

NAT環境への対応

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

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

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

注:

NATによるアドレス書き換えの検知に関する注意

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