なぜVNETプラスが必要なのか
ネットワークシステムの構築や開発で悩んだことはありませんか。
NAT越え問題にうまく対処できるのか、
通信セキュリティに問題はないか、
十分な性能を得られるのか、
効率のよい開発はできるのか、
など、難しい問題がたくさんあります。
VNETプラスはそのような悩みを解決します。
IPネットワークの課題を解決したネットワークのあるべき姿をフレキシブルプライベートネットワーク(FPN)と呼びます。
FPNでは、相手がどこにいようと必ずエンドツーエンドの通信経路を確立します。
また、通信中かどうかを問わず、自由に場所を移動できます。
通信のセキュリティは万全です。さらにユーザのグルーピングが可能で安心して利用できます。
VNETプラスはFPNを実現することができる、日本発・世界唯一の技術です。
画像をクリックしてください。
以下の内容が説明されています。
・なぜVNETプラスが必要なのか
・現状のネットワークの課題
・VNETプラスの特長
・VNETプラスでできること
VNETプラスの特長
VNETプラスはFPNを実現できるだけでなく、たくさんの利点を持っています。以下にその特長を示します。
〇 簡単なセットアップ
・VNET代表ユーザが各エンドユーザのVNET IDと通信グループを定義します。専門的な知識は不要です。
・各エンドユーザはVNETプラスをインストールするだけです。
これで準備は完了です。セットアップ方法は別動画をご覧ください。
〇 通信相手はVNET ID(名前)で指定
一般に名前で相手を指定するときは、DNS (Domain Name System)など名前解決の仕組みを準備する必要があります。しかし、VNETプラスには名前解決の仕組みが含まれおり、相手がどこにいようとVNET IDにより必ず相手を探し出します。
〇 簡単な通信グループ定義
VNET IDを分類するだけで通信グループを定義できます。
〇 NAT越え問題の解決
一般にはNATの上位ネットワークからNAT配下の通信デバイスに向けての通信開始はできません。これをNAT越え問題と呼びます。しかし、VNETプラスはこのような場合であっても、通信相手をVNET IDで指定して通信が開始できます。
〇 システム構成を自由に変更可能
一般に通信デバイスの場所が変わると、通信デバイスやネットワーク機器の設定変更が必要になります。しかし、VNETプラスでは、システムとしてデバイスの位置を常時把握しており、設定の変更は不要です。
〇 移動透過性
一般には通信中にネットワークを切り替えると、実IPアドレスが変化するため、通信の継続ができません。しかし、VNETプラスは仮想アドレスで通信しているため、このような場合も通信の継続ができます。これを移動透過性があると言います。
〇 VNET通信と一般通信の同時実行
通信相手が一般デバイスであれば一般通信、VNET機能を持つデバイスであればVNET通信を自動的に切り替えます。また、一般通信とVNET通信を同時に実行することも可能です。
〇 最適な通信経路の選択
通信経路が複数存在する場合、遅延の少ない通信経路を自動的に選択します。
〇 高スループットの実現
ノートPCどうしのLAN内通信において、暗号化通信で220Mbpsという値を実現しています。VNETデバイスが通信ネックとなることはほとんどありません。
〇 VNETアダプタの提供
VNETプラスのインストールができない通信デバイスの場合、VNETアダプタを隣接設置することによりVNETの機能を代行させることができます。
〇 IPv4とIPv6装置間の直接通信
一方の装置がIPv4アドレスしか保持しておらず、もう一方の装置がIPv6アドレスしか保持していない場合であってもエンドツーエンド通信が可能です(開発中)。
さらに、VNETプラスは以下のような万全のセキュリティ対策を実装しています。
〇 エンドツーエンドのパケット認証と暗号化
通信経路上にNATが存在する場合であっても、エンド通信デバイス間でエンドツーエンドのパケット認証と暗号化を行います。暗号アルゴリズムは現時点で安全性が保証されているAES CBCモード 鍵長256ビットを採用、ハッシュアルゴリズムはSHA-256を採用しています。
〇 独自のDoS攻撃対策とリプレイ攻撃対策
不正パケットを高速に廃棄する独自のDoS攻撃対策を保持しています。またリプレイ攻撃対策も万全です。
〇 サービス事業者(*)からの情報漏洩防止対策
エンドツーエンド通信用暗号鍵はサービス事業者でもわからないように配慮しています。そのため、サービス事業者から情報が漏洩する心配がありません。
(*)サービス事業者とはここでは株式会社VNETテクノロジーのことです。
〇 多要素認証の提供
ユーザを確実に認証するため、パスワードと乱数を組み合わせた、独自の多要素認証機能を提供します。また、ワンタイムパスワードにも対応しています。これらの認証方式を組み合わせた多要素認証が可能です。
VNETプラスでできること
LAN内通信をそのまま広域通信に拡張
例えば、企業内で実現しているシステムをインターネット経由のシステムに簡単に拡張できます。

