静的ルーティングテーブルに記載した64エントリのうち6エントリしか認識されない

SoftEther VPN に関するご質問はこのフォーラムにお気軽にご投稿ください。
Post Reply
Field
Posts: 22
Joined: Thu May 21, 2020 1:39 pm

静的ルーティングテーブルに記載した64エントリのうち6エントリしか認識されない

Post by Field » Wed Aug 25, 2021 12:39 pm

いつもお世話になっております。
静的ルーティングテーブルに64エントリを追加したのですが、冒頭6エントリしか認識されない事象が発生致しました。
本事象の解決策についてご教示いただけないでしょうか。(もし追加で必要な情報があれば共有いただけますと幸いです。)
※当該環境では、最新版のSoftEther VPN 4.38 Build 9760 RTMを使用しております。

Field
Posts: 22
Joined: Thu May 21, 2020 1:39 pm

Re: 静的ルーティングテーブルに記載した64エントリのうち6エントリしか認識されない

Post by Field » Thu Aug 26, 2021 7:24 am

補足させてください。検証したところ、29エントリが正常に認識される最大値である旨わかりました。
30エントリ以上をテーブルに追加した場合、認識されるエントリは下記の通りになりました。
・30エントリ以上追加すると、57エントリまでは認識されるエントリが0から28エントリまでひとつずつ増えていく
 (30エントリの場合は0エントリ、57エントリの場合は28エントリ認識される)
・58エントリから64エントリまでは認識されるエントリが再び0から6エントリまでひとつずつ増えていく
 (58エントリの場合は0エントリ、64エントリの場合は6エントリ認識される)

cedar
Site Admin
Posts: 1697
Joined: Sat Mar 09, 2013 5:37 am

Re: 静的ルーティングテーブルに記載した64エントリのうち6エントリしか認識されない

Post by cedar » Thu Aug 26, 2021 9:35 am

RFC 2131 通りのDHCPでは、オプションのサイズは255バイトまでしか記述できません。これは静的ルート27個分に相当します。
ここまでのサイズであれば、どのクライアントでも正常に解釈できるはずです。

SecureNAT の仮想 DHCP 機能では、256バイトを超えた DHCP オプションの記述方式としてマイクロソフトが提唱する
方式を採用しています。

https://docs.microsoft.com/en-us/opensp ... 672387b7e0

このため、拡張DHCPオプションをサポートしない DHCP クライアントや、RFC 3396 の方式で長いオプションを解釈する
DHCP クライアントでは、28個以上の経路を指定した際に正常に解釈されなくなります。
経路をまとめるなどして27個以下にすることをお勧めします。

Field
Posts: 22
Joined: Thu May 21, 2020 1:39 pm

Re: 静的ルーティングテーブルに記載した64エントリのうち6エントリしか認識されない

Post by Field » Thu Aug 26, 2021 3:11 pm

cedarさん
ご回答ありがとうございます。
接続元のPCはWindows 10を利用しているため、マイクロソフトの DHCP オプションの記述方式には対応できている認識です。
OpenVPN Clientを利用しているのですが、こちらが原因でしょうか。。

cedar
Site Admin
Posts: 1697
Joined: Sat Mar 09, 2013 5:37 am

Re: 静的ルーティングテーブルに記載した64エントリのうち6エントリしか認識されない

Post by cedar » Thu Aug 26, 2021 8:45 pm

OpenVPN との組み合わせでは動作を調べたことがないですが、コード上では長いオプションの解読は行っているようです。
https://github.com/SoftEtherVPN/SoftEth ... Ip.c#L4072

OpenVPN クライアントに送られてくるオプション文字列も不足している感じでしょうか?

Field
Posts: 22
Joined: Thu May 21, 2020 1:39 pm

Re: 静的ルーティングテーブルに記載した64エントリのうち6エントリしか認識されない

Post by Field » Mon Aug 30, 2021 2:11 am

cedarさん
ご回答ありがとうございます。
OpenVPN クライアントのログを確認したところ、オプション文字列が不足していることがわかりました。
オプション文字列の不足がSoftEther VPN Serverからの送信時に発生しているのか、Open VPNクライアントでの受信時に発生しているのかについては未確認です。

そして大変申し訳ありません、冒頭に記載した認識されないエントリ数に誤りがありました。
検証したところ、42エントリが正常に認識される最大値であることがわかりました。
またSoftEther Clientで検証したところ、上限である64エントリまで正常に認識されることも検証致しました。

cedar
Site Admin
Posts: 1697
Joined: Sat Mar 09, 2013 5:37 am

Re: 静的ルーティングテーブルに記載した64エントリのうち6エントリしか認識されない

Post by cedar » Mon Aug 30, 2021 2:20 am

そうすると、OpenVPN (L3)のプロトコル変換器内蔵のDHCPクライアントのバグのような気がします。

Field
Posts: 22
Joined: Thu May 21, 2020 1:39 pm

Re: 静的ルーティングテーブルに記載した64エントリのうち6エントリしか認識されない

Post by Field » Tue Aug 31, 2021 8:01 am

cedarさん
ご回答ありがとうございます。ご指摘いただいた通り、OpenVPN Client側にエラー原因があるようです。
OpenVPN Clientのバージョンを2.4.6(1602)から3.3.1(2222)へ最新化したところ、Secure NATに登録した64エントリすべてが認識されるようになりました。
ご調査下さり誠にありがとうございました。大変助かりました。

Post Reply