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

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

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


На иллюстрации кипрский Пиццехат хвастается блатным (увы, телефоном) 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.
  • Маршрутизатор получает пакет «в интернеты» и обрабатывает его «как обычно»


Возвращаясь к позолоченным IP


Если .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 шт) слишком тривиальны и могут заинтересовать только неискушенного пользователя.

Комментарии (18)


  1. mifki
    03.08.2015 04:42
    +12

    Не соглашусь. Элитные — одно, красивые — другое. Имхо, 8.8.8.8 красивее и проще запомнить, чем x.0.0.0 Ну то есть, смысл от блатного адреса, если он некрасивый.
    Соответственно вопрос, откуда он у Гугла?


    1. uthark
      03.08.2015 04:54
      +6

      Вот тут есть «капитанский» ответ: How did Google acquire 8.8.8.8?.


      1. mifki
        03.08.2015 07:38

        Да… но я больше имел ввиду, что он, получается, лежал никем не используемый. И в деньгах ли тут дело или в том, что это Гугл.


      1. gene4000
        03.08.2015 12:15
        +1

        А есть ли 88.88.88.88? Наверное у какого-нибудь китайца.


        1. karabanov
          03.08.2015 14:44
          +1

          Вроде у Норвежцев

          ~$ dig ti0203a400-1361.bb.online.no
          
          ; <<>> DiG 9.9.5-3ubuntu0.4-Ubuntu <<>> ti0203a400-1361.bb.online.no
          ;; global options: +cmd
          ;; Got answer:
          ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25399
          ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
          
          ;; QUESTION SECTION:
          ;ti0203a400-1361.bb.online.no.	IN	A
          
          ;; ANSWER SECTION:
          ti0203a400-1361.bb.online.no. 3600 IN	A	88.88.88.88
          
          ;; Query time: 137 msec
          ;; SERVER: 78.81.224.12#53(78.81.224.12)
          ;; WHEN: Mon Aug 03 14:46:14 MSK 2015
          ;; MSG SIZE  rcvd: 62
          
          


          1. gene4000
            03.08.2015 15:47

            Страшно счастливые эти норвежцы )


            1. altman
              03.08.2015 17:41
              +2

              Китайцев бы хватил удар от 4.4.4.4 или — 44.44.44.44, у них, вроде как даже этажей четвертых нет и автомобильных номеров с четверками — тоже.

              А 13.13.13.13 отхватила себе Xerox — вот счастливчики! :)


              1. astlock
                04.08.2015 01:48

                ну, 4.4.4.4 у Level3, и в Пекине они есть, перебороли видимо:)
                www.tummy.com/articles/famous-dns-server


    1. dkukushkin
      03.08.2015 04:56
      +3

      Более того, одноциферных адресов всего 9 штук (0.0.0.0 не выделяется). Вот это действительно элитарный адрес. К сожалению, ни один не используется для Web.


      1. datacompboy
        03.08.2015 11:38

        А 1.2.3.4 вообще только один, но он слишком красив:
        remarks: + Address blocks listed with this contact
        remarks: + are withheld from general use and are
        remarks: + only routed briefly for passive testing.


        1. gene4000
          03.08.2015 12:16
          +2

          Еще есть рояль-версия: 6.7.8.9


  1. Athari
    03.08.2015 05:23
    +13

    Таким образом, можно констатировать, что самые блатные адреса тратятся совершенно бездарно.

    Вы посмотрите элитные однобуквенные домены в com. Да даже домены с названием из одного распространённого слова. Все полимеры просраны. Всё элитное или не используется, или занято киберсквоттерами.


  1. ComodoHacker
    03.08.2015 10:23
    +29

    Ну вот почему программирование микроконтроллеров теперь выселяется на Гиктаймс, а ЭТО — висит здесь?

    Хабр, если хочешь быть тортомтематическим — будь им!


  1. altman
    03.08.2015 10:24
    +4

    Какое-то время назад заметил, что yandex.ru стал резолвится в 5.255.255.5 или 5.255.255.55. И под yandex dns они выделили пусть и не особо блатные, но и не простые адреса.


    1. KorDen32
      03.08.2015 11:52
      +2

      Еще yandex.ru [77.88.55.66]


    1. amarao
      03.08.2015 16:11

      То есть дух элитаризма тихо расползается по айтишным комьюнити. Хорошо.


  1. TaHKucT
    04.08.2015 00:10

    жду аналогичную статью про ipv6 :D


    1. amarao
      04.08.2015 00:50

      Ну, там относительно просто.

      /32 (2a00:1450::) — типа, круто. Всё, что меньше — глупые понты.
      По какой-то причине получить маленькие буквы — очень и очень круто (2a00:50::) — большие понты.

      Каким-то чудом оказаться с двухоктетным адресом (2a2a::) — ну просто красава и круче быть не может.