フロートリンク
フロートリンクによるVPN自動設定の動作について説明します。
- フロートリンクに対応するVPN機能
- ルーティングベースIPsec
VPNの自動設定をサポートするフロートリンク機能
「フロートリンク」とは、VPN自動設定機能の一つです。
サービスアダプタのフロートリンク機能を使用すると、ネームサーバとの連携によってVPN接続を行う対向ノード(サービスアダプタ)のIPアドレスを自動的に設定し、IPアドレスが変更された際に自動追従することができます。SMFv2サービスのサービスホストにフロートリンクのネームサーバが含まれています。
インターネット接続時のグローバルIPアドレスが固定でないPPPoE接続サービスや、NTTフレッツ光ネクストのNGN網内で半固定的に割り当てられる(固定であることが保障されない)IPv6アドレス間でのVPN構築に利用できます。
- フロートリンクを使用しNGN網内での折り返し通信によるVPNを設定する場合でも、サービスホストとの連携のためにインターネット接続の経路も確保する必要があります。
- フロートリンクはSMFv2サービス独自の仕様に基づきます。他社サービスの類似機能との相互運用はできません。
フロートリンクのネームサーバへの登録と情報取得
フロートリンクを使用するノード(サービスアダプタ)は、起動完了時および、約5分間隔でフロートリンクのネームサーバへアクセスし、自身のノードID、IPアドレス、及びグループキーの登録または更新を行います。また、所属するグループの他のノードのIPアドレスを取得します。
- フロートリンクのネームサーバのURLのホスト名を、リゾルバ機能を用いてDNSサーバに問い合わせる
- DNSサーバからフロートリンクのネームサーバのIPアドレスを得る
- ノード自身の、ノードID、IPアドレス、及び所属グループのグループキーをネームサーバに登録する
- 所属グループのグループキーと対向ノードのノードIDを用いて、対向ノードのIPアドレスをネームサーバに問い合わせる
- ネームサーバから対向ノードのIPアドレスを得る
- 対向ノードの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分での復旧が見込めます。
パスフィルタの自動設定
- フロートリンクの設定で指定されたアドレスファミリ(IPv4/IPv6)に応じて、ノードIDに対応するIPv4アドレスまたはIPv6アドレス間の通信をパスします。
- 自動設定されたフィルタルールは、コンフィグに手動設定されたフィルタルールより高い優先度でマッチします。
機種により対応状況が異なるため混成する場合に注意が必要です。
機種 | フィルタ自動設定 | 備考 |
---|---|---|
SEIL/X4, x86 Ayame, CA10 | 対応 | デフォルト無効 |
SEIL/X1, X2, B1, BPV4, x86 Fuji | 対応 | 常に有効 |
SA-W1, W2, W2L | 非対応 |
NAT環境への対応
キー | 設定内容 | 備考 |
---|---|---|
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のポートへの通信をパスするパケットフィルタを設定してください。