Руководство по IP-геолокации и DNS-запросам: полный путь диагностики от домена до расположения сервера

Веб/SEO

Принципы IP-геолокации

IP-локализация — это не GPS — она основана на базах данных распределения IP-адресов, точность зависит от качества базы данных.

Уровень точности Диапазон Источник данных
Уровень страны Страна Записи распределения WHOIS
Уровень города Город/регион Отчёты ISP + магистральная маршрутизация
Уровень района 10-50 км Коммерческие базы данных (MaxMind)
Уровень улицы 1-5 км Привязка по WiFi/сотовым сетям

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


Использование ToolsKu для запроса IP-информации

DNS-запрос

  1. Откройте Инструмент DNS-запроса
  2. Введите домен (напр., example.com)
  3. Выберите тип записи (A/AAAA/CNAME/MX/TXT/NS)
  4. Нажмите запрос, просмотрите результаты

Запрос Whois

  1. Откройте Инструмент запроса Whois
  2. Введите домен
  3. Просмотрите регистрационную информацию (регистратор, дата регистрации, дата истечения, регистрант)

Типы DNS-записей подробно

Тип Название Назначение Пример
A Адресная запись Домен → IPv4 example.com → 93.184.216.34
AAAA IPv6-адрес Домен → IPv6 example.com → 2606:2800:220:1:...
CNAME Запись псевдонима Домен → другой домен www.example.com → example.com
MX Обмен почтой Почтовый сервер example.com → mail.example.com (приоритет 10)
TXT Текстовая запись SPF/DKIM/верификация "v=spf1 include:_spf.google.com"
NS Сервер имён Сервер имён домена example.com → ns1.example.com
SOA Начало полномочий Информация управления зоной Основной NS + email администратора + серийный номер
SRV Сервисная запись Обнаружение сервисов _http._tcp.example.com → target:port
CAA Авторизация сертификатов Ограничение выдачи сертификатов 0 issue "letsencrypt.org"

Типичные сценарии DNS-запросов

Узнать IP сайта

# Командная строка
dig example.com A
nslookup example.com

# Результат
example.com.    3600    IN    A    93.184.216.34

Узнать почтовый сервер

dig example.com MX

# Результат
example.com.    3600    IN    MX    10 mail.example.com.
example.com.    3600    IN    MX    20 mail2.example.com.

Узнать SPF-запись (антиспам)

dig example.com TXT

# Результат
example.com.    3600    IN    TXT    "v=spf1 include:_spf.google.com ~all"

Процесс разрешения DNS

Пользователь вводит example.com
  ↓
1. DNS-кэш браузера → Найдено? Вернуть
  ↓
2. DNS-кэш ОС → Найдено? Вернуть
  ↓
3. DNS-кэш маршрутизатора → Найдено? Вернуть
  ↓
4. Рекурсивный резолвер ISP → Найдено? Вернуть
  ↓
5. Корневой сервер (.) → Возвращает NS .com
  ↓
6. TLD-сервер .com → Возвращает NS example.com
  ↓
7. Авторитетный сервер example.com → Возвращает A-запись
  ↓
Результат: 93.184.216.34

Время кэширования DNS (TTL)

dig example.com

# ANSWER SECTION:
example.com.    3600    IN    A    93.184.216.34
#               ↑ TTL (секунды) = 1 час
Значение TTL Применимый сценарий
300 (5 минут) Частые изменения (CDN, blue-green развёртывание)
3600 (1 час) Обычные веб-сайты
86400 (1 день) Стабильные сервисы (почта, NS)

Интерпретация информации Whois

Ключевые поля результата запроса

Domain Name: EXAMPLE.COM
Registrar: Google Domains LLC
Registrar URL: https://domains.google
Creation Date: 1995-08-14
Expiration Date: 2028-08-13
Name Server: NS1.GOOGLE.COM
Name Server: NS2.GOOGLE.COM
Registrant Organization: Example Inc.
DNSSEC: unsigned
Поле Значение Назначение
Registrar Регистратор Точка управления доменом
Creation Date Дата регистрации Определить возраст домена
Expiration Date Дата истечения Предотвратить истечение домена
Name Server DNS-сервер Точка разрешения домена
Registrant Регистрант Информация о принадлежности (может быть скрыта)
DNSSEC Расширение безопасности DNS Верификация DNS-ответов

