Кто на чём шлёт и принимает почту: измеряем email-инфраструктуру 660 тысяч доменов из Tranco top-1M

Страницы:  1

Ответить
 

Professor Seleznov


Анализ DNS-снэпшота OpenINTEL за 2026-01-01
TL;DR.Используя ежедневные DNS-снэпшоты OpenINTEL поверх списка Tranco top-1M, мы собрали ландшафт email-инфраструктуры публичного веба на 1 января 2026 года. MX-записи опубликовали 660 114 доменов, SPF — 616 352, DMARC — 431 133. Дуополия Google Workspace (21.7%) + Microsoft 365 (16.3%) занимает суммарно ~38% receiving-стороны — заметно меньше, чем принято считать в популярных обзорах. На outbound-стороне Amazon SES вышел вперёд по числу авторизованных доменов (5.86%), обогнав SendGrid (4.66%). DMARC опубликован у двух третей SPF-доменов, но 19% всех DMARC-записей — это пустая v=DMARC1; p=none; без отчётов: формальная галочка, а не защита.
Зачем это нужно
Email — старейший протокол интернета, который при этом остаётся главным каналом B2B-коммуникации и одним из основных векторов фишинга. Парадокс в том, что сама экосистема — кто хостит входящую почту, кто шлёт исходящую от чужих доменов, как настроена аутентификация — почти не описана в публичной аналитике. Большинство вендорских отчётов либо платные, либо завязаны на собственную клиентскую базу, что создаёт системный bias.
Существующие источники, которые я знаю:
  • Valimail Email Fraud Landscape — выходит ежегодно с 2017 года, анализирует только DMARC, фокусируется на отдельных индустриях (Fortune 500, US Gov, healthcare). Данные строятся на собственных DMARC-репортах клиентов плюс публичных DNS-запросах.
  • Академические работы по OpenINTEL — есть отдельные исследования по DMARC, DKIM, BIMI. Срезы делаются один раз под публикацию, не обновляются.
  • BuiltWith, Datanyze — коммерческие сервисы технографики. Данные есть, но не реплицируемы и не для исследований.
