シナリオ
私は、(例) パブリック IP を持つ Windows 10 Pro N PC 上に小さな Web サイトを持っています。123.456.78
どこからでもその IP を入力すると、Web サイトは正常に開きます。
www.somewebsiteOne.com
今、私は 2 つの異なるドメイン販売者からとという 2 つのドメイン名も購入しました。そしてにwww.somewebsiteTwo.org
転送する DNS サービスに依存しています。ドメイン販売者では に転送できます。私の意図は、DNS サーバーへの依存を、Technitium を使用して自分でホストするオープンソース DNS サーバーに置き換えることです。www.somewebsiteTwo.ddns.net
123.456.78
www.somewebsiteTwo.org
www.somewebsiteTwo.ddns.net
自分の DNS サーバーが動作していることを確認するには、次の手順を実行します。
- 別のネットワーク上の別のコンピューターで PowerShell を開きます。
- 入力: nslookup www.somewebsiteTwo.org 123.456.78
- 実際にIPアドレス123.456.78を返します
問題
ここで、2 つのドメイン販売者のいずれかにその DNS サーバーの IP アドレスを入力しようとすると、次の内容を入力する必要があります。
- ホスト名
- IPアドレス
ホスト名には、( IP アドレスにwww.somewebsiteTwo.ddns.net
転送する DNS サーバー)のようなものを入力できます。2 つのうちの 1 つに電話したところ、個人のパブリック DNS サーバーを検索するには、IP アドレスではなくホスト名が使用され、IP アドレスは使用されないという説明を受けました。www.somewebsiteTwo.org
123.456.78
123.456.78
これは本質的に、私の個人用パブリック DNS サーバーのホスト名を私の DNS サーバーの IP アドレスに転送する DNS サーバーが必要であることを意味します。これは私の意図に反します。したがって、次のようになります。
質問
にある個人のパブリック DNS サーバーを参照する機能するホスト名を特定して使用するにはどうすればよいですか123.456.78
?
試み
- PC のホスト名 (例: コマンドの cmd で返されるもの) を入力しようとしました
hostname
。しかし、それは有効なホスト名とはみなされません。 - 入力しようとしました
123.456.78
が、有効なホスト名とはみなされません。 - 入力しようとしました
http://123.456.78/
が、機能しません。 - 次の理由により、IP アドレスは DNS サーバーを参照するホスト名としては機能しません。
DNS サーバーで使用するホスト名、および DNS (サブ) ドメインを登録して使用する場合に使用するホスト名は、たとえば ns1.example.com や customer-5363.dsl-users.isp.example.net などの有効な完全修飾 DNS ホスト名である必要があります。このプロトコルでは IP アドレスは使用できません。ns1.example.com などの DNS レコードを使用してドメイン example.com を登録する場合は、レジストラが最初に正しいグルー レコードを設定する必要があります。
答え1
2社のうちの1社に電話したところ、私の個人用パブリックDNSサーバーを見つけるのに、IPアドレスではなくホスト名が使用され、IPアドレスは使用されないという説明を受けました。
これは本質的に、私の個人用パブリック DNS サーバーのホスト名を私の DNS サーバーの IP アドレスに転送する DNS サーバーが必要であることを意味します。これでは私の意図に反します。
それは完全に正しいわけではありません。
ドメイン委任に使用されるNSレコードは、のみ生のアドレスではなくホスト名を取得します。
しかし、実際には自分のドメインのホスト名を指定することは許可されており、そのためIPアドレスのフィールドが横にあります。定義するホスト名を同時に使用します。これは、サポート メッセージで言及されている「グルー レコード」のことであり、この種類の「ループ」を可能にします。
(自分の DNS サーバーにもまったく同じホスト名定義を追加する必要があることに注意してください。レジストラのグルー レコードはコピーと見なされ、自分のサーバー上のグルー レコードは正式なバージョンと見なされます。)
たとえば、ネームサーバーを入力するとns1.somewebsite.com
、レジストラは次の DNS レコードを公開します。
somewebsite.com. NS ns1.somewebsite.com.
ネームサーバーのホスト名はホストしているドメインの下にあるため、このままではループが発生して機能しないのは明らかです。また対応するフィールドにサーバーの IP アドレスを入力する必要があり、これによりレジストラは 2 番目の DNS レコード (「グルー」レコード) を公開できるようになります。
somewebsite.com. NS ns1.somewebsite.com.
ns1.somewebsite.com. A 12.34.56.78
リゾルバがドメインのネームサーバーを照会しようとするたびに、グルーレコードからの IP アドレスが常に同じ応答に添付され、ループの問題が回避されます。
答え2
私の質問では、ホスト名は単なる任意の文字セットで、通常はns1
とns2
が続きます<website without the http://www.>
。たとえば、Web サイトの場合は、独自の DNS サーバー設定でswag.org
作成し、レジストラに「ホスト名」を入力できます。通常は 2 つの DNS サーバーが必要なので、別の「ホスト名」を作成し、それを入力します。次に、IP で、DNS サーバーをホストする PC のパブリック IP アドレスを入力します (これは、Technitium/DNS 設定のエントリにも入力しました)。ns1.swag.org
ns1.swag.org
ns2.swag.org
ns1.swag.org
以下に、これをすべて画像付きで実行する方法の例を示します。
独自の DNS サーバーをホストするための検証済み設定:
- つまり、これらの設定を Technitium 設定パネルに配置します ( を、
your ip
Web サイトをホストしているコンピューター/ホスト/デバイスのパブリック IP アドレスに置き換えます。 (A
ns1.<yourwebsite>
` は、人々を Web サイトにリンクするコンピューターに、「このホスト名/Web サイトを探している場合は、この IP を参照してホスト名/Web サイトを見つけることができます」と伝える接着レコードです (ただし、無限ループに入るため、ここで停止して、この IP で Web サイトを見つけたことを伝えます)。)
- 次に、ドメイン レジストラでカスタム DNS レコードを作成します。これは、ドメイン販売者ごとに異なります。これは、namecheap の例です。簡単に言うと、DNS サーバーのホスト名を入力します (
ns1.<yourwebsite adres>
technitium を入力した場合は、それとコンピューターのパブリック IP アドレスを入力します)。
- 次のように検索することで、DNSサーバー/IPへのグルーレコードが正しく入力されているかどうかを確認できます。
ns1
またはns2
(次のように入力した場合ns1.<yourwebsite>
)
- ウェブサイトの設定で独自のカスタム DNS も選択することを忘れないでください。そうしないと、ローカル DNS サーバーですべてを正しく構成し、レジストラにカスタム DNS で自分の DNS サーバーについてはこの IP を参照するように指示したことになりますが、結局、レジストラは独自のデフォルト DNS サーバーを参照します (IP が見つからない場合は料金を支払う必要があります)。
ノート
- これらの設定ではまだ が許可されていません
https://www.yourwebsite.something
。そのためには SSL 証明書が必要です。これは openssl で無料で取得できます。また、Technitium は確かに https をサポートしています。ただし、私はまだそれを実装していません。 - より詳細で詳しい手順については、以下を参照してください。https://github.com/at-0/DnsServer他の誰かが作成したオープンソース DNS サーバー Technitium と一緒に、私はそれをフォークして手順を追加しました。