Files
digital-garden/dev/network/Domain Name System.md
Struchkov Mark 58127ccecd
All checks were successful
continuous-integration/drone/push Build is passing
Обновление
2025-01-28 20:21:30 +03:00

78 lines
6.0 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
aliases:
- DNS
tags:
- maturity/🌱
date:
- - 2024-01-13
---
## Тезисы
- **DNS (Domain Name System)** — это система, которая преобразует доменные имена в IP-адреса и наоборот.
- DNS — это распределенная база данных, состоящая из множества серверов, которые хранят и предоставляют информацию о доменах.
- Основные компоненты DNS: клиент (resolving), серверы (root, TLD, authoritative), зоны и записи (A, AAAA, CNAME и другие).
- Процесс DNS-запроса включает несколько этапов, начиная от локального кэша до root-серверов и серверов имен.
***
**DNS (Domain Name System)** — это [[../architecture/Распределённая система|распределенная система]], которая позволяет пользователям использовать удобные доменные имена (например, `example.com`) вместо сложных для запоминания [[../../../../knowledge/dev/network/Internet Protocol v4|IP]]-адресов (например, `192.0.2.1`).
По умолчанию DNS сервер работает на 53 порту.
**Компоненты DNS**
- **DNS-клиенты (Resolvers)**
- Это программы или устройства, которые инициализируют DNS-запрос для преобразования доменного имени в IP-адрес.
- Пример: ваш браузер или операционная система.
- **DNS-серверы**:
- **Root-серверы**:
- Основной уровень в иерархии DNS.
- Направляют запросы к серверам TLD (Top-Level Domain).
- Существует 13 логических групп root-серверов (например, `a.root-servers.net`).
- **TLD-серверы**: Обрабатывают запросы для доменов верхнего уровня (например, `.com`, `.org`, `.ru`).
- **Authoritative Name Servers**: Хранят окончательную информацию о домене, включая IP-адреса, записи MX и другие.
- **DNS-зоны**:
- Фрагменты пространства имен, управляемые конкретным сервером.
- Пример: зона для `example.com` может включать записи для `www.example.com` и `mail.example.com`.
- **DNS-записи**:
- **A**: IPv4-адрес.
- **AAAA**: IPv6-адрес.
- **CNAME**: каноническое имя (псевдоним для другого домена).
- **MX**: почтовые серверы для домена.
- **TXT**: текстовые данные, используемые для SPF, DKIM, подтверждения владения.
- **NS**: серверы, обслуживающие зону.
- **PTR**: обратное преобразование IP в доменное имя.
**Как работает DNS?**
1. **Пользователь вводит доменное имя в браузере.**
2. **Клиент (resolver)** проверяет локальный кэш. Если запись найдена, используется она.
3. Если записи нет, запрос отправляется на root-сервер.
4. Root-сервер перенаправляет запрос на сервер TLD (например, `.com`).
5. TLD-сервер перенаправляет запрос на authoritative сервер для конкретного домена.
6. Authoritative сервер возвращает нужную запись (например, IP-адрес).
7. Клиент получает IP-адрес и устанавливает соединение с сервером по этому адресу.
Не рекурсивный поиск
![[../../meta/files/images/Pasted image 20250128133803.png]]
**Проблемы и угрозы DNS**
- **DNS Spoofing (подмена)**: Атака, при которой злоумышленники подменяют ответ DNS-сервера, перенаправляя пользователей на вредоносные сайты.
- **DDoS-атаки на DNS**: Направлены на перегрузку серверов, чтобы сделать их недоступными.
- **Кэш-поизонинг**: Внедрение ложной информации в кэш DNS.
- **Проблемы с конфиденциальностью**: DNS-запросы могут быть видны третьим сторонам, что создает риски слежки.
**Современные улучшения DNS**
- **DNSSEC (DNS Security Extensions)**: Добавляет цифровую подпись для проверки подлинности записей.
- **DoH (DNS over HTTPS)** и **DoT (DNS over TLS)**: Шифруют DNS-запросы, повышая конфиденциальность и защищенность.
- **Anycast**: Используется для распределения запросов на ближайший DNS-сервер, улучшая производительность и устойчивость.
## Заметки
- По умолчанию работает по протоколу [UDP](UDP.md), переходит на [TCP](TCP.md) если размер ответа больше 500 байт.
***
## Мета информация
**Область**:: [[../../meta/zero/00 Сети|00 Сети]]
**Родитель**::
**Источник**::
**Автор**::
**Создана**:: [[2024-01-13]]
### Дополнительные материалы
-
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->