Когато научите как работи DNS и как можете да приложите използването му в реални мрежи, диагностицирането на мрежови проблеми става бриз. Освен това, овладяването на тънкостите на работата с DNS също ще ви даде дълбоко разбиране за това какво се случва зад кулисите на DNS търсене и валидиране.
Този урок ще ви помогне да научите основни DNS концепции, които ще ви помогнат да започнете с DNS конфигурацията. След като прочетете това ръководство, бихте могли да модифицирате DNS във вашата локална система или дори да настроите личен DNS сървър.
Преди да се потопим в това как да настроим DNS сървъри и да разрешим домейни, нека разгледаме някои основни DNS концепции, които ще ви помогнат да разберете какво е DNS и как работи.
Какво е DNS?
DNS или Система за имена на домейни е база данни с интернет адреси, индексирани с имена на домейни. За простота, помислете за DNS като за адресна книга, която препраща уеб трафика от сървър към клиент.
DNS карти разпознава имена на домейни, като например linuxhint.com, до неговия IP адрес като 64.91.238.144 (IPv4) или 0: 0: 0: 0: 0: ffff: 405b: ee90 (IPv6).
Как работи DNS?
Преди да обсъдим как да добавяме и модифицираме DNS записи, нека разгледаме как работи DNS, като започнем с дефинирането на някои основни DNS функции:
1: Имена на домейни
Можем да дефинираме имената на домейни като уникален низ от символи, който идентифицира обект в интернет. Обектът може да представлява уебсайт, IoT интерфейс и т.н.
Най-добрият начин да разберете имената на домейни е като ги прочетете, започвайки отдясно наляво. Цялостната организация на домейна започва отдясно и развива повече специфичност вляво.
Помислете за примерните домейни, показани по-долу:
linuxhint.com
поща.информация.linuxhint.com
В примерите по-горе домейните се разбират най-добре отдясно наляво, като домейнът TLD или Top-Level е .com
Другите термини, които се появяват отляво на TLD, са разделени с точка и се считат за специфични поддомейни.
Например:
В такъв случай, поща.linuxhint.com може да се използва само за обработка на поща за конкретния домейн. Когато се отнася до домейни (основен), той включва поддомейн от първо ниво плюс TLD като linuxhint.com
Докато се движите вляво от TLD, информация, и поща се наричат съответно поддомейни от второ и трето ниво.
В повечето случаи поддомените се използват за идентифициране на конкретни услуги или машини. Собствениците на домейн обаче могат да ги използват по какъвто и да е начин, който преценят.
2: Имен сървъри
Имен сървърите са сървъри, свързани към Интернет и използвани за обработка на запитвания относно местоположението на име на домейн и неговите услуги.
Изборът и настройката на сървъри за имена е важна отговорност да бъдете собственик на домейн. Това е така, защото ако не успеете да настроите сървъри за имена, устройствата, които искат да се свържат с вашия домейн, няма да могат да знаят къде да намерят DNS информацията за вашия домейн, което води до неуспешно разрешаване на DNS домейн.
Сървърите на имена използват текстов файл, наречен файл на зона, за да хостват DNS данни на домейн. Зоновите файлове понякога се наричат Start of Authority Records (SOA). Можете да хоствате DNS информация на сървъри за имена:
- Предоставено от вашия домейн регистратор
- Вашият собствен DNS сървър
- CDN хостинг като Cloudflare и всеки друг хостинг на трети страни
Опции като хостване на вашата DNS информация на вашия собствен DNS сървър осигуряват по-голям контрол върху DNS процеса, отколкото повечето други опции.
3: DNS записи и зонови файлове
Друга важна концепция за управление на DNS е работата с DNS записи. Тези записи помагат да се съпоставят имената на домейни със съответните им IP адреси и се обединяват, за да се създаде файл на зона. Устройствата могат да търсят правилния IP адрес за вашия домейн, като използват файловете на DNS зоната.
Ето пример за файл с DNS зона:
Във всеки файл с DNS зона ще намерите записи по подразбиране като имейл на администратора, DNS записи и сървъри за имена. Вие не сте ограничени до тези записи по подразбиране; имате право да създавате произволен брой DNS записи за всички възможни поддомейни.
4: DNS резолюция
Най-простият начин да разберете как работи DNS е чрез изучаване на DNS резолюция.
Нека поговорим за това:
Името на домейн трябва да бъде преведено от разбираем за човека формат, като linuxhint.com, до IP адрес. Това е така, защото машините разбират само IP адреси, но не и имена на домейни.
Както споменахме, това се случва с помощта на файла с текстова зона, който съхранява списък с домейни и техните IP адреси.
Поради това:
Когато въвеждате име на домейн като linuxhint.com във вашия браузър, вашето свързано с интернет устройство използва вашия ISP DNS преобразувател, за да поиска коренния сървър за имена за правилния TLD сървър на име.
Помислете за това като за вашия компютър, който пита разрешителя, „къде мога да намеря сървъра за имена .com домейни?”
След това коренният сървър на имена отговаря с IP адрес за посочения TLD. DNS преобразувателят използва зоновите файлове от сървъра на имена на домейна, за да прочете кой IP адрес сочи към необходимия домейн.
След като ISP прочете IP адреса на домейна, например linuxhint.com, той отговаря на вашия браузър, позволявайки ви достъп до уеб сървъра.
Добре е да се отбележи, че процесът на разрешаване на DNS се случва само ако DNS преобразувателят на ISP няма запис на заявения домейн. В повечето случаи ISP извършва DNS кеш за предварително заявени домейни, което води до по-бързо DNS търсене и по-малко натоварване на DNS сървърите.
Въпреки че кеширането е нещо добро, понякога може да доведе до проблеми, особено промени в DNS информацията. Можете да използвате TTL или Time to Live, за да видите времето, необходимо за разрешаване на DNS.
Тъй като вече знаете как работи DNS, нека обсъдим видовете DNS записи.
Видове DNS записи
Ето основните типове DNS записи:
A и AAAA Records
Вида DNS Записът е IPv4 DNS запис, използван за насочване към IP адреса на вашия сървър, което позволява на уеб трафика да стигне до вашия сървър.
Ето пример за DNS запис от тип A:
linuxhint.com A 64.91.238.144
поща.linuxhint.com A 64.91.238.144
DNS правилата позволяват насочването на множество поддомейни към различни IP адреси. Можете също да насочите всички поддомейни към един IP адрес. Например. Насочете всички поддомейни за linuxhint.com към единичен IP, като се използва звездичка:
*.linuxhint.com A 64.91.238.144
The АААА тип запис е подобен на запис A, но се използва за IPv6 IP адреси. Типичен AAAA запис може да изглежда подобно на:
linuxhint.com AAAA 0456: 7890: 13ab: cdef: 0145: 5567: 59ab: cdef
Записи AXFR
An AXFR Записът е DNS запис, използван при DNS репликация. Записите AXFR се прилагат главно за подчинени DNS сървъри, където помагат за репликация на зонови файлове от главните DNS сървъри. Рядко ще намерите AXFR записи в файловете на главната зона.
Добре е да се отбележи, че те са по-ефективни и модерни начини за извършване на DNS репликация, различни от използването на записи AXFR.
CNAME Records
A CNAME или Запис на канонично име съвпада с домейн с друг домейн. Записите CNAME позволяват на DNS справките да използват DNS разрешаването на целевия домейн като разделителна способност на псевдоним. Помислете за примера по-долу:
псевдоним адрес.com CNAME linuxhint.com.
linuxhint.com A 64.91.238.144
От записа:
След като DNS търсене за псевдоним адрес.com се изпълнява, процесът среща CNAME запис, който сочи към друг адрес - в този случай linuxhint.com.
Той ще инициира ново DNS търсене за целевия адрес (linuxhint.com), който открива IP адреса на 64.91.238.144, като по този начин насочва трафика към IP адрес 64.91.238.144.
Основната цел на записите CNAME е да позволят на домейните да имат псевдоними.
ЗАБЕЛЕЖКА: Някои пощенски сървъри използват CNAME записи за получаване на поща. Затова е добре да избягвате използването на CNAME записи за домейн, предназначен за получаване на поща.
По същия начин не можете да използвате MX записи за препратка към CNAME дефинирани имена на хостове. Също така е добре да се гарантира, че целевите домейни съдържат резолюция на A-запис.
Въпреки че записите CNAME могат да бъдат ефективен начин за пренасочване на трафик от определен домейн към друг домейн, записът не функционира като HTTP 302 пренасочване.
Записи CAA
CAA записите позволяват на собствениците на домейни да определят кои сертифициращи органи могат да издават сертификати за този конкретен домейн.
DKIM Records
DKIM или Домейн ключове Идентифициран пощенски запис показва публичните ключове, използвани за удостоверяване на съобщения, подписани от протокола DKIM. Той подобрява функционалността на проверката на автентичността на пощата.
Типичен DKIM запис може да изглежда както следва:
селектор1._domainkey.linuxhint.com TXT k = rsa; p = J7eTBu445i045iK
DKIM DNS записите се прилагат като тип запис TXT. Те се създават от поддомейн с уникален селектор за този специфичен ключ, последван от точка, завършваща с _domainkey.домейн.com (linuxhint.com).
От примера по-горе виждаме DKIM записа от тип TXT, стойност, която показва типа ключ (RSA), и накрая, стойността на ключа.
MX Records
Записите на MX или Mail Exchanger помагат да зададете дестинации за доставка на поща за определен домейн или поддомейни.
Ето пример за MX запис:
linuxhint.com MX предпочитание = 5, обменник на поща = ALT1.ASPMX.L.GOOGLE.com
linuxhint.com MX предпочитание = 1, обменник на поща = ASPMX.L.GOOGLE.com
linuxhint.com MX предпочитание = 5, обменник на поща = ALT2.ASPMX.L.GOOGLE.com
linuxhint.com MX предпочитание = 10, пощенски обменник = ALT4.ASPMX.L.GOOGLE.com
linuxhint.com MX предпочитание = 10, пощенски обменник = ALT3.ASPMX.L.GOOGLE.com
Записът в горния пример насочва пощата за домейн (linuxhint.com) към сървъра ALT1.ASPMX.L.GOOGLE.COM
Приоритетът или предпочитанието е ключов компонент на MX записите. Използва се за представяне на записания номер между типа на записа и целевия сървър. Ниските числа се използват за обозначаване на по-висок приоритет.
Например, ако сървър ASPMX.L.GOOGLE.COM не работи, пощата се доставя до ALT1.ASPMX.L.GOOGLE.COM или ALT2.ASPMX.L.GOOGLE.COM
NS Records
NS или Nameserver записите са най-често срещаният тип DNS записи.
Те се използват за задаване на сървърите на имена за домейн или поддомейн. По подразбиране NS записите за домейн се задават както във вашия зонов файл, така и в регистратора на домейна.
Ето пример за NS записи:
linuxhint.com сървър на имена = ns1.течна мрежа.com
linuxhint.com nameserver = ns.течна мрежа.com
Сървърите на имена, зададени в регистратора на домейни, са отговорни за носенето на зоновия файл за домейна.
Можете също да добавите повече от сървъри на имена за вашия домейн и поддомейни. NS записите за поддомейни са конфигурирани във файла на основната зона на домейна.
Основните сървъри на имена са конфигурирани в регистратора на домейни. Сървърите на имена на вторичен домейн се конфигурират в зоновия файл на основния домейн. Поръчката на NS записите няма значение, защото DNS заявките се изпращат в произволен модел до различни сървъри. Това гарантира, че ако единият хост не успее да отговори, другите хостове ще получат запитване.
PTR записи
PTR записите, наричани още записи на указатели, се използват за обратно DNS търсене. Те съответстват основно на IP адрес на домейн или поддомейн. Можете да считате PTR записа за обратен на A или AAAA записите; неговите функции са противоположни на тези на A запис.
Записът ви позволява да търсите домейн, свързан с определен IP адрес. От друга страна, PTR записите ви позволяват да търсите IP адреса, свързан с конкретно име на домейн. Тези записи се задават главно от доставчик на хостинг услуги и не са включени във вашия зонов файл.
Трябва да създадете валиден запис, който насочва домейна към целевия IP адрес, преди да създадете PTR запис. Използвайте запис за IPv4 адрес и AAAA за IPv6 адреси.
DNS правилата ви позволяват да имате различни IP адреси, както IPv4, така и IPv6, сочещи към един и същи домейн, зададен за обратен DNS, чрез конфигуриране на множество A и AAAA записи за конкретен домейн, сочещи към различни IP адреси.
SOA Records
Записите SOA или Start of Authority се използват от DNS за обозначаване на файл на зоната с името на хоста, където е бил създаден първоначално. Той също така показва имейл адреса на лицето, което притежава домейна.
Ето пример за типичен SOA запис:
@ IN SOA ns.течна мрежа.com. администратор.течна мрежа.com. 20200627 14000 14000 1009600
86400
ЗАБЕЛЕЖКА: Административният имейл се изразява с помощта на точка (.), а не символ @.
SOA записите включват следните стойности:
- Сериен номер: Това представлява ревизионният номер на зоновия файл на домейна; стойността се променя, след като файлът бъде преструктуриран.
- Време за опресняване: Представлява общото време, в което вторичният DNS сървър поддържа сървъра, преди да го актуализира до последните промени. Стойността се представя в секунди.
- Време за повторен опит: Представлява времето, в което вторичният DNS сървър изчаква, преди да опита отново за неуспешен трансфер на зонен файл.
- Изтичане на времето: Това показва времето, което сървърът чака преди изтичането и копирането на файл на зона, ако актуализирането на файла не успее.
- Минимално време за живот: Това показва минималното време, в което другите сървъри поддържат кешираната информация на зоновия файл.
Сървърът с имена, посочен в SOA записа, се счита за основен мастер за използване в динамичния DNS. Динамичният DNS е сървърът, където актуализациите на зоновите файлове завършват, преди да бъдат разпространени към други сървъри на имена.
TXT записи
Текстов или TXT запис се използва за предоставяне на информация за определен домейн на други мрежови ресурси. TXT записите са много гъвкав тип записи. Те могат да обслужват широк спектър от операции в зависимост от съдържанието на конкретна текстова стойност.
Една от често използваните записи TXT е създаването на DKIM записи и SPF записи. Ето пример за TXT запис:
linuxhint.com текст =
“Google-site-verify = tf_9zclZLNBJ5M ... XXX ... _0nSA”
SPF Records
Sender Policy Framework записва списъка за пощенските сървъри на определен домейн или поддомейн. SPF записите помагат да се докаже автентичността на пощенския сървър, като сигнализира за опити за подправяне, използвани с помощта на общия метод за фалшифициране на заглавки на имейли за определен домейн, като изглежда, че произхожда от легитимен сървър, като по този начин избягва филтрите.
Ето пример за запис на SPF:
linuxhint.com TXT “v = spf1 a ~ всички”
Препоръчително е да изброите всички сървъри в записа SPF, който използвате за изпращане на поща, и да изключите останалите.
Записът SPF има предимно домейн, тип (TXT или SPF, ако се поддържа) и стойност, започваща с v = spf1, която съдържа настройки за запис на SPF.
За да сте сигурни, че имейлите ви няма да бъдат маркирани като спам, уверете се, че SPF записите не са твърде строги или изключете сървъра, който използвате за изпращане на имейли.
SRV Records
Записите на услуги или SRV помагат да се съпоставят услугите, работещи в даден домейн, с целевите домейни, което ви позволява да насочвате трафика от конкретни услуги към друг.
Ето пример за SRV запис:
_обслужване._протокол.linuxhint.com SRV 10 0 8080
обслужване.linuxhint.com
SRV записите имат следните елементи:
- Обслужване: Това показва името на услугата, което започва с долна черта, името и завършва с точка.
- Протокол: Това е името на протокола. Той също има долна черта в началото на името си и завършва със символ на точка. Пример: _tcp или _udp
- Домейн: Това е името на домейна, което получава първоначалния трафик преди препращане.
- Приоритет: Това задава приоритета за целевия домейн. Имате право да задавате множество цели с различни приоритети, като по този начин ви позволява да имате резервен вариант, ако сървърът се провали.
- Порт: Това е портът, където се изпълнява услугата. TCP или UDP порт.
- Мишена: Отнася се за целевия домейн. Уверете се, че домейнът има запис A, който се преобразува до целевия си IP адрес.
- Целевият домейн или поддомейн: Този домейн трябва да има A или AAAA запис, който се преобразува в IP адрес.
Ръководство за бързо копаене
Използването на инструмент за ръчно запитване е един от най-добрите начини за разбиране и работа с DNS. Нека да разгледаме как да инсталирате и изпълнявате прости DNS заявки с помощта на инструмента Dig.
Можете да използвате допълнителни инструменти като nslookup.
Инсталиране на Dig
Dig е помощна програма за команден ред, използвана за извършване на ръчни DNS заявки и DNS диагностика.
Преди да можем да използваме dig, трябва да го инсталираме. Dig е част от DNS помощните програми в пакета Bind DNS server и можете да инсталирате тези пакети, като използвате диспечера на пакети за вашата дистрибуция.
Debian и Ubuntu
apt-get инсталирайте dnsutils
CentOS
yum инсталирате bind-utils
Използване на Dig
Помислете за следните прости изходни кодове.
От горната заявка dig връща резултат NOERROR и извлича A DNS запис за името на домейн linuxhint.com, който се разрешава до IP адреса на 64.91.238.144.
С помощта на dig можете да видите повече информация, плюс използвания DNS преобразувател (1.1.1.1 - Cloudflare), времето, необходимо на изпълнението на DNS заявка, както и размерът на заявката.
Използвайте dig за извличане на различни типове записи
Можете да използвате dig за извличане на информация за конкретни DNS записи, като посочите типа DNS запис в командата.
Помислете за показания изход по-долу:
Изкопаването е популярен инструмент, който може да бъде много полезен, когато работите с DNS. Можете да научите повече от неговото ръководство или урок.
Заключение
В тази статия научихме какво представлява DNS и как работи. Покрихме важни DNS концепции като имена на домейни, DNS резолюция и записи и как да използваме инструмента Dig за изследване на DNS.
Използвайки това ръководство, трябва да можете да управлявате и конфигурирате основни DNS функционалности.