レ点腫瘍学ノート

Top / 日記 / 2021年 / 11月10日

Synology NASのDSM 7.0でOpenVPNが繋がらなくなった問題

SynologyのNASのDSMを7.0にアップデートしたらVPNが繋がらなくなった問題

自宅でSynology NASを使っています。そしてSynologyのアプリでVPN serverを立てて、外出先からファイルにアクセスする場合はVPNで自宅に接続していました。それがDSM 6からDSM 7.0にアップデートしたらどういうわけか自宅のネットワークにアクセスできなくなり復旧に苦労しました。このページはその記録です。

環境

ルータはOpenVPNに必要なポートを開いています。OpenVPNのポートは標準では1194ですが、IPV6 IPoEの場合はプロバイダ側から割り当てられた範囲のポートしか開放できないので、その範囲内のポートを開いています。ちなみに、L2TP/IPsecやPPTPはポート番号が選べないのでIPV6 IPoEで使用するのは大変です。

NEC Aterm WG1200HP4の設定画面から「ポートマッピング設定」を選択し、NATエントリに下記のような設定をしています。ここでは例としてルータのLAN内IPアドレスが192.168.0.XXXであり51194ポートを開放する場合を記載します。

優先度LAN側ホストプロトコル変換対象ポート宛先ポート
1192.168.0.XXXUDP511941194
2192.168.0.XXXTCP511941194

DSM 6時代はSynology DSMからVPN serverを開いてOpenVPNで問題なく接続できていました。しかし、DSM 7.0にアップデートすると突然VPNでLAN内ネットワークに接続ができなくなってしまいました。正確には、VPN接続自体は確立できるので接続自体はできているのですが、LAN内のファイルフォルダにもアクセスできないし自分用に立てている自宅内pukiwikiにもアクセスできません。

試してみたが無駄だったこと

Synology NASのファイアウォールを一時的にオフにしてみたり、ルータで51194以外のポートを試しに開けてみたりしても繋がりません(つまりファイアウォールをオフにしたり、51194以外のポートを開放する必要は全くありません)。Synology NASのファイアウォールは、NASを直接インターネットに接続しない限りは、LAN内ではファイアウォールは初期設定のままで問題ないと思います。redirect-gateway def1をコメントアウトしたり元に戻したり(つまり全通信をVPN経由にしたり)、dhcp-option DNS 192.168.0.XXXをオフにしたりオンにしたり、圧縮をオンにしたりオフにしたり、暗号化形式を変えてみたりしたのは、結局全て無駄でした。

UDPをTCPにしたら繋がった

色々試してみても繋がらなかったので、UDPをTCPにしたら接続が安定したという記事を見てついにVPNの接続方式もTCPに変更してみました。UDPがTCPに変わるとOpenVPN設定ファイル(ovpnファイル)も再度エクスポートしてOpenVPNアプリにインポートし直す必要があります。うーむ、つまりDSM 6のときはUDPで接続できていたのにDSM 7.0になることでなぜかUDPでは(VPN接続自体は確立できるが)ファイルアクセスなどは不安定になってしまっていたと・・・。

UDPでもMssfixオプション値を下げると繋がった

しかし犯人がUDPだとわかっても、なぜ今までUDPで問題なくLAN内ファイルサーバーなどにアクセスできていたのに急にそれが不安定になったのかよくわかりません。VPNの通信速度自体はTCPよりもUDPのほうが速いという話も聞くと、UDPを諦めてしまうのももったいないような気もします(そんな速度差がわかるような作業はしないのですが)。OpenVPNのチューニングに関するブログを見ながらUDPの中で設定を色々といじってみると、Mssfix値を変えることで通信が安定することがわかりました。

Linux OpenVPN 高速化チューニング - わすれないうちにメモしよう
OpenVPNで通信速度に影響する下記設定について検証。 ・udp or tcp ・comp-lzo の有無 ・tcp-nodelay の有無(tcpのみ) ・mssfix、fragment のチューニング mssfix … カプセル化されるTCPパケットのサイズ制限(デフォルト値:1450) fragment UDPで接続するときのカプセル化されるパケットのサイズ制限 tun-mtu … tunデバイスを使用する場合のMTUサイズの制限(デフォルト値:1500) ※tun-mtuも変更可能だが、1500以下にすると「mssfix、fragmentを指定する場合はtun-mtuは1500にしろ…
https://kt-hiro.hatenablog.com/entry/20171227/1514329162

これまでUDPではMssfix値は1450に設定されていました(DSM 6の頃とDSM 7.0になってからで値が変わったのかどうかわかりませんが、今までこの項目を触った記憶はありません)。しかし、これが高いとUDP通信が不安定となるようです。ちなみにMssfix値はUDPのみに影響し、TCPには関与しません。

試しに最初は1350に下げてみましたところUDPでも接続しNASファイルサーバーのファイルをダウンロードできるようになったので、少しずつMssfix値を上げてゆき、最終的には1400にしても十分通じました。

回線種別による違いも?

モバイル回線によっても挙動が異なるようです。これは後からわかったことですが、 au(povo)回線のiPhoneとUQ mobile回線のiPadならほぼ同じ挙動をするだろうと思っていましたが、au回線のiPhoneは安定しているのに対してUQ mobile回線のiPadのほうはVPN接続は繋がらないわけではないものの著しく不安定です。これについては最後までiPadのほうはTCPでしか接続できず、UDPでの接続についての解決方法はわかりませんでした。

IPV6でも同様

VPN接続にもIPV4とIPV6があります。通常はIPV4で接続している人が多いと思いますが、今回ついでにIPV6でも試してみました。

設定ファイル(ovpnファイル)内のproto udpをproto udp6とすればIPV6でのVPN通信を明示的に指定できます。これでもMssfix値が1400であれば接続が安定していました。状況によってはIPV6のほうがかなり接続速度が上がるようです。ただし、今回VPN接続を受ける側のsynology NASだけでなく、そこへ接続する外出先の端末と回線もIPV6に対応している必要があります。

まとめ

今回は原因がはっきりわかるまで時間がかなりかかってしまいましたが、それまで繋がっていたOpenVPNが何かの理由で繋がらなくなった場合は、UDPのMssfix値を少し下げてみるか、それでも不可なら思い切ってTCPに変更してみるというのも一つの方法だと思いました。

Amazon | 【Amazon.co.jp限定】ロジクール ワイヤレスマウス トラックボール 無線 M575S Bluetooth Unifying 5ボタン トラックボールマウス ワイヤレス マウス windows mac iPad 電池寿命最大24ケ月 M575 ブラック 国内正規品 | Logicool(ロジクール) | 家電&カメラ
【Amazon.co.jp限定】ロジクール ワイヤレスマウス トラックボール 無線 M575S Bluetooth Unifying 5ボタン トラックボールマウス ワイヤレス マウス windows mac iPad 電池寿命最大24ケ月 M575 ブラック 国内正規品が家電&カメラストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。アマゾン配送商品は、通常配送無料(一部除く)。
https://amzn.to/3F046BR

この記事に対するコメント

このページには、まだコメントはありません。

お名前:

更新日:2021-11-10 閲覧数:2644 views.