SecureNAT機能の、プッシュするルーティングテーブル
-
- Posts: 1
- Joined: Mon Mar 30, 2020 1:54 am
SecureNAT機能の、プッシュするルーティングテーブル
お世話になっております。
SecureNAT機能に、プッシュする静的ルーティングテーブルという設定があるかと思います。
そのエントリの上限は64エントリと記載があるのですが、32エントリ目を追記した後に再接続をすると、ルーティングテーブルがプッシュされない事象が発生します。
解決策を教えてください。
本環境では、OpenVPNサーバの機能を有効にし、接続に使用するクライアントソフトウェアもOpenVPNを使用しております。
よろしくお願いします。
SecureNAT機能に、プッシュする静的ルーティングテーブルという設定があるかと思います。
そのエントリの上限は64エントリと記載があるのですが、32エントリ目を追記した後に再接続をすると、ルーティングテーブルがプッシュされない事象が発生します。
解決策を教えてください。
本環境では、OpenVPNサーバの機能を有効にし、接続に使用するクライアントソフトウェアもOpenVPNを使用しております。
よろしくお願いします。
-
- Site Admin
- Posts: 2273
- Joined: Sat Mar 09, 2013 5:37 am
Re: SecureNAT機能の、プッシュするルーティングテーブル
https://github.com/SoftEtherVPN/SoftEth ... PN.c#L2432
コードを見ても 64 エントリまでは解釈するようになっているようです。
また、オプション文字列のバッファも 4KB あり、十分のように見えます。
ログを見て、DHCP 応答からオプション文字列が意図したように構築されているか、確認してみてください。
コードを見ても 64 エントリまでは解釈するようになっているようです。
また、オプション文字列のバッファも 4KB あり、十分のように見えます。
ログを見て、DHCP 応答からオプション文字列が意図したように構築されているか、確認してみてください。
-
- Posts: 2
- Joined: Thu May 07, 2020 7:58 am
Re: SecureNAT機能の、プッシュするルーティングテーブル
環境
windows 10, softether公式client
server version: v4.29-9680-rtm
client version: v4.29-9680-rtm
問題
私の環境(Windowsでのみ発生, Macは問題なし)でもルーティングテーブルが10を超えるあたりからDHCPが動作せず、IPとルーティングテーブルの取得に失敗します。
パケットをダンプしてみるとDHCP offerのThe Classless Static Route Option(121)が壊れているように見えます。しかしクライアントは正しいレスポンスを返すので、サーバー側のログでは正しく動作しているように見えます。
備考
dhcpgetで設定を確認してみると、Static Routing Table to Push の欄がIPの途中で途切れるのですが、関係ありますか?
windows 10, softether公式client
server version: v4.29-9680-rtm
client version: v4.29-9680-rtm
問題
私の環境(Windowsでのみ発生, Macは問題なし)でもルーティングテーブルが10を超えるあたりからDHCPが動作せず、IPとルーティングテーブルの取得に失敗します。
パケットをダンプしてみるとDHCP offerのThe Classless Static Route Option(121)が壊れているように見えます。しかしクライアントは正しいレスポンスを返すので、サーバー側のログでは正しく動作しているように見えます。
備考
dhcpgetで設定を確認してみると、Static Routing Table to Push の欄がIPの途中で途切れるのですが、関係ありますか?
-
- Site Admin
- Posts: 2273
- Joined: Sat Mar 09, 2013 5:37 am
Re: SecureNAT機能の、プッシュするルーティングテーブル
気になって調べたところ、この行でDHCPオプションのサイズを誤って8bitにキャストしてしまっているため、255バイトを越える長さのオプションの長さが誤って扱われているのが原因のようです。
この「(UCHAR)」を削除すると動作するようです。
https://github.com/SoftEtherVPN/SoftEth ... Ip.c#L3382
なお、SoftEther VPN の仮想DHCPサーバーは長いDHCPオプションの格納方法としてRFC3396ではなく、Microsoft独自の拡張オプションを採用しているようなので、Windows 以外の OS では、長いDHCPオプションを正しく解釈できないかもしれません。
https://docs.microsoft.com/en-us/opensp ... 672387b7e0
この「(UCHAR)」を削除すると動作するようです。
https://github.com/SoftEtherVPN/SoftEth ... Ip.c#L3382
なお、SoftEther VPN の仮想DHCPサーバーは長いDHCPオプションの格納方法としてRFC3396ではなく、Microsoft独自の拡張オプションを採用しているようなので、Windows 以外の OS では、長いDHCPオプションを正しく解釈できないかもしれません。
https://docs.microsoft.com/en-us/opensp ... 672387b7e0
-
- Posts: 30
- Joined: Thu May 21, 2020 1:39 pm
Re: SecureNAT機能の、プッシュするルーティングテーブル
cedarさん
私の環境(windows)でも、ルーティングテーブルへ32エントリ目を追記したあと再接続をすると、ルーティングテーブルがプッシュされない事象が発生します。
cedarさんが改修くださったソースコードで本事象が解消される認識ですが、改修されたソースコードをPull Requestされるご予定ありますでしょうか。
もしくは既にPull Requestなさっており、修正の反映待ちというステータスでしょうか。
私の環境(windows)でも、ルーティングテーブルへ32エントリ目を追記したあと再接続をすると、ルーティングテーブルがプッシュされない事象が発生します。
cedarさんが改修くださったソースコードで本事象が解消される認識ですが、改修されたソースコードをPull Requestされるご予定ありますでしょうか。
もしくは既にPull Requestなさっており、修正の反映待ちというステータスでしょうか。
-
- Site Admin
- Posts: 2273
- Joined: Sat Mar 09, 2013 5:37 am
Re: SecureNAT機能の、プッシュするルーティングテーブル
すみません。
私は安定版の方の SoftEther VPN のメンテナなので、そちらを修正して確認しておりました。
先進版の方へのPRも後ほど送っておきます。
追記
マージされた模様です。
https://github.com/SoftEtherVPN/SoftEtherVPN/pull/1134
私は安定版の方の SoftEther VPN のメンテナなので、そちらを修正して確認しておりました。
先進版の方へのPRも後ほど送っておきます。
追記
マージされた模様です。
https://github.com/SoftEtherVPN/SoftEtherVPN/pull/1134
-
- Posts: 30
- Joined: Thu May 21, 2020 1:39 pm
Re: SecureNAT機能の、プッシュするルーティングテーブル
cedarさん
ご対応・ご連絡下さり誠にありがとうございます!
先進版へのマージ完了された旨承知いたしました。
ご対応・ご連絡下さり誠にありがとうございます!
先進版へのマージ完了された旨承知いたしました。
-
- Posts: 30
- Joined: Thu May 21, 2020 1:39 pm
Re: SecureNAT機能の、プッシュするルーティングテーブル
お世話になっております。追加での投稿失礼致します。
都合によりcedarさんに改修いただく前のソースコードのまま使用しなければならない環境があり、同じエラー(ルーティングテーブルへ32エントリ目を追記したあと再接続をすると、ルーティングテーブルがプッシュされない)が今後再発する可能性があります。
エラーが発生した場合に検知・対応できるよう監視を実装したく、検知にあたって使用できるトリガーがありましたらご教示いただけないでしょうか。
※ルーティングテーブルがプッシュされなくなった段階で特定のメッセージがログへ出力される場合、特定のメッセージをトリガーとして使用できる想定でおります。
都合によりcedarさんに改修いただく前のソースコードのまま使用しなければならない環境があり、同じエラー(ルーティングテーブルへ32エントリ目を追記したあと再接続をすると、ルーティングテーブルがプッシュされない)が今後再発する可能性があります。
エラーが発生した場合に検知・対応できるよう監視を実装したく、検知にあたって使用できるトリガーがありましたらご教示いただけないでしょうか。
※ルーティングテーブルがプッシュされなくなった段階で特定のメッセージがログへ出力される場合、特定のメッセージをトリガーとして使用できる想定でおります。
-
- Site Admin
- Posts: 2273
- Joined: Sat Mar 09, 2013 5:37 am
Re: SecureNAT機能の、プッシュするルーティングテーブル
DHCPメッセージ生成のバグによる動作の異常なので、異常が発生したことはログには記録されていません。
-
- Posts: 30
- Joined: Thu May 21, 2020 1:39 pm
Re: SecureNAT機能の、プッシュするルーティングテーブル
cedarさん
ご回答誠にありがとうございます!承知致しました。
ご回答誠にありがとうございます!承知致しました。
-
- Posts: 2
- Joined: Thu May 07, 2020 7:58 am
Re: SecureNAT機能の、プッシュするルーティングテーブル
cedarさん
修正ありがとうございます
ご時世的にリモート勤務が多いのでとても助かります
修正ありがとうございます
ご時世的にリモート勤務が多いのでとても助かります