Armadilloフォーラム

openVPNの設定方法について

wit_akaiwa

2024年9月13日 18時52分

A6E Cat.M1モデル+Di8+Ai4でリモートメンテナンス用にopenVPNを使用したいのですが、上手く行きません。

具体的にはABOS WebからethernetでopenVPNの設定を行った後に、一旦VPNの接続を切断し、
SIMの通信に切り替えて再度VPNの接続をしたいのですが、SIMに切り替えるとopenVPNの設定が未設定になってしまいます。

これは正しい動きなのでしょうか?

また、SIMが低速のため、SIMの通信ではopenVPNの設定が出来ないので、このような操作を
しているのですが、他に何か良い方法があればご教授いただけないでしょうか?

コメント

佐藤です。

申し訳ありません。
こちら abos-web の不具合となります。
今月末のアップデートで修正予定ですが、
ひとまず、お手元で以下の修正をしていただくと未設定に戻ることはなくなるかと思います。
vi で "/usr/libexec/abos-web/vpn_setup.sh" を開き、最後の行の1つ前の行に(★)を追加してください。

armadillo:~# vi /usr/libexec/abos-web/vpn_setup.sh
(省略)
persist_file -r "$CONF_DIR"
persist_file "$CONTAINER_CONF_FILE"
persist_file "$DNS_FILE"
trap - ERR # <- ★この行を追加
"$(dirname "$0")/podman.sh" logs_follow "$CONTAINER_NAME"

保存したら永続化します。

armadillo:~# persist_file /usr/libexec/abos-web/vpn_setup.sh

これで再度試してみていただけますでしょうか。

ありがとうございます。
vpn_setup.shを修正する事でSIMに切り替えてVPN接続する事が出来ました。

上手くいったと思ったのですが、時間経過?でping 8.8.8.8で疎通が出来なくなるようです。
時間経過だったり、再起動だったり、トリガが良く分からないのですが、疎通が出来なくなる時は
/var/log/messages に「user.err aardvark-dns[0]: 44535 dns request got empty response」と出ています。

設定~疎通NGまでの/var/log/messagesを送るので、原因と対策についてアドバイスいただけないでしょうか。

以下、設定手順です。
前提条件として、有線のみでping 8.8.8.8に疎通が取れる状態でLTEとVPNは未設定です。

1)VPNの設定
2)ping 8.8.8.8とVPNの疎通確認
3)VPN切断
4)有線のデフォルトゲートウェイとDNSの設定を空欄にして保存
5)wwanの設定
6)ping 8.8.8.8確認
7)VPN接続
8)ping 8.8.8.8とVPNの疎通確認

ファイル ファイルの説明
messages.txt

佐藤です。

以下を試してみるとどうでしょうか。
・5)で wwan の設定をしたあとに ABOS Web の「各接続設定」画面へ行く
・そこでwwanの接続(おそらく名前はgsm-ttyCommModemになってると思います)を選択して、「接続を編集」ボタンをクリックする
・そこで「IPv4 ルーティングメトリック (ipv4.route-metric)」の値を50にして「保存」する

その後 6)以降の手順を行うとどうなりますでしょうか。

> 佐藤です。
>
> 以下を試してみるとどうでしょうか。
> ・5)で wwan の設定をしたあとに ABOS Web の「各接続設定」画面へ行く
> ・そこでwwanの接続(おそらく名前はgsm-ttyCommModemになってると思います)を選択して、「接続を編集」ボタンをクリックする
> ・そこで「IPv4 ルーティングメトリック (ipv4.route-metric)」の値を50にして「保存」する
>
> その後 6)以降の手順を行うとどうなりますでしょうか。

↓以下のエラーが出て設定出来ません。

設定できませんでした。

Command ["nmcli.sh", "modify", "f86e7154-6738-4678-8925-ecaff6c1a939", "ipv4.route-metric", "50"] failed with exit status: 4:
stderr:
Error: Connection activation failed: Unknown error

stdout:

佐藤です。

ありがとうございます。
いくつか確認させてください。
・ABOSのバージョンを現在の最新であるv3.20.2-at.2にしてもエラーがでますでしょうか
・何度やってもエラーがでますでしょうか
・エラー発生時の /var/log/messages ファイルはいただけますでしょうか。

> 佐藤です。
>
> ありがとうございます。
> いくつか確認させてください。
> ・ABOSのバージョンを現在の最新であるv3.20.2-at.2にしてもエラーがでますでしょうか
→バージョンアップの影響範囲を理解出来ていないので後日確認します。

> ・何度やってもエラーがでますでしょうか
→1回上手くいきましたが、その後2、3回続けてダメでした。

> ・エラー発生時の /var/log/messages ファイルはいただけますでしょうか。
→16時近辺だと思いますが、これでわかりそうでしょうか?

ファイル ファイルの説明
messages_02.txt

1時間ほど放置していたらwwanに接続していました。
pingを8.8.8.8とVPN対向先に投げましたが、返ってきません。

