Примечания

Примечания

Сценарий

У меня есть небольшой веб-сайт на ПК с Windows 10 Pro N с (например) публичным IP-адресом: 123.456.78 если я ввожу этот IP-адрес откуда угодно, веб-сайт открывается нормально.

Теперь я также купил 2 доменных имени, например, www.somewebsiteOne.comи www.somewebsiteTwo.orgу 2 разных продавцов доменов. И зависим от службы DNS, которая перенаправляет www.somewebsiteTwo.ddns.netна 123.456.78. В продавцах доменов я могу затем перенаправить www.somewebsiteTwo.orgна www.somewebsiteTwo.ddns.net. Мое намерение состоит в том, чтобы заменить зависимость от DNS-сервера моим собственным DNS-сервером с открытым исходным кодом, использующим Technitium.

Чтобы проверить работу моего DNS-сервера, я:

  1. Откройте PowerShell на другом компьютере в другой сети.
  2. введите: nslookup www.somewebsiteTwo.org 123.456.78
  3. Что действительно возвращает IP-адрес 123.456.78

Проблема

Теперь, если я попытаюсь ввести IP-адрес этого DNS-сервера в любом из двух продавцов доменов, мне потребуется ввести:

  • Имя хоста
  • IP адрес

Где для имени хоста я могу ввести что-то вроде www.somewebsiteTwo.ddns.net(что является DNS-сервером, который перенаправляет www.somewebsiteTwo.orgна 123.456.78 IP-адрес и для него) 123.456.78. После звонка в один из двух отделов мне объяснили, что они используют имя хоста, а не IP-адрес, чтобы найти мой личный публичный DNS-сервер, а не IP-адрес.

По сути это означает, что мне нужен DNS-сервер для пересылки некоторого имени хоста для моего личного публичного DNS-сервера на IP-адрес моего DNS-сервера. Что противоречит моим намерениям. Поэтому у меня есть следующее:

Вопрос

Как я могу определить и использовать работающее имя хоста, которое ссылается на мой личный публичный DNS-сервер по адресу 123.456.78?

Попытки

  • Я попытался ввести имя хоста моего ПК, например то, что возвращается в cmd при команде hostname. Но это не считается допустимым именем хоста.
  • Я попытался ввести имя 123.456.78, но оно не считается допустимым именем хоста.
  • Я пытался войти http://123.456.78/, но ничего не вышло.
  • IP-адреса не работают в качестве имени хоста, ссылающегося на DNS-сервер, потому что:

Имя хоста, используемое для DNS-сервера, а также при регистрации и использовании DNS (под-)домена, должно быть действительным полностью определенным именем хоста DNS, например, ns1.example.com. или customer-5363.dsl-users.isp.example.net. Протокол не допускает IP-адрес. Если вы хотите использовать запись DNS, например, ns1.example.com, для регистрации домена example.com, вашему регистратору сначала необходимо настроить правильную связующую запись.

решение1

После звонка в один из этих двух отделов мне объяснили, что для поиска моего личного публичного DNS-сервера они используют имя хоста, а не IP-адрес, а не IP-адрес.

По сути это означает, что мне нужен DNS-сервер для пересылки некоторого имени хоста для моего личного публичного DNS-сервера на IP-адрес моего DNS-сервера. Что противоречит моим намерениям.

Это не совсем верно.

Верно, что записи NS, используемые для делегирования доменов,толькобрать имена хостов, а не сырые адреса.

Однако на самом деле вам разрешено указать имя хоста, которое находится в вашем собственном домене, и именно поэтому рядом есть поля IP-адреса: они позволяют вамопределятьимя хоста и использовать его одновременно. Это то, о чем на самом деле говорится в сообщении поддержки, когда они упоминают «склеивающие записи», которые допускают такой «цикл».

(Обратите внимание, что вам также необходимо добавить точно такие же определения имен хостов на свой собственный DNS-сервер — связующие записи у регистратора считаются копией, а те, что находятся на вашем сервере, — официальной версией.)


