Невидимата магия на DNS: Как браузърът ти намира пътя си в мрежата
Невидимото изкуство на DNS: Как браузърът ти намира пътя
Когато отваряш сайт, браузърът ти прави нещо невероятно. Преобразува домейна, който разбираш – като example.com – в IP адрес. Намери сървъра на другия край на света и те свързва за миг. Това е DNS – Domain Name System. Повечето хора не подозират колко е умен.
DNS се ражда през 1983 г. Тогава интернетът е на модеми, уебът – още не съществува. Пол Мокапетрис го създава бърз, мащабен и устойчив. Четири десетилетия по-късно все още работи перфектно. Ето защо.
Бързината: UDP вместо TCP
Първата хитрост е проста: DNS използва UDP по подразбиране, не TCP.
TCP иска тристепенно ръкостискане – път и назад, преди да изпратиш запитването. Ако всяко DNS търсене чака това, интернетът спира. Единствено браузърът прави десетки lookups на страница. Представи си хаоса.
UDP е директен. Клиентът изстрелва пакет на порт 53 с въпроса. Сървърът отвръща с един пакет. Край. Без ръкостискане, без преговори.
Минусът? UDP пакетите могат да се загубят. DNS решава с таймаут: не получиш отговор – попитай отново. Над 99% от запитванията стават в един 512-байтов пакет, загубите са редки.
Ако отговорът е голям – например с DNSSEC – сървърът слага TC бит (Truncated). Клиентът тогава минава на TCP за сигурен трансфер. Две нива: бързина първо, сигурност после.
Делегирането: Обърнато дърво
Тайната на мащаба е ясна: няма база данни с всички домейни на планетата.
DNS е обърнато дърво, чете се отдясно наляво. За www.example.com. започваш от корена (този скрит точка в края) и слизаш надолу:
Root сървърите са входът. Тринадесет логически (A до M), но с Anycast – хиляди копия по света. Твоят запитване отива на най-близкия. Те не знаят твоя домейн, но сочат към .com, .org, .bg и т.н.
TLD сървърите (Top-Level Domain) ги управляват регистри. Verisign – .com, други – .info или държавни. Те казват NS сървърите за example.com.
Authoritative nameservers са на дъното. Хостнати от регистратора ти или DNS доставчик като Cloudflare, Route 53, NameOcean. Те държат zone файла – A, AAAA, CNAME, MX записи. Отговорът им има aa бит: "Аз съм авторитетът. Това е истината."
Има капан: ако NS е ns1.example.com, как намериш IP му преди example.com? TLD помага с glue records – дават IP на NS с делегирането. Без тях – срив.
Кеширане: Суперсилата на мрежата
Без кеширане DNS би рухнал. Ако всяко търсене минава цялото дърво – root, TLD, authoritative – интернетът умира.
Кеширането е навсякъде, с TTL (Time-to-Live) в секунди. Обещание: "Това важи X секунди. Не питай преди тях."
- В браузъра – Chrome го виждаш в chrome://net-internals/#dns.
- В ОС – systemd-resolved на Linux, mDNSResponder на macOS, DNS Client на Windows.
- В recursive resolver – 8.8.8.8 на Google, 1.1.1.1 на Cloudflare, ISP пулове. Един cache miss става хит за милиони.
Затова TTL е ключов при миграции. Преместваш сайта? Намали TTL предварително – от 24 часа на 5 минути. Иначе старият IP ще дърпа трафик ден целия.
Anycast: Магьосниците на маршрутизацията
Как 8.8.8.8 отговаря за 2 ms от Токио и Лондон? Anycast.
Обикновено IP сочи един сървър. Anycast позволява стотици сървъри да обявяват един IP чрез BGP. Рутерът ти изпраща към най-близкия датацентър.
Затова Cloudflare дава DNS с ниска латентност навсякъде. DDoS атаки се разсейват по хилядите точки. Чиста магия.
Всичко заедно
DNS е шедьовър на разпределените системи. Бърз с UDP. Мащабен с дървото. Устойчив с кеши. Близък с Anycast.
Създаден 1983 г. за първичен интернет. Днес носи трилиони lookups дневно. Това са вечни принципи.
С NameOcean или голям DNS, тези основи променят домейн мениджмъنت, миграции и оптимизация. DNS не е тръба – това е кръвната система на мрежата.