私は友達のためにNextCloudや他のサービスを含むDockerコンテナを実行するブラックボックスNASを構築しています。ブラックボックスが意味するのは、設定が不要な方法で設定する必要があることです。ルーターに接続するだけで機能します。
すべてのリクエストをリバースプロキシにリダイレクトし、内部的に正しいサービスにリクエストをリダイレクトするワイルドカードドメインにdnsmasqを設定したいと思います。ただし、これはDNSが自分自身を指す必要があることを意味します。これは、システムがDHCPを介してルーターからIPを取得するために問題になります。
住所=/mydomain.com/<host_ip>
現在私の唯一のアイデアは、ネットワークがオンラインである間にsystemdサービスを実行し、ホストの現在のIPでconfファイルを更新することです。しかし、これはハッキングされているようです。 dnsmasq自体を使用して自動化する方法はありますか?
答え1
(私の答えは一般的なSOHO環境を反映しています)
クライアント側で最小限の構成(ルーターも含む場合)がなければ、これを行うことはできません。これは、クライアントシステムからの要求をNextCloudなどのサービスが実行される正しいIPアドレスに直接送信する必要があるためです。
友達のDHCPサービスには、デフォルトでISPの再帰DNSサーバーの1つに対応する1つ以上のDNSサーバーエントリが既に存在するため、このメカニズムを上書きする必要があります。
ゼロタッチ構成でこのサービスを実装したいようですが、ローカルDNSサーバーを使用している場合は、少なくともルーターのDHCP設定で参照される静的IPアドレスを設定する必要があります。
次のいずれかを実行することをお勧めします。
-ローカル再帰DNSサーバーの実行、mydomain.comゾーンを追加し、リバースプロキシIPアドレスを指すAレコードを設定し、ルーターでこのDNSサーバーを設定します。 (この場合、クライアント側の小さな設定でDNS設定を完全に制御できますが、Web関連のDNSクエリにも応答する必要があるため、より多くの作業と責任が必要です。
-クライアントコンピュータでホストファイルを変更します。ここでは、各サブドメインの宛先IPアドレス(リバースプロキシのIP)を含むエントリを追加できます。 (小規模な環境ではこのアプローチをお勧めします。)
FTPからホストファイルをインポートする起動スクリプトを実行してドメインマッピングを更新するときに集中型ソリューションを得ることで、このアプローチをよりエレガントにすることができます。 )スクリプトは各クライアントデバイスに配置する必要があります。これはモバイルデバイスでは面倒です。
ご覧のとおり、正しい解決策を見つけるには、責任とクライアント構成の両方を考慮する必要がありますが、どちらもクライアント構成を0%含まれていません。