開発効率の飛躍的な向上
LAN上で開発をすればそのままインターネット経由のシステムに拡張できます。

VNETプラスの動作原理
これまで、エンドツーエンドの通信経路を構築する技術とセキュリティを確保する技術を統合することが困難でした。我々は独自の取り組みによりこの課題を解決しました。
VNETプラスはインターネット上のVNETサポート装置群により動作が制御されています。エンド通信機器が通信を開始するときに、サポート装置群が仲介してエンドツーエンドの堅牢なトンネル通信経路を構築します。ユーザアプリケーションは、このトンネル通信経路を使ってセキュアな相互通信ができます。

VNETサポート装置群は以下の装置より構成されています。
AS (Account Server): ユーザの認証と管理画面の提供
DC (Direction Coodinator): 仮想アドレスの配布と通信経路の指示
TS (Tunnel Switch): 直接経路が生成できない場合にパケットを中継する
エンドユーザはこれらの装置を意識する必要はありません。
エンドユーザは自分の通信デバイスにVNETプラスをインストールするだけです。
VNETプラスをインストールした通信デバイスをEN(End Node)と呼びます。
ENの起動時に以下の処理が行われます。
ENはASにログインし、正しいユーザであることを認証してもらいます。
次にRegistrationにより実アドレスがDCに登録されます。
このとき、途中にNATが存在する場合は、NATのアドレスも同時にDCに登録されます。
DCは重複しない仮想アドレスを生成しENに配布します。
これで通信開始の準備が終了します。

次は通信開始の手順です。
通信開始側EN1が、通信相手EN2のVNET IDを指定して、DCに経路指示要求を送信します。
DCはこれを受けて通信経路を決定します。
EN1とEN2はDCの指示に従って、実IPアドレスによるトンネル経路を生成します。
EN1とEN2はトンネル経路を介して、仮想IPアドレスによる通信を実行します。
このとき、以下のケースにおいてはTS経由の経路となります。
一つは両NATがともにSymmetric型NATの場合です。この確率は約8%程度です。
もう一つはENの一方が物理的にIPv4アドレスしか保持しておらず、もう一方がIPv6のアドレスしか保持していないときです。

通信中にENが場所を移動すると以下の手順が実行されます。
EN1が移動するとIPアドレスが変化するので、DCに対して経路変更要求を送信します。
DCはこれを受けて通信経路を再度決定します。
EN1とEN2はDCの指示に従って、実IPアドレスによるトンネル経路を再生成します。
EN1とEN2のアプリケーションは、実IPアドレスの変化に気づくことなく、仮想IPアドレスによる通信を継続します。

トンネル通信とは、カプセル化通信とも呼ばれます。
アプリケーションは仮想IPアドレスをヘッダに含むパケットを生成します。
この図の緑色の部分です。
このパケットをデータとみなして、さらに実IPアドレスによるヘッダを追加します。
これをカプセル化と呼びます。
ルータは実IPアドレスを見て所定の宛先までパケットを届けます。
受信側ではカプセル化を解除して、仮想IPアドレスのパケットをアプリケーションに渡します。
これにより、アプリケーションは実IPアドレスに依存しない通信が可能となります。

