ルーター内のSoftEtherでWAN(UDP)高速化機能を使用する

ルーター内のSoftEtherでWAN(UDP)高速化機能を使用する

前回の記事でVyOS+SoftEtherによるUDP高速化機能を実現したが、いくつかの問題点がある。

  • VyOSのバージョンアップ時に毎回SoftEtherを入れなおさないとならない
  • ルーターの機能とVPNの機能は分離しておきたい
    (普通のルーター環境でも実現したい)

そこでUDP高速化機能の仕様について問い合わせてみた。
まとめてみるとUDPのアクセス方法が見えてきた。

  1. UDPが開放されているかはUDPホールパンチングで確認する
    →サーバー側からまずUDPパケットを送信する
  2. 通信方法は特別ではなく通常の通信方法で行われる
    →エフェメラルポートを用いてポートを確定(OSの仕様に準拠)

以上の事から、以下の条件を満たせば容易にルーター内でUDP高速化機能を実現することが出来る事がわかる。

  1. サーバーOSのエフェメラルポートを制限し、範囲を特定・狭める
  2. ルーターからUDPの開放を行う(エフェメラルポートの範囲)

これらの機能を実現するためにはSoftEtherを実行するサーバーは専用OSとしたほうが望ましい。
(エフェメラルポートを絞るので他の通信があると被ってしまい塞がってしまう可能性があるため)

■実装例

Windows Severを用いてSoftEther専用サーバーを立ててみる

1.Windows OSのインストール(省略)

2.エフェメラルポートを制限する

ここでは使用するポートを1025~2025(1000個)とする。
プロトコルは一応TCPとUDP両方設定しておく。
設定はコマンドラインで出来る。
netsh int ipv4 set dynamicport tcp start=1025 num=1000
netsh int ipv4 set dynamicport udp start=1025 num=1000
netsh int ipv6 set dynamicport tcp start=1025 num=1000
netsh int ipv6 set dynamicport udp start=1025 num=1000

3.ルーター側でポートフォワーディングする

以下はVyOSでの設定
接続用の5555(TCP)とUDP高速化機能用の1025~2025(TCPとUDP)を開放する。
set nat dest rule 10 desc SoftEther1
set nat dest rule 10 dest address <グローバルIP>
set nat dest rule 10 dest port 5555
set nat dest rule 10 inbound-interface pppoe0
set nat dest rule 10 protocol tcp_udp
set nat dest rule 10 translation address 192.168.xxx.zzz(サーバーのIP)
set nat dest rule 11 desc SoftEther2
set nat dest rule 11 dest address <グローバルIP>
set nat dest rule 11 dest port 1025-2025
set nat dest rule 11 inbound-interface pppoe0
set nat dest rule 11 protocol tcp_udp
set nat dest rule 11 translation address 192.168.xxx.zzz(サーバーのIP)

4.VPN接続して確認

VPN接続時のプロパティでUDP高速化機能が『はい』になっていることを確認する

この形ならルータ内であってもWAN(UDP)高速化機能が有効になるので高速なVPNが使えるようになる。ルーターもポート開放ができるものなら特に問題なく出来るはずだ。

コメント

このブログの人気の投稿

カスタムメイド3D2用プラグインを作りました

VyOS 1.1.1とSoftEther VPN Serverで自宅VPN最速設定

プロバイダをオープンサーキットからIIJへ変更