Защита конфиденциальности

# Без защиты конфиденциальности
Registrant Name: John Doe
Registrant Email: john@example.com

# С защитой конфиденциальности
Registrant Name: REDACTED FOR PRIVACY
Registrant Email: Please contact registrar

Диагностика сети на практике

Сценарий 1: Сайт не открывается

1. DNS-запрос → Можно ли разрешить домен?
   ❌ Невозможно разрешить → Ошибка конфигурации DNS или домен истёк
   ✅ Можно разрешить → Продолжить

2. Ping IP → Доступен ли сервер?
   ❌ Тайм-аут → Сервер не работает или файрвол
   ✅ Доступен → Продолжить

3. curl -I → Код ответа HTTP?
   301/302 → Проблема перенаправления
   403 → Проблема прав доступа
   500 → Ошибка сервера
   200 → Возможная проблема фронтенда

Сценарий 2: Ошибка отправки почты

1. Запрос MX-записи → Правильно ли настроен почтовый сервер?
2. Запрос SPF-записи → Находится ли отправляющий сервер в белом списке SPF?
3. Запрос DKIM-записи → Правильна ли подпись?
4. Запрос DMARC-записи → Правильна ли почтовая политика?
# Единый запрос почтовых записей
dig example.com MX
dig example.com TXT  # SPF + DKIM + DMARC находятся в TXT

Сценарий 3: Проверка конфигурации CDN

1. Запрос CNAME → Указывает ли домен на CDN?
   www.example.com → cdn.example.com.cdn77.org

2. Запрос A-записи → IP edge-узла CDN
3. DNS-запрос из нескольких мест → Проверка ближайшего разрешения CDN

Использование JavaScript для DNS-запросов

На стороне браузера (DoH)

// DNS over HTTPS (Cloudflare)
async function dnsLookup(domain, type = 'A') {
  const url = `https://cloudflare-dns.com/dns-query?name=${domain}&type=${type}`;
  const response = await fetch(url, {
    headers: { 'Accept': 'application/dns-json' },
  });
  const data = await response.json();
  return data.Answer;
}

// Использование
const records = await dnsLookup('example.com', 'A');
// [{ name: "example.com", type: 1, TTL: 3600, data: "93.184.216.34" }]

На стороне Node.js

import { resolve } from 'node:dns/promises';

// Запрос A-записи
const addresses = await resolve('example.com', 'A');
// ["93.184.216.34"]

// Запрос MX-записи
const mxRecords = await resolve('example.com', 'MX');
// [{ exchange: "mail.example.com", priority: 10 }]

// Запрос всех записей
const anyRecords = await resolve('example.com', 'ANY');

Частые вопросы

Сколько времени занимает вступление в силу изменения DNS?

Зависит от TTL. Если старый TTL был 3600 секунд, в худшем случае потребуется 1 час. Перед изменением DNS сначала снизьте TTL до 300 секунд, дождитесь истечения старого TTL и затем вносите изменения.

Почему результаты DNS отличаются в разных местах?

CDN и Anycast возвращают разные IP в зависимости от местоположения пользователя. Это нормальное поведение, а не проблема DNS.

Для чего нужен DNSSEC?

DNSSEC проверяет подлинность DNS-ответов с помощью цифровых подписей, предотвращая атаки перехвата DNS. Если проверка DNSSEC не проходит, браузер отклонит подключение.


Итоги

IP-локализация и DNS-запросы — фундаментальные навыки диагностики сети. Освоив типы DNS-записей, процесс разрешения и интерпретацию информации Whois, вы сможете быстро определять проблемы веб-сайтов. ToolsKu предоставляет DNS-запрос и Запрос Whois как онлайн-инструменты — без установки инструментов командной строки, диагностика сети прямо в браузере.

#IP定位#DNS查询#Whois#网络工具#教程