VNET IDについて
VNETプラスを利用するためには対象となる終端通信装置にVNET IDと呼ぶ名前を付与する必要があります。
VNET IDはFQDN (Fully Qualified Domain Name)(*)の形式に準拠しています。
FQDNの規則に従えば世界中で名前が重複しないことが保証されます。
FQDNは一般にはサーバに対して付与されるもので、クライアントPCには通常は付与されません。
しかし、VNETプラスで通信を行う場合は、全ての終端通信装置にVNET IDを付与します。
VNET IDは以下のような形をしています。

「ユーザ名」はユーザが利用する各通信装置に付与するユニークな名前です。
aaa.comid, aaa.bbb.comidのように階層構成になっていてもかまいません。
「VNETオーナー名」はネットワーク管理者がVNETオーナー登録したときに取得した名前です。
ntm200.comはVNETプラス固有のドメイン名で固定値です。
(*)FQDN;インターネット上のコンピュータやサーバーなどを特定するための、省略のないフルドメイン名のことです。FQDNはICANN (The Internet Corporation for Assigned Names and Numbers)で重複がないように管理されています。
動作検証の方法
通信相手のサーバを指定するときに、一般にはIPアドレス、またはホスト名(FQDN)を使用しますが、VNET通信を行う場合は、この部分をVNET IDに置き換えてください。
例えばサーバが以下の場合を例にとります。
IPアドレス: 192.168.10.100
FQDN: abc.def.acompany.co.jp
このサーバに以下のようなVNET IDを付与したとします。
VNET ID: aaa.vowner.ntm200.com
(1) Webサーバのアクセス
上記WebサーバをPCのブラウザからアクセスする場合、一般通信ではURL欄に以下のように指定します。VNET通信を行う場合は、赤字部分を青字に置き換えてください。
一般通信では http://192.168.10.100:8080/index.php または
http://abc.def.acompany.co.jp:8080/index.php
VNET利用時においては http://aaa.vowner.ntm200.com: 8080/index.php
一般通信はLAN内でのみアクセスが可能ですが、VNET通信の場合はLAN内であっても、インターネットを経由であってもアクセスが可能で、かつ暗号化が施されます。
(2) Windowsファイル共有
Windowsファイルサーバのfile1をユーザPCでアクセスするとき、ユーザPCのエクスプローラーのファイル指定欄に以下のように入力します。
一般通信では \192.168.10.100\file1 または、\abc.def.acompany.co.jp\file1
VNET利用時においては \aaa.vowner.ntm200.com\file1
利用上の留意事項
VNETは多くの場合、周辺のネットワーク環境にかかわりなく導入が可能ですが、以下のような環境においては留意が必要です。
ファイアウォールに係る留意点
○ UDPポート4330
VNETプラスでは、トンネル経路の生成と、終端通信どうしのカプセル化通信において、UDPポート4330を使います。企業ネットワークによっては、ファイアウォールがこの種のパケットを通さない設定になっている場合があります。この場合は情報システム部門に依頼してポートを開放してもらう必要があります。
○ TCPポート9001
VNETプラスのサービス機能として、VideoPhone(テレビ電話)とVideoMeeting(テレビ会議)と呼ぶアプリケーションが付随しています。これらのサービスではセットアップ時にTCP9001を利用しています。これらのサービスを利用する場合には、ファイアウォールがTCP9001を通してくれることを確認してください。
VNETアダプタ利用時の留意点
○ NAT (Network Address Translation)装置の多段構成には要注意
NATが多段構成の場合、VNETアダプタ配下のデバイスのIPアドレスが重複しないように留意する必要があります。
以下の図において、アドレス空間1とアドレス空間2のプライベートアドレスが重複していてもVNETプラスを使用する限り問題なく通信ができます。しかし,NATとアダプタが多段構成になっていた場合、アドレス空間21とアドレス空間22はアドレスが重複しないようにする必要があります。IPネットワーク側から見て、空間21と空間22の識別ができないためです。
そのためVNETアダプタ21、22が保持するDHCPサーバのアドレス配布範囲を重複しないように適切に設定する必要があります。

