🐡

cloudflare TunnelsがRTX1200だと使えないときの対処法

2024/05/28に公開

初投稿なので自己紹介

どうもこんにちは。私はuuといいます!
自宅でサーバー運営したりしてる学生です!
よろしくお願いいたします。

ことの経緯

あー業務用ルーターほしい....せや!RTX1200買お!
ってことで、ヤフオクで買いましたRTX1200
移行作業もできてcloudflare Tunnelsでサイト公開しようとしたら

systemctl [start cloudflared.service] returned with error code exit status 1 due to: Job for cloudflared.service failed because the control process exited with error code.
See "systemctl status cloudflared.service" and "journalctl -xeu cloudflared.service" for details.

ええ何このエラー...

環境

proxmox仮想環境
ubuntu22.04LTS

原因究明

まず、cloudflared.serviceのステータスを確認してエラーの概要を把握することにしました
下のコマンドでわかります

status cloudflared.service

そしたら

May 28 00:32:58 CT106 systemd[1]: cloudflared.service: Main process exited, code=exited, status=1/FAILURE
May 28 00:32:58 CT106 systemd[1]: cloudflared.service: Failed with result 'exit-code'.
May 28 00:32:58 CT106 systemd[1]: Failed to start cloudflared.

CloudflaredTunnels(cloudflared)サービスが起動に失敗し、code=exited, status=1/FAILURE というエラーが表示されているっぽい

もうすこしエラーメッセージの詳細を確認する

journalctl -xeu cloudflared.service

そしたらこう出てきた

-- Subject: Unit process exited
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- An ExecStart= process belonging to unit cloudflared.service has exited.
-- 
-- The process' exit code is 'exited' and its exit status is 1.
May 28 00:33:50 CT106 systemd[1]: cloudflared.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- The unit cloudflared.service has entered the 'failed' state with result 'exit-code'.
May 28 00:33:50 CT106 systemd[1]: Failed to start cloudflared.
-- Subject: A start job for unit cloudflared.service has failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- A start job for unit cloudflared.service has finished with a failure.
-- 
-- The job identifier is 14578 and the job result is failed.

うーんわかんない....

すべてのログを見てみる

journalctl -u cloudflared.service -b

コマンドを実行したらこう出てきた

May 28 00:10:47 CT106 systemd[1]: Starting cloudflared...
May 28 00:10:47 CT106 cloudflared[770]: 2024-05-28T00:10:47Z INF Starting tunnel tunnelID=c1b2c957-77c8-408c-83c3-7>
May 28 00:10:47 CT106 cloudflared[770]: 2024-05-28T00:10:47Z INF Version 2024.5.0
....(省略)
May 28 00:10:47 CT106 cloudflared[770]: 2024-05-28T00:10:47Z INF Tunnel server stopped
May 28 00:10:47 CT106 cloudflared[770]: 2024-05-28T00:10:47Z ERR Initiating shutdown error="Couldn't resolve SRV re>
May 28 00:10:47 CT106 cloudflared[770]: 2024-05-28T00:10:47Z INF Metrics server stopped
May 28 00:10:47 CT106 cloudflared[770]: Couldn't resolve SRV record &{region1.v2.argotunnel.com. 7844 1 1}: lookup >
May 28 00:10:47 CT106 systemd[1]: cloudflared.service: Main process exited, code=exited, status=1/FAILURE

ログメッセージによると、cloudflaredが起動に失敗する原因は Couldn't resolve SRV record というエラーっぽい。
cloudflaredが特定のDNSレコードを解決できなかったとのこと

RTX1200の設定からなんとかできないだろうか

ちゃんと設定してたのになぜだろうと思って調べてみた
image.png
そしたらこの記事が参考になった
ヤマハルータのDNSの設定見直しの勧め
この記事によると

ヤマハのルータは、DNS問い合わせを中継する、DNSリカーシブサーバという機能を持っていて、
普通に設定するとユーザーはDNSリカーシブサーバを利用することになる。
ほとんどのケースでは、それほど問題にはならないけど、
最近はこの機能では名前解決できないケースも増えてきている。
# なぜ最近問題になってきてるのか
ヤマハのDNSリカーシブサーバ機能は、TCPによる名前解決をサポートしていない。
通常はDNSによる名前解決はUDPを使うのでそんなに問題にはならないんだけど、最近ではTCPによる名前解決が増えている。
なのでうまく繋がらなかったり名前解決に時間がかかるケースが増えてきている。

とのこと。
じゃあどうすればいいのかというと、DHCPのDNSをクラウドフレアのDNSなどだけに固定すればよい

dhcp scope option 1 dns=1.1.1.1,1.0.0.1

これをここで入力すればok
image.png

DNS設定して固定してる人は?

192.168.100(RTX1200のIP)をDNSサーバーとして設定してる人が多いと思うが
DHCPと同じく1.1.1.1と1.0.0.1にすればok
ubuntuでのやり方は

sudo vim /etc/resolv.conf
# --- BEGIN PVE ---
search local
# --- END PVE ---
nameserver 1.1.1.1
nameserver 1.0.0.1

これでcloudflare起動してみたら無事起動した!

RTX1200に対しておもったこと

ホームゲートウェイよりネット速度も速くなっており、まあまあ優秀だと思いました。
具体的には200mbpsぐらいから500mbpsになりました。
(ファームウェアアップデートしないと遅いのでそこは注意)
※私の回線は1Gbpsです

最後に

皆さんもRTX1200などを取り入れてDNSには気を付けながら逸般の御家庭になりましょう!
(私はまだ一般だと思いますが..())

追記

RTX1200も事情でDNSサーバー設定にしたい!という場合は

DHCP

dhcp scope option 1 dns=1.1.1.1,1.0.0.1,192.168.100.1
# --- BEGIN PVE ---
search local
# --- END PVE ---
nameserver 1.1.1.1
nameserver 1.0.0.1
nameserver 192.168.100.1

こうすればよい

Discussion