Чего не было: открытого ежедневного среза одновременно по четырём измерениям (MX, SPF, DMARC, SaaS-отправители) на масштабе всего Tranco top-1M, с прозрачной методологией и feedback loop для уточнения классификаторов.
Этот пробел я и пытался закрыть. Ниже — методология, текущие цифры и честный список ограничений.
Данные и метод
Источник: OpenINTEL + Tranco
Базовый датасет — ежедневный forward-DNS-снэпшот проекта OpenINTEL (University of Twente / SURFnet / SIDN Labs). OpenINTEL с 2015 года ежедневно опрашивает крупные публичные списки доменов по широкому набору RR-типов (MX, TXT, NS, A, AAAA, SOA, CAA, DS/DNSKEY) и публикует результаты в Apache Parquet.
Метод детально описан в van Rijswijk-Deij et al., IEEE JSAC 2016 — это та же инфраструктура, на которой делалось большинство академических работ по DNS за последние 10 лет.
Список доменов — Tranco, научно-обоснованная замена устаревших Alexa/Cisco Umbrella. Tranco агрегирует несколько источников ranking-а доменов и устойчив к манипуляциям (Le Pochat et al., NDSS 2019). OpenINTEL ежедневно проходит весь top-1M.
Снэпшот за 2026-01-01: после фильтрации служебных записей и нормализации остаётся 660 114 доменов с валидным MX, 616 352 с TXT-записью SPF (v=spf1) и 431 133 с TXT-записью DMARC (v=DMARC1).
Что классифицируем
Mailbox provider (receiving-сторона): для каждого домена берём RRset MX, выбираем запись с наименьшим mx_preference (основной хост), и сопоставляем её с открытым словарём правил mx_providers.py. Логика — сначала специфичные паттерны:
RULES = [
    (r"\.mail\.protection\.outlook\.com$", "Microsoft 365"),
    (r"aspmx.*\.googlemail\.com$|aspmx\.l\.google\.com$", "Google Workspace"),
    (r"mx\d?\.yandex\.net$", "Yandex 360"),
    (r"\.mimecast\.com$", "Mimecast"),
    # ... ~80 правил для названных провайдеров
    # Затем generic fallback'и:
    (r"^mail\.", "Generic / unmatched (mail.*)"),
    (r"^mx\d*\.", "Generic / unmatched (mx*.*)"),
    (r"^smtp\.", "Generic / unmatched (smtp.*)"),
]
Если ни одно правило не сработало — домен попадает в "Unknown / Other", и его MX-таргет логируется в файл топ-100 неклассифицированных хостов для дальнейшего расширения словаря. Принципиальный момент: домены не выбрасываются. Любая отчётность сходится: сумма по провайдерам = общему числу доменов с MX.
ESP (sending-сторона): для каждой SPF-записи извлекаем все include: и redirect= таргеты, резолвим против словаря esps.py (Amazon SES, SendGrid, Mailgun, Mailchimp, Brevo, Mailjet, Salesforce, etc.). Один домен может авторизовать несколько ESP, поэтому суммарная доля по ESP превышает 100% SPF-доменов.
SaaS senders: тот же механизм, но против отдельного словаря saas_senders.py — это бизнес-приложения, которые шлют почту от лица клиента (Shopify, Atlassian, Pardot, KnowBe4, Trustpilot, NetSuite). Концептуально — третий слой email-стека: не где лежит ящик, не чем рассылка, а какие SaaS подписали ваш домен в свой Return-Path.
DMARC: парсим TXT-запись _dmarc. на теги p=, sp=, pct=, rua=, ruf=. Домен считается enforced, если p ∈ {quarantine, reject} и (pct=100 или pct отсутствует — по RFC 7489 §6.6.4 дефолт 100).
Что не делается (важно для честности)
  • CNAME-цепочки на MX не разворачиваются.Если домен имеет MX mail.example.com, который CNAME'ом ведёт на example-com.mail.protection.outlook.com — он попадёт в "Unknown / Other", хотя по факту это Microsoft 365. Поправка на эту погрешность — отдельная задача и пока не реализована.
  • SPF flattening(когда include: цепочка заменена сырыми IP-сетями ради лимита 10 lookup'ов из RFC 7208 §4.6.4) скрывает реального ESP. Все измерения долей ESP систематически занижены на этот фактор. Оценка масштаба: по выборочным проверкам — 5–15% доменов с явно flattened SPF.
  • DKIM не измеряется.Чтобы прочитать DKIM-ключ, нужно знать селектор (selector1._domainkey.example.com) — а селекторы выбираются произвольно. Без активной разведки выявить DKIM нельзя, и OpenINTEL это не запрашивает.
  • Vanity domainsдля security/ESP-вендоров (когда клиент Mimecast/Proofpoint использует свой брендовый MX-хост, заворачивающий трафик внутрь вендора) с DNS не определяются.
Ландшафт receiving: куда приходит почта top-1M
Распределение по основному MX (доля от 660 114 доменов с MX):
# Mailbox provider Domains Share
1 Unknown / Other 171 044 25.91%
2 Google Workspace 143 171 21.69%
3 Microsoft 365 107 277 16.25%
4 Generic / unmatched (mail.*) 91 739 13.90%
5 Generic / unmatched (mx*.*) 59 783 9.06%
6 Yandex 360 12 587 1.91%
7 Mimecast 9 850 1.49%
8 Generic / unmatched (smtp.*) 7 649 1.16%
9 Zoho Mail 6 800 1.03%
10 Amazon WorkMail 4 707 0.71%

Пара наблюдений, которые расходятся с типичной публицистикой:
1. "Дуополия Google + Microsoft" — миф в чистом виде.Их совместная доля — 37.94%. Доминирующая, но далеко не подавляющая. Длинный хвост из размещённых на собственных серверах, у регистраторов, в небольших SaaS-провайдерах — это половина рынка (Unknown 25.91% + три generic-сегмента 24.12% = 50.03%).
2. Generic-сегменты ≠ "самохост".Хост вида mail.example.com — это типичный паттерн для cPanel/DirectAdmin shared hosting (Hostinger, GoDaddy, OVH и десятки региональных хостингов). По топ-100 неклассифицированных MX-таргетов видно, что лидируют именно регистраторы:
# MX target Domains
1 route1.mx.cloudflare.net 7 728
2 route2.mx.cloudflare.net 7 727
3 route3.mx.cloudflare.net 7 726
4 eforward5.registrar-servers.com 6 930
5 mx1.hostinger.com 5 110
6 smtp.secureserver.net (GoDaddy) 5 078
7 mx3-hosting.jellyfish.systems 2 212
8 mx1.privateemail.com (Namecheap) 1 658

Cloudflare Email Routing с 23 тыс. доменов в одной только этой выборке — отдельный любопытный сюжет. Это бесплатный сервис forwarding'а, у него нет полноценного inbox'а, но как первичный MX он используется массово.
3. Yandex 360 — 1.91%.Это сильно занижено относительно реальной доли в RU-сегменте. Tranco смещён к US/EU и глобальным SaaS, ru-домены с низкой международной видимостью в нём недопредставлены. Любой вывод по российскому рынку из этого датасета будет неверным — нужен отдельный срез по ccTLD .ru или другой источник списка.
Sending: чем шлют outbound
Доля от 616 352 SPF-публикующих доменов. Сумма >100% — у одного домена обычно несколько ESP (например, маркетинг через Mailchimp + транзакции через SendGrid):
# ESP Domains Share
1 Amazon SES 36 148 5.86%
2 SendGrid (Twilio) 28 695 4.66%
3 Mailgun 25 066 4.07%
4 Zendesk 24 053 3.90%
5 Mailchimp 23 606 3.83%
6 Mandrill 22 008 3.57%
7 Salesforce 15 426 2.50%
8 Mailjet (Sinch) 12 720 2.06%
9 Brevo (ex-Sendinblue) 6 892 1.12%
10 Elastic Email 4 399 0.71%

Несколько важных оговорок к этой таблице:
Доля по доменам ≠ доля по объёму писем.Amazon SES — лидер по числу авторизованных доменов, но реальная доля от мирового объёма email'а у него скорее ниже, чем у SendGrid: SES часто используют как дешёвый IaaS-уровень, на котором сидят небольшие проекты, а крупные рассылки идут через специализированные платформы. DNS-метрика этого не различает.
Mandrill = транзакционный продукт Mailchimp.Если их объединить, доля семейства Intuit MailChimp выходит на 7.40% — формально первое место. По доменам люди обычно держат Mandrill в SPF на старых проектах и забывают убрать после миграции, поэтому реальная активность ниже.
Zendesk на 4-м месте — это support-почта (support@yourcompany.com, обслуживаемая через Zendesk). Не маркетинг и не транзакционка, а отдельная категория, которую часто упускают в обзорах.
Salesforce 2.5% — это _spf.salesforce.com. Если добавить отдельный Pardot (Salesforce) из таблицы SaaS-отправителей (5191 домен, 0.84%), реальная доля экосистемы Salesforce заметно выше.
Самое важное: все эти цифры — нижняя граница. SPF flattening, который применяется примерно у 5–15% крупных корпоративных доменов (точная оценка — будущая работа), маскирует реального ESP. Если завтра все одновременно расфлатят SPF, доли Mailgun/SES/SendGrid вырастут на единицы процентных пунктов.
Длинный хвост: SaaS-отправители
Отдельный слой — бизнес-приложения, которые шлют почту от лица клиента:
# SaaS app Domains Share
1 Shopify 5 446 0.88%
2 Pardot (Salesforce) 5 191 0.84%
3 KnowBe4 3 309 0.54%
4 Trustpilot 1 966 0.32%
5 Atlassian (Jira/Confluence) 1 864 0.30%
6 Firebase (Google) 1 614 0.26%
7 Lark / Feishu 1 181 0.19%
8 BigCommerce 1 157 0.19%
9 NetSuite (Oracle) 1 139 0.18%
10 Qualtrics 1 104 0.18%

Что тут любопытно:
KnowBe4 на 3-м месте (3309 доменов). KnowBe4 — это security-awareness training: симулированные фишинговые письма для обучения сотрудников. Чтобы система могла отправлять эти "симулированные атаки" с домена клиента не попадая в спам, клиент добавляет KnowBe4 в SPF. Цифра 3309 = это число организаций, которые на момент снэпшота активно платят KnowBe4 за такие тренировки (с поправкой на flattened SPF). Прокси-метрика рынка security-awareness, который иначе очень сложно мерить.
Lark / Feishu (китайский Slack от ByteDance) — 1181 домен в Tranco. Видно западную экспансию платформы.
Shopify первый — что закономерно: каждый магазин на Shopify добавляет _spf.shopify.com в SPF своего домена, чтобы транзакционные письма не попадали в спам. 5446 — нижняя граница числа Shopify-магазинов, у которых свой домен попадает в Tranco-1M.
DMARC: декларация vs реальность
Из 616 352 доменов с SPF — 431 133 (69.95%) опубликовали валидный DMARC. На первый взгляд — отличный показатель. Но дьявол, как обычно, в pct=.
Топ-11 наиболее частых верватим-DMARC-записей в датасете:
# DMARC record Domains
1 v=DMARC1; p=none; 50 658
2 v=DMARC1; p=none 32 837
3 v=DMARC1; p=none; rua=mailto:rua@dmarc.brevo.com 7 172
4 v=DMARC1; p=quarantine; 4 365
5 v=DMARC1;p=none; 3 974
6 v=DMARC1; p=quarantine 3 636
7 v=DMARC1; p=reject; fo=1; rua=…@emaildefense.proofpoint.com; ruf=…@emaildefense.proofpoint.com 3 333
8 v=DMARC1; p=reject; 3 319
9 v=DMARC1; p=quarantine; adkim=s; aspf=s 2 978
10 v=DMARC1; p=reject 2 753
11 v=DMARC1; p=none; sp=none; rua=mailto:dmarc@mailinblue.com!10m; … 2 353

Складываем всё с p=none без rua= (записи #1, #2, #5 — это голая декларация без отчётов): 87 469 доменов, 20.3% всех DMARC-записей. Это DMARC compliance theater — формально домен "имеет DMARC", по факту не настроен ни мониторинг, ни enforcement. Зачастую это автогенерация мастером настройки у регистратора: "галочка для соответствия Google/Yahoo bulk sender requirements 2024".
При этом видно сразу несколько любопытных подписей вендоров:
Запись #3 —rua=mailto:rua@dmarc.brevo.com на 7172 доменах. Brevo (бывший Sendinblue) автоматически генерирует и предлагает клиентам шаблон DMARC-записи со своим адресом для агрегатных репортов. По этой подписи можно посчитать активную клиентскую базу Brevo, у которой настроен DMARC по их шаблону: примерно 7–10 тыс. доменов в Tranco-1M (сложить #3 + #11).
Запись #7 — Proofpoint Email Defense на 3333 доменах. Похожий паттерн: enterprise-клиенты Proofpoint настраивают агрегатные репорты на их emaildefense.proofpoint.com, и это видно в DNS как уникальная подпись.
Записи Valimail (dmarc_agg@vali.email). В сумме ~3700 доменов используют Valimail как DMARC-aggregator. Это ниже их публично заявленных 65 тыс. клиентов (Sacra estimate, 2024) — потому что большая часть клиентов Valimail (особенно SMB) не попадает в Tranco top-1M.
Главный практический вывод: считать DMARC adoption по числу опубликованных записей — методологическая ошибка. Корректная метрика — enforcement rate: доля доменов с p ∈ {quarantine, reject} и pct=100. По этой метрике картина сильно скромнее, и тренд на её рост (+1.86% за 90 дней по нашим данным) — медленный.
Воспроизводимость
Каждый ежедневный отчёт фиксирует:
  • дату OpenINTEL-снэпшота;
  • SHA256-хеши словарей классификаторов (mx_providers.py, esps.py, saas_senders.py);
  • топ-100 не классифицированных MX-хостов и SPF-include таргетов — публично, чтобы любой читатель мог предложить дополнение в словари.
Снапшот публикуется ежедневно на check.live-direct-marketing.online/blog. Исторические срезы — последние 90 дней целиком, более старые проредаются до месячных. Базовая инфраструктура спроектирована так, чтобы при наличии архива OpenINTEL восстановить ряд назад — теоретически с 2015 года, на практике — с момента, когда в OpenINTEL появился сам список Tranco (2018+).
Что эта метрика измеряет, а что — нет
Ещё раз честный список ограничений, в одном месте:
  • DNS-конфигурация ≠ объём писем.Все цифры — про число доменов. Здесь логика та же, что у Lighthouse-метрик: видим декларации, не реальный поток.
  • Tranco bias к US/EU.Любой вывод по RU/CN/JP/KR из этих данных будет искажён. Для региональных рынков нужен отдельный список или ccTLD-фильтр.
  • SPF flattening занижает доли ESP.Для крупных enterprise-доменов — заметно (5–15%).
  • CNAME-чейны на MX не разворачиваются.Часть Microsoft 365 / Google Workspace доменов попадает в "Unknown".
  • DKIM не измерим без знания селектора — отсутствует в датасете полностью.
  • Vanity-MX security-вендоров (Mimecast/Proofpoint с whitelabel-доменами клиента) — недетектируемы из DNS.
  • Срез — это снэпшот.Тренды считаются на разнице снэпшотов. Любая смена ESP/MX в день между снапшотами невидима.
Что дальше
Сейчас система работает в "snapshot mode" — каждый день независимо. Следующие шаги в порядке приоритета:
  • CNAME unrolling для MX-таргетов — должно перенести часть "Unknown" в Microsoft 365 / Google Workspace и дать более точную оценку дуополии.
  • BIMI-ключи (default._bimi.) — отдельная классификация brand-indicator-сетапов. Это уже follow-up по DMARC: BIMI требует p=quarantine|reject с pct=100 плюс VMC-сертификат.
  • MTA-STS / DANE / TLS-RPT — следующий слой email security beyond authentication. У OpenINTEL эти записи запрашиваются, метрика по ним пока не считается.
  • Сравнение со срезами по ccTLD — для устранения Tranco bias по региональным рынкам (отдельный datapoint для .ru, .cn, .de, .jp).
  • Пересечения: домены с p=reject среди клиентов конкретного ESP, доля доменов на Cloudflare Email Routing с DMARC, и т.п. — двумерные срезы для более интересных историй.
Что с этим делать читателю
Если ты владелец/инженер-владелец домена:
  • Проверь свою DMARC-запись. Если у тебя v=DMARC1; p=none; без rua= — ты в той самой группе compliance theater. Ставь rua=mailto:dmarc@yourdomain.com, дай ей покрутиться 2–4 недели, потом переходи к p=quarantine; pct=10 и далее по эскалации.
  • Посмотри, не флатнут ли твой SPF. Если в твоей записи 30 IP-сетей вместо include: — ты теряешь видимость для аналитики и нагружаешь DNS-резолверы клиентов.
  • Если у тебя крупный корпоративный домен — разверни CNAME для MX в реальный target. Это не повлияет на доставку, но улучшит обнаруживаемость в индустриальной аналитике и отчётах безопасности.
Если ты ESP/security-вендор:
  • Видишь свою долю в этой статистике. Это нижняя граница (из-за SPF flattening). Как меняется — отдельный сюжет, но даже моментальный snapshot показывает позицию в индустрии.
  • Подпись твоего DMARC-шаблона видна в DNS. Если ты массово настраиваешь клиентам rua=mailto:...@yourbrand.com, это де-факто публичная customer-метрика.
Если ты исследователь:
  • Датасет открыт и воспроизводим. Словари классификаторов в публичном репозитории, методология описана, OpenINTEL — академический проект с понятными data agreements. Любые корректировки в словарях принимаются и в следующем снэпшоте отражаются.
Приглашение к корректуре
Если в топ-100 неклассифицированных MX-таргетов или SPF-include'ов вы видите свой ESP/SaaS — пишите на support@live-direct-marketing.online или открывайте issue. Словари обновятся к следующему ежедневному прогону.
Список миссклассификаций, на которые я уже знаю — его исправлять:
  • eforward*.registrar-servers.com — это Namecheap email forwarding, надо вынести в отдельный класс из generic.
  • route*.mx.cloudflare.net — Cloudflare Email Routing, отдельный класс.
  • mailstore1.secureserver.net — GoDaddy, надо классифицировать.
К следующей публикации эти три уже должны быть учтены — и доля "Unknown" заметно уменьшится.
Ссылки
  • OpenINTEL
  • Tranco list
  • van Rijswijk-Deij et al., "A High-Performance, Scalable Infrastructure for Large-Scale Active DNS Measurements", IEEE JSAC 2016
  • Le Pochat et al., "Tranco: A Research-Oriented Top Sites Ranking Hardened Against Manipulation", NDSS 2019
  • RFC 7489 — Domain-based Message Authentication, Reporting, and Conformance (DMARC)
  • RFC 7208 — Sender Policy Framework (SPF)
  • Текущий ежедневный отчёт
Статья описывает срез на 2026-01-01. Данные обновляются ежедневно. Замеченные ошибки и пропущенные ESP/провайдеры — присылайте, обновляются к следующему прогону.-Источник
 
Loading...
Error