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

# 初投稿なので自己紹介
どうもこんにちは。私はuuといいます!
自宅でサーバー運営したりしてる学生です!
よろしくお願いいたします。
## ことの経緯
あー業務用ルーターほしい....せや!RTX1200買お!
ってことで、ヤフオクで買いましたRTX1200
移行作業もできてcloudflare Tunnelsでサイト公開しようとしたら
```INF Using Systemd
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のステータスを確認してエラーの概要を把握することにしました
下のコマンドでわかります
```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
```

:::note warn
先ほどののコマンドは`cloudflared.service`に関連する最新のログエントリーを追加の説明と共に表示します。このコマンドは`cloudflared.service`が起動してからのすべてのログを見るコマンドです
by chatGPT
※自分がこう認識してるだけで、少し違うかもしれません。chatGPTのメッセージから理解したことを書いています。
:::
コマンドを実行したらこう出てきた
```
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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3795539/44916a97-75bc-c78f-744b-4c87c517eb51.png)
そしたらこの記事が参考になった
[ヤマハルータのDNSの設定見直しの勧め](https://note.com/sasakipochi/n/n27467541412c)
この記事によると
```
ヤマハのルータは、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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3795539/890d8dad-1755-9891-90db-f1b492d342cb.png)
### DNS設定して固定してる人は?
192.168.100(RTX1200のIP)をDNSサーバーとして設定してる人が多いと思うが
DHCPと同じく1.1.1.1と1.0.0.1にすればok
ubuntuでのやり方は

```
sudo vim /etc/resolv.conf
```
```/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サーバー設定にしたい!という場合は

:::note warn
RTX1200のipは192.168.100.1とします。
:::
DHCP
```
dhcp scope option 1 dns=1.1.1.1,1.0.0.1,192.168.100.1
```
```/etc/resolv.conf
# --- BEGIN PVE ---
search local
# --- END PVE ---
nameserver 1.1.1.1
nameserver 1.0.0.1
nameserver 192.168.100.1
```
こうすればよい