Самые элитные IP-адреса

N.B. Просьба не воспринимать написанное серьёзно.

Есть в России любовь к «блатным номерам». Про госномера для автомобилей все знают. Золотые телефонные номера — торгуются во всю, и даже официально. Вот, некоторое время назад всплыла новость даже про «красивый номер» паспорта с пятью нулями.

А как же IP-адреса?

5c5ec16424884854ae1b217ad5fdcf57.png
На иллюстрации кипрский Пиццехат хвастается блатным (увы, телефоном) 77.77.77.77. Хотя урл http://77.77.77.77 выглядел бы куда как интереснее.

Ну, допустим, нолик себе в конце IP кое-кто с небольшими усилиями может получить. Всего-то надо сетку больше /24 использовать.

А два нолика? /15 звучит уже серьёзно.

Но настоящие мажоры — это владельцы адресов с тремя нулями. И нет, я не говорю про гордых обладателей 10.0.0.0 и root-администраторов localhost, я про настоящие элитные белые IP. В первом приближении может показаться, что их всего 256, но с учётом всяких мультикастов, серых и экспериментальных сегментов, локалхостов и т.д., их совсем мало. Если верить IANA (тут), то у нас всего-навсего 221 /8 сетей. То есть всего может быть 221 блатных IPv4-адресов.

Вооружившись nmap’ом, nping’ом, whois’ом и прочими инструментами, изучаем, кто же эти счастливые люди, способные отвечать на адреса вида X.0.0.0?

На самом деле в современном интернете вполне можно получить себе .0 (и прочие .0.0, .0.0.0), даже если используется маленькая сеть — её достаточно порезать /32 и маршрутизировать через другие адреса. Всякого рода пулы NAT-адресов, unnumbered маршруты и прочие «нетрадиционные интернеты» в районе ISP’шного доступа для домашних пользователей позволяют вытворять всякие ужасы необычности.

Например, если у нас есть в хозяйстве сети 31.153.91.0/29, и 31.153.91.248/29 (вполне возможно получить такое на хостинге средней руки, .0 — по чистой случайности, а .248 — вполне распространённый адрес для /29), то мы можем (имея доступ к маршрутизации) сделать так:
(на маршрутизаторе) ip route 31.153.91.0/29 via 31.153.91.250
И на хосте, мы просто вешаем адрес алиасом на наш основной интерфейс:
ip address add 31.153.91.0/32 dev eth0

После этого у нас адрес начинает отвечать на запросы. Почему? Потому что ip использует hop-by-hop маршрутизацию. Смотрим:

  • маршрутизатор знает, что делать с пакетом на 31.153.91.0? Знает. Слать на 31.153.91.250, который, допустим, directly connected (то есть у маршрутизатора в этой сети есть свой адрес, например, 31.153.91.249/29).
  • Наш сервер знает что делать? Конечно, у него этот адрес на интерфейсе прописан. Получаем ip-пакет с таким dst, обрабатываем. Если ещё остались сомнения относительно MAC’ов: при маршрутизации в mac-dst подставляется MAC-адрес маршрутизатора (а ip-dst не меняется), а в случае directly connected в mac-dst подставляется mac-адрес узла-получателя. То есть с точки зрения получателя он даже узнать не может, «маршрутизируют» на него трафик, или присылают как конечному узлу.
  • После того, как ответ сформирован, адрес 31.153.91.0 попадает в ip-src. В ip-dst попадает адрес отправителя (кто-то из интернета).
  • Пакет «в интернет» уходит через шлюз по умолчанию (default gateway). Который (мы предполагаем примитивную инсталляцию) выделен в сети 31.153.91.248/29, то есть, например, 31.153.91.249. Что у нас при этом «другой» ip-src никого не волнует — у нас dst-based hop-by-hop маршрутизация, то есть при маршрутизации смотрят только на dst.
  • Маршрутизатор получает пакет «в интернеты» и обрабатывает его «как обычно»


Если .0 может перепасть кому-то случайно (в конце-концов, у нас больше 8 миллионов таких штук (129×255*255)), то с людей с двумя нулями в IP-адресе может быть существенно меньше — около 32 тысяч. Как уже было сказано раньше, с тремя нулями может быть всего 129 человек на всю планету (для сравнения — всего есть 71 яйцо Фаберже, а Пабло Пикассо создал около 20000 произведений). Другими словами, солидные IP для солидных людей. Если при этом учесть, что выдача x.0.0.0 для человечества и инфраструктуры значительно сложнее, чем штамповка номера вида oOOOoo|78, то количество реально доступных .0.0.0 значительно меньше. Почему? Потому что в классической маршрутизации, «все нули» в адресе хоста означают «номер сети» и узлам не назначаются. Любой провайдер с «классической маршрутизацией», получив себе X.0.0.0/21 с большой вероятностью потеряет этот адрес (даже если порежет сеть на подсети — получившийся X.0.0.0/29 будет всё равно иметь X.0.0.0 как номер сети).

Так сколько же у нас Реально Солидных Людей с Конкретно Солидными IP адресами? Так сказать элита элит, высшие сливки общества, люди, которые могут себе Позволить Скромное Обаяние Эксклюзивных IP-адресов?

(после нескольких минут с nmap’ом)

Собственно, у нас есть всего три представителя Элиты Элит, самых серьёзных и респектабельных узлов Интернета:

Назовём их по именам:

  • 84.0.0.0 — админка WD My Cloud Ex (Magyar Telecom, Венгрия, DSL-пул, если верить PTR’у).
  • 117.0.0.0 — что-то странное, прикрытое http-auth, «TD-8840T». Вьетнамский телекомOnline Technologies LTD.
  • 151.0.0.0 — странный http, возвращающий пустой ответ. Украинский телеком «Online Technologies LTD», Донбасс.


Видно, что все три — из явных ISP-диапазонов и потрачены на домашних хомячков ничего не подозревающих о собственной элитности пользователей домашнего интернета.

Ещё четыре узла отвечают на пинги, и ничего более.

  • 75.0.0.0
  • 92.0.0.0
  • 109.0.0.0
  • 112.0.0.0


Таким образом, можно констатировать, что самые блатные адреса тратятся совершенно бездарно. Среди остальных (серебрянные, вида X.Y.0.0, которых ожидается порядка 32 тысяч) на пинги ответили аж 2204 узла. Уже неплохо, да?

Редакторская врезка: за время редактирования и форматирования статьи всё поменялось. Теперь у нас 19 IP-адресов, которые отвечают на пинги, и из них http (s) был только на: 117.0.0.0, а хоть какая-то разумная сетевая активность (tcp) оказалась только только на ещё одном узле: 61.0.0.0


Казуальный пользователь может заметить, что красивым может быть не только адрес с нулями. 8.8.8.8 (один из двух публичных dns-серверов google’а) — чем не «красивый» адрес?
Но настоящий-то гик знает, что из-за особенности устройства маршрутизации в IP-сетях, именно многонулевые адреса самые сложно организуемые и добываемые. Остальные (ну, кроме «XXX.255.255.255», из которых, кстати, отвечает всего 10 шт) слишком тривиальны и могут заинтересовать только неискушенного пользователя.

© Habrahabr.ru