○ VNETアダプタ配下ではVNET通信デバイスどうしの通信はできない
VNETアダプタ配下の下位ネットワークにVNETをインストールしたデバイスが複数存在した場合、これらのデバイス間でのVNET通信はできません。
以下の図で、上位ネットワークのVNET装置Dと、VNETアダプタ配下のVNET装置Aが通信する場合、DとAがエンドツーエンドでVNET通信を実行し、アダプタは単なるNATとして動作します。
上位ネットワークのVNET装置Dとアダプタ配下の一般装置Cが通信する場合、VNETアダプタがCに代わってVNET機能を代行します。この切り替えは自動的に行われます。
ここで、VNETアダプタ配下のVNET装置Aと、VNETアダプタ配下のVNET装置Bが直接通信する場合、宛先をVNET IDで指定すると仮想IPアドレスを取得するため通信はできません。どうしても通信したい場合は一般通信となります。

○ Pingによる接続確認には要注意
PingテストのターゲットがVNETアダプタ配下の一般通信デバイスの場合、上位ネットワーク側からPingの送達確認ができないことがあります。VNETアダプタは配下デバイスをTCP/UDPパケットのポート番号で識別していますが、PingはICMPなのでポート番号が定義されておらず、配下のデバイスを識別できないためです。配下のVNETデバイスが1台に限定される場合は、識別が不要なのでPingの利用が可能です。
ターゲットがWindowsの場合、デフォルトではPingの受信を受け付けない設定になっているので注意してください。
DNSに係る留意点
○ YogaDNSを既に導入しているユーザーは個別対応が必要
Windows版VNETプラスでは、通信開始時のDNS要求をフック(横取り)するためにYogaDNSと呼ぶアプリケーションを利用しています。そのため、YogaDNSを以前から単独で利用していたユーザは、そのままではVNETプラスを利用できません。この場合は、YogaDNSのこれまでの設定内容にVNETプラスが利用する条件を追加記述することにより動作が可能となります。このようなケースは個別対応となりますのでご連絡ください。
○ DNS要求が競合するアプリケーションが存在する
VNETはDNS要求をフック(横取り)することにより動作を開始しますが、同様の機能を必要とする別のアプリケーションがインストールされていた場合(例えばAdGuard:Youtube広告をブロックするアプリ)、フック機能が競合しVNETプラスの送信ができないことがあります。AdGuardの場合は、オプション設定によりDNSに係る動作をオフにすることができるので、これによりVNETとの競合を回避できます。
○ DNSサーバのIPアドレスはDHCPで取得させる
アダプタの上位ネットワーク側のDNSサーバの割り当ては自動取得(DHCP)としてください。手動でDNSサーバを固定値で設定するとDNS要求のフック機能がうまく動作しないことがあります。
移動透過性に係る制約事項
○ 複数のネットワークインタフェースを持つと移動通信に失敗することがある
通信デバイスが複数のネットワークインタフェース(例えばWi-FiとEthernet)を持ち、ともに有効にしていた場合、移動透過性を実現できない場合があります。以下の図で装置AはWi-FiとEthernetの2つのネットワークに接続されています。このときAまたはBが通信中に、どちらかがネットワークを切り替えると、VNETの移動処理に失敗し通信が切れます。移動透過性を実現したい場合には、ネットワークインタフェースを複数同時に有効にしないようにしてください。

○ 移動透過性と相性の悪いアプリケーションが存在する
WindowsでAdGuardを動作させていると、VNET移動処理に大きな負荷が発生し、移動処理に失敗することがあります。 移動処理を行う可能性のあるデバイスは、AdGuardを利用しないことを推奨します。
その他
セキュリティを強化した通信デバイスでは、仮想アドレスでの通信ができない場合があります。


