6.4系列のFortiClientを使っていましたが、メーカーのサポート終了が近づいているので7系にバージョンアップしました。設定を行ってエラー無く反映しましたが、SSL-VPN接続すると-20105のエラーで進まない状況となりました。
FortiClientでVPN設定する場合は接続名を31バイト以下とすること。日本語などのマルチバイト文字はUTF-8で管理していると想定するので、3バイトとしてカウントすること。
目次
問題について
経緯
FortiClient 6系を使ってリモートからVPNで接続して、お客様がご利用のネットワークを運用を支援する仕事をしています。FortiClient 6系のサポート終了も近いので、FortiClientを7系にバージョンアップして同じ設定内容を登録しました。
問題の詳細
同じ内容で、エラーもなく登録できましたが、-20105のエラーが出て接続できません。以前のバージョンに戻してVPNを接続すると問題無く接続できます。使っているVPNはSSL-VPNです。
解決策の試行錯誤
類似事象の検索
国内でFortiClient エラー -20105を調べました。
英語サイトのコミュニティ
英語サイトでも20105のエラーコードで調べてみました。記載のあったFortiGate側のログや設定を確認しましたが、有力な情報は見つかりませんでした。
最終解決
継続して調査していたところ、本当に偶然に解決方法が見つかりました。記載内容の趣旨は若干異なりましたが、同じエラーコードでした。可能性を感じて読み進め、試してみたら解決しました!
FortiClient VPNのVPN接続が90%もしくは91%で失敗する(外部リンクになります)
気になるのは、FortiClient 7.2.3でも「接続名」が長過ぎてエラーが出ないです。私の確認方法が問題なのか、設定が異なるのかわかりません。でも長らく発生していた問題が解決したので感謝です。
問題の再現と解決の確認
まずはSSL-VPNが接続できることを確認しました。IPアドレスや名前は検証のために構成したため実在しないものです。
次に接続名を11文字にしてみます。
エラーが出ました。接続名を10文字に戻すと接続できます。設定画面でマルチバイトの文字長の判定ができていないようです。
IPsec-VPNでの接続
IPsec-VPNでも接続名は31文字までに制限されているようにエラーが出ます。マルチバイト文字が含まれると接続名の長さ判定が効かないようで、保存できてしまいます。ただし、エラーが出ず接続できました。
事象はわかりませんが、FortiNetとして接続名は31バイト以下を条件としているため、31文字以下となるよう設定しないと他で不具合に合う可能性が高いです。