routeは画像のような状態でした。
defaultが2つになっているのが問題のように思います。
おそらくtun0のdefaultがいらないのですが、これが追加されるのは
openVPNのサーバの問題でしょうか?
サーバにはsoftetherを使っています。

ファイル ファイルの説明
route.png

佐藤です。

> routeは画像のような状態でした。
> defaultが2つになっているのが問題のように思います。
> おそらくtun0のdefaultがいらないのですが、これが追加されるのは
> openVPNのサーバの問題でしょうか?

いいえ、route に関してはこれで正常です。
openvpn の route は default でも、0.0.0.0/1 と 128.0.0.0/1 に分かれてますので「more specific」のルールで優先されています(metric関係なく)。
これで openvpn を停止すると本来のネットワーク接続が残りますのであえてそうしています。

> →16時近辺だと思いますが、これでわかりそうでしょうか?

abos-web 設定した時のエラーは、モデムが正常に接続できてなかったためのようです。
vpn での接続ができない点も含めて、LTE の電波状況が不安定なのが原因ではないかと考えます。

以下のメッセージは LTE 接続(remote IP 取得侍)と切断(terminating)のメッセージです:

Sep 18 15:45:03 armadillo daemon.notice pppd[10146]: remote IP address 192.168.50.1
Sep 18 15:47:39 armadillo daemon.info pppd[10146]: Terminating on signal 15
Sep 18 15:51:09 armadillo daemon.notice pppd[18450]: remote IP address 192.168.50.1
Sep 18 15:55:26 armadillo daemon.info pppd[18450]: Terminating on signal 15
Sep 18 16:02:47 armadillo daemon.notice pppd[602]: remote IP address 192.168.50.1
Sep 18 16:07:03 armadillo daemon.info pppd[602]: Terminating on signal 15
Sep 18 16:22:23 armadillo daemon.notice pppd[10262]: remote IP address 192.168.50.1
Sep 18 16:23:04 armadillo daemon.info pppd[10262]: Terminating on signal 15
Sep 18 16:26:43 armadillo daemon.notice pppd[16734]: remote IP address 192.168.50.1
Sep 18 16:27:29 armadillo daemon.info pppd[16734]: Terminating on signal 15
Sep 18 16:33:38 armadillo daemon.notice pppd[25893]: remote IP address 192.168.50.1
Sep 18 17:32:53 armadillo daemon.info pppd[25893]: Terminating on signal 15
Sep 18 17:33:12 armadillo daemon.notice pppd[2566]: remote IP address 192.168.50.1
Sep 18 17:49:39 armadillo daemon.info pppd[2566]: Terminating on signal 15
Sep 18 17:50:41 armadillo daemon.notice pppd[24644]: remote IP address 192.168.50.1

armadillo上で "mmcli -m 0" を実行した時に表示される signal quality はいくつになっていますでしょうか。

またそれに加えて、vpn がうまく復帰できてない可能性もありますので、
armadillo上で "podman logs abos_web_openvpn" を実行した時の出力もいただけますでしょうか。

signal qualityは64% (cached)です。

"podman logs abos_web_openvpn" を実行した時の出力は添付ファイルを参照下さい。

ファイル ファイルの説明
openvpn.txt

> signal qualityは64% (cached)です。
>
> "podman logs abos_web_openvpn" を実行した時の出力は添付ファイルを参照下さい。

ありがとうございます。
再現がこちらではしないので、効果があるのかテストしていただきたいのですが
armadillo上のファイル/etc/atmark/containers/abos_web_openvpn.conf
の最後の行

set_command openvpn --config VPNサーバーのアドレス等.... 

の--configの前に  --ping-restart 10 を追加して次の手順で保存、再起動してみていただけますか?

set_command openvpn --ping-restart 10 --config VPNサーバーのアドレス等....

persist_fileで永続化

# persist_file /etc/atmark/containers/abos_web_openvpn.conf

以降、再起動した後は、LTE回線が疎通しない状態から復旧した場合にopenvpnのセッションが再度作られない状態が10秒継続するとopenvpnクライアントが再度認証を試行します。(10秒の値は回線の安定性によりますが、短くしすぎると、レイテンシが大きいだけで再認証が走って効率がわるくなるため、運用に合わせて増減してください。根本的な改善には、電波状況の良い場所に設置するほうが望ましいです)

--ping-restart 60 で試しましたが駄目そうです。
"podman logs abos_web_openvpn" を実行した時の出力を添付します。

根本的な改善は電波状況の見直しとの事ですが、そんなに電波は悪いでしょうか?
RSSIにして-80dBmぐらいですよね?
他の機器だと-60dBmの場所で作業しているので、そもそも何故RSSIが他の機器より悪いのかは疑問です。

VPNに接続するとping 8.8.8.8が通らなくなるので、ルーティングの問題かと思いましたが・・・。

とりあえずOSアップデートしてみます。

ファイル ファイルの説明
openvpn_02.txt