Създаване на собствени неймсървъри с glue dns запис

Помощен център

Създаване на собствени неймсървъри с glue dns запис

Почти сигурно всеки потребител, който по една или друга причина се интересува от темата за ДНС, е срещал термина glue запис във връзка с възможността да регистрира неймсървъри, използвайки собствени поддомейни вместо неймсървърите на хостинг компанията.

Какво представлява glue записa и защо е нужен?

Ще си помогнем с един елементарен пример. В зоновия файл на домейна example.com като първичен (primary или master) неймсървър е посочен поддомейна ns1.example.com в SOA записа:

$ORIGIN example.com. 
@        .  IN      SOA   ns1.example.com. hostmaster.example.com. ( 
                                2018012704 ; serial
                                10800       ; refresh (3 hours)
                                3600        ; retry (1 hour)
                                1814400    ; expire (3 weeks)
                                3600        ; minimum (1 hour)
                                )
; main domain name servers 
              IN      NS     ns1.example.com. 
              IN      NS     ns2.example.com. 

Когато потребител реши да зареди сайта example.com и въведе URL адреса в браузер, ДНС резолвера стартира серия от протоколни запитвания за да открие IP адреса на example.com.

Първо изпраща рекурсивно запитване към root сървърите и някой от тях връща IP адреса на TLD неймсървъра, който отговаря за .com зоната.

Запитването се изпраща към TLD (.com) неймсървъра, който знае хост името на първичния неймсървър ns1.example.com (тъй като го е получил от домейн регистрара), но не знае IP адреса тъй като няма А запис за него в зоната на домейна example.com.

Отговора, преведен на разбираем език, е нещо като: относно example.com питай ns1.example.com.

По този начин заявката влиза в безкраен неразрешим цикъл :

  • за да открием IP адреса на example.com трябва да открием IP адреса на ns1.example.com.
  • за да открием IP адреса на ns1.example.com трябва да открием IP адреса на ns1.example.com.

Точно тук на помощ ни идва glue записа.

Glue записa e A запис за неймсървърите в зоната на домейна - това са записите в ADDITIONAL SECTION:

$ dig @ns1.example.com example.com

;; AUTHORITY SECTION:
example.com.         172800  IN      NS      ns1.example.com.
example.com.         172800  IN      NS      ns2.example.com.

;; ADDITIONAL SECTION:
ns1.example.com.     172800  IN      A       1.2.3.4
ns2.example.com.     172800  IN      A       5.6.7.8

Концептуално това е доста странно 'изобретение'. Ние питаме TLD неймсървърите на .com зоната за IP адреса на example.com. Като отговор получаваме не само името на авторитетния (първичния) неймсървър, но и неговия IP адрес. Все едно зоната на example.com се обслужва от TLD (.com) неймсървъра.

Създаването на собствени неймсървъри (ще ги срещнете и под много други имена: персонални, лични, child , private, additional ...) е технически възможна практика, която обаче се счита за лоша практика и не се препоръча.

Както видяхте по-горе тя е в логическо противоречие с ДНС концепцията за автономност на неймсървърите. Важно е да се отблежи, че подобна техника, позната като DNS кеш инжекция или кеш отравяне е използвана в атаката на Кашпуреф през 1997г. [1].

Дори и да спести няколко милисекунди, създаването на собствени неймсървъри много трудно ще попадне в списъка с причини за повишаване на производителността и бързината (performance boosters) на един уеб сайт.

Създаване на собствени неймсървъри

Сега ще ви покажем как може да създадете child name server към вашето домейн име, които да използвате на вашата собствена сървърна машина или професионална услуга от ICN.BG.

За да функционира коректно един child name server на неговия IP адрес трябва да има конфигуриран DNS сървър и да има A запис (glue запис) за всеки child name server към IP адреса на сървъра, който хоства сайта.

За да извършите необходимите промени влезте в потребителския си акаунт като следвате стъпките, описани в статията Достъп до контролен панел в ICN.Bg.

Отворете главното меню от иконата Табло в горния ляв ъгъл, кликнете линка Домейн, в таблицата с домейни кликнете името на домейна, чиито неймсървъри желаете да редактирате.

Кликнете линка УПРАВЛЯВАЙ в долния десен ъгъл, в новия прозорец въведете двата child name servers и кликнете бутона ЗАПАЗИ:

child dns

Този запис само ще регистрира новите неймсървъри в базата данни на регистрара на домейна, който от своя страна ще актуализира записите в TLD неймсървъра.

Остава да създадете следните DNS записи в зоновия файл на домейна:

1. NS записи за домейна към новите child name servers:

demo-icn.com.  172800  IN  NS  ns1.demo-icn.com.
demo-icn.com.  172800  IN  NS  ns2.demo-icn.com.

2. Двата glue записа за новите неймсървъри към IP адреса на сървъра:

ns1.demo-icn.com.  172800  IN  A  1.2.3.4
ns2.demo-icn.com.  172800  IN  A  5.6.7.8

[1] https://www.cnet.com/news/kashpureff-to-face-federal-charges/