Например, когда вы вводите сервер имен ns1.somewebsite.com, регистратор публикует следующую запись DNS:

somewebsite.com. NS ns1.somewebsite.com.

Поскольку имя хоста сервера имен находится в домене, который он размещает, это явно не будет работать как есть, поскольку это создаст цикл. Поэтому вытакженеобходимо ввести IP-адрес сервера в соответствующее поле, и это позволит регистратору опубликовать вторую DNS-запись («связующую» запись):

somewebsite.com. NS ns1.somewebsite.com.
ns1.somewebsite.com. A 12.34.56.78

Всякий раз, когда резолвер пытается запросить серверы имен для вашего домена, их IP-адреса из связующих записей всегда будут прикреплены к одному и тому же ответу, что позволяет избежать проблемы зацикливания.

решение2

В моем вопросе имя хоста было просто произвольным набором символов, обычно ns1и ns2за которым следовал, <website without the http://www.> например, если ваш веб-сайт swag.orgвы можете создать ns1.swag.orgв своих собственных настройках сервера DNS, а затем ввести «имя хоста» ns1.swag.orgв вашем регистраторе. Вам (обычно) нужно 2 сервера DNS, поэтому вы создаете еще одно «имя хоста» с ns2.swag.orgи также вводите его. Затем в поле IP вы просто вводите публичный IP-адрес вашего ПК, на котором размещен сервер DNS (который вы также ввели при ns1.swag.orgвходе в настройки Technitium/DNS.

Ниже приведен пример того, как все это сделать с помощью изображений.

Проверенные настройки для размещения собственного DNS-сервера:

  1. Короче говоря, вы вводите эти настройки в панель настроек Technitium (замените ` your ipна публичный IP-адрес вашего компьютера/хоста/устройства, на котором вы размещаете свой веб-сайт). ( A ns1.<yourwebsite>` - это связующая запись, которая сообщает компьютеру, который связывает людей с вашим веб-сайтом, «когда вы ищете это имя хоста/веб-сайт, вы можете посмотреть этот IP-адрес, чтобы найти имя хоста/веб-сайт». (Но тогда это попадет в бесконечный цикл, поэтому вы говорите ему: «ОК, остановитесь здесь, вы нашли веб-сайт по этому IP-адресу».)

Настройки DNS на вашем ПК на хосте Technitium.

  1. Затем создайте пользовательскую запись DNS в вашем регистраторе домена, это делается по-разному для каждого продавца домена. Это пример для namecheap. Короче говоря, вам нужно ввести имя хоста вашего сервера DNS (если вы ввели ns1.<yourwebsite adres>technitium, введите его вместе с публичным IP-адресом вашего компьютера).

Ввод вашего DNS-сервера в регистраторе

  1. Вы можете проверить запись DNS-сервера/связующего IP-адреса, чтобы убедиться, что он введен правильно, выполнив поиск: ns1или ns2(если вы ввели ns1.<yourwebsite>:

Проверьте правильность ввода DNS-сервера(ов)

  1. Не забудьте также выбрать свой собственный пользовательский DNS в настройках сайта, в противном случае вы все правильно настроили на своем локальном DNS-сервере и сказали регистратору: «Эй, пользовательский DNS, посмотри на этот IP-адрес моего собственного DNS-сервера», но в итоге регистратор все равно будет искать на своем собственном DNS-сервере по умолчанию (где он не найдет ваш IP-адрес, за это нужно платить).

Выберите ваш персональный/пользовательский DNS-сервер в настройках вашего регистратора.

Примечания

  1. Эти настройки пока не позволяют https://www.yourwebsite.something. Для этого вам нужен сертификат ssl, вы можете получить его бесплатно на openssl, а Technitium действительно поддерживает https. Однако я пока не реализовал это.
  2. Более подробный и развернутый набор инструкций можно найти по адресу:https://github.com/at-0/DnsServerвместе с открытым исходным кодом DNS-сервера Technitium, созданного кем-то другим, я просто сделал его ответвление и добавил инструкции.

Связанный контент