Строго говоря, я более чем уверен, что большинству пользователей Хабра не нужно объяснять, что такое IP-адрес. Тем не менее, мы, "Лаборатория свободного интернета", начали серию материалов, где буквально на пальцах и на примерах их жизни объясняем разные аспекты существования сети Интернет и разных часто вслепую используемых технологий.

Если есть идеи - про что еще мы можем рассказать - пишите в комментариях.

Важное уточнение: мы рассматриваем в статье только классический протокол IPv4. Внедрение протокола IPv6 хоть медленно, но идёт: по разным оценкам на 2022 год трафика по IPv6 передано от 20% до 40%. Чтобы не перегружать статью, про IPv6 мы напишем отдельно.

«IP-адрес (от англ. Internet Protocol) — уникальный числовой идентификатор устройства в компьютерной сети, работающей по протоколу TCP/IP­»­ , –  это снова определение по версии Википедии.

Ещё один уникальный числовой идентификатор, который вполне может оказаться неуникальным.

TCP/IP – это набор Интернет-протоколов, которому уже несколько десятков лет и который и обеспечивает нас всех связью.

Итак, IP-адрес. Он уже гораздо более известен широкой публике, даже участвует в широко распространённых мемах типа «Я вычислю тебя по IP». Кроме того, многие дети начинают знакомиться с этим понятием, когда возникает потребность поиграть с другом по сети.

Выглядит он вот так: 192.168.26.85

IP-адрес используется в Интернете непосредственно для связи между различными устройствами. Например, между сайтом Яндекса и вашим компьютером. Или между вами и другим игроком в Minecraft.

IP-адрес назначается каждому сетевому устройству, и делает это ваш провайдер. Разумеется, для того, чтобы назначить IP-адрес, надо как-то отличить ваше устройство от устройства вашего соседа, и вот тут как раз нам необходим MAC-адрес, который зашил в устройство производитель.

Проще говоря, IP-адрес – это надстройка над MAC-адресом, которую делает ваш оператор для обеспечения вас связью. И если в теории ваш MAC-адрес с вами навсегда (пока не смените свой ноутбук, компьютер или телефон), то ваш IP-адрес, как правило, постоянно меняется. Он меняется в зависимости от места подключения, времени подключения и условий подключения, и, конечно, вашего оператора. Например, когда вы приходите домой, ваш телефон подключается к домашней сетке Wi-Fi. Меняется провайдер – меняется и IP-адрес.

Можно представить себе (не без смысловых шероховатостей) VIN-номер автомобиля как MAC-адрес, а его государственный знак – как IP. VIN идёт с завода-изготовителя и с машиной навсегда, а госномер присваивается уже в зависимости от страны и региона использования.

Неизбежно возникает вопрос — а зачем нам такая дефицитная и хлопотная надстройка в виде IP-адреса, если у нас уже есть MAC-адрес? Зачем усложнять?

Ответ в максимальном количестве устройств в сети. Да, если бы пользователей сети было всего несколько тысяч, можно было бы обойтись и адресацией по MAC. Но пользователей Интернета уже несколько миллиардов, и количество постоянно растёт.

Содержать такую невероятно большую адресную книгу технически невозможно: для этого необходимо было бы любому пограничному маршрутизатору оператора (это такая главная железка оператора, которая отделяет его пользователей от Интернета) содержать данные обо всех устройствах в мире.

Поэтому и используется IP-адресация – она позволяет сжать таблицу всех маршрутов Интернета до нескольких сотен тысяч строк. Если точнее — около 850 тысяч. Такое сжатие возможно потому, что используется указание не на конкретного пользователя, а сразу на группу от 256 до 16 миллионов адресов. Информация отправляется сразу в адрес обитания такой группы (подсети), т.е. на конкретную Автономную Систему. А внутри АС уже по свойски пересылается адресату.

Тут можно продолжить аналогию про индекс — представьте, что в России было бы 145 миллионов уникальных индексов, как раз по числу жителей. И в каждом почтовом отделении был бы такой адресный список, на все 145 миллионов строк. Почтальоны бы сошли с ума, пролистывая каждый раз этот список, чтобы узнать, куда же нести письмо. Поэтому почтовых индексов всего 44 тысячи.

Такая экономия имеет обратную сторону. Поскольку адресуется всё блоками (подсетями), то возникает неизбежная избыточность. Допустим, небольшому оператору нужно для личного пользования только 50 адресов. Но анонсировать сеть меньше 256 адресов не получится. Таким образом, 200 адресов будет простаивать.

Тут можно сравнить с арендой офиса – представьте себе мир, где нельзя снять офис меньше 256 метров. А вам нужна всего одна комната. Остальное помещение будет простаивать и никто им кроме вас воспользоваться не имеет права.

Поэтому многие операторы экономят реальные IP-адреса, применяя специальную технологию — NAT (Network Address Translation). Эта технология позволяет под одним реальным Интернет-IP-адресом использовать множество так называемых «серых» IP-адресов, которые не видны напрямую в Интернете. Организации, которые разрабатывают регламенты для Интернета, даже выделили специальные диапазоны «серых» адресов, с самым распространенных из них, уверены, вы уже знакомы: 192.168.0.0 – 192.168.0.255.

Выглядит это примерно так:

Как мы видим, за одним операторским устройством (вверху) с одним реальным (ещё их называют «белыми») IP-адресом  могут находиться сотни, а то и тысячи абонентов с «серыми» IP адресами, которые не видны в Интернете напрямую.

Очевидные плюсы технологии NAT – экономия IP-адресов для оператора: абонентов не видно напрямую из Интернета, а значит меньше шансов быть взломанным Интернет-хулиганами.Минусы: такая ретрансляция адресов отнимает ресурсы, так как адреса нужно быстро-быстро сопоставлять и передавать информацию. Значит, оператору нужно покупать и устанавливать дополнительное оборудование, а Интернет, пусть и немного, но станет медленнее.

Кстати, игровая приставка XBOX при обнаружении двух NAT (как на картинке) сообщает пользователю об этом, как о потенциальной проблеме.

Невидимость абонента из Интернета является так же и минусом: например, сложно попасть на свой домашний компьютер напрямую из другой сети. 

Ну и если ваш сосед по реальному IP нахулиганит где-нибудь, то блокировка вашего общего IP отразится и на вас и ещё на нескольких сотнях (а то и тысячах) невиновных пользователях.Часто можно это заметить на каких либо игровых сервисах. Например, ваша игровая приставка стала выдавать ошибку при попытке зайти поиграть онлайн. Скорее всего это означает, что ваш коллективный IP заблокирован на игровом сервере.

Некоторые операторы используют немного другую схему. Они каждому абоненту при выходе в Интернет выдают реальный IP-адрес. Но, поскольку режим экономии IP никто не отменял, этот адрес не закреплён постоянно за абонентом, а мигрирует от абонента к абоненту. Кто сейчас находится онлайн – тому адрес и выдаётся, в порядке живой очереди.

Можно представить такую схему, как тапочки для гостей в квартире. Кто пришёл — того и тапки. Ушёл – оставил тапки в квартире. Экономия на тапках очевидна: не покупать же каждому уникальному гостю свои именные тапочки. Хотя и такое возможно, об этом ниже.

Таким образом, у вас постоянно меняется IP-адрес. И тут тоже возможна ситуация нарваться на заблокированный адрес. Помогает перезагрузить ваш роутер и/или подождать.

Кстати, посмотреть IP-адрес, через который вы сейчас сидите в Интернете, можно, например, здесь https://myip.ru/

Можно ли купить свой собственный IP и, как взрослый, сидеть с ним напрямую в Интернете? Да, можно. Как правило, операторы предоставляют такую услугу за дополнительные деньги, около 150 рублей в месяц. В этом случае вы сами будете отвечать за свою безопасность в Интернете, так как будете видны напрямую, но и заблокировать вас смогут только по вашей же вине. Кроме того, вы легко получаете доступ к своему устройству напрямую из любой точки мира.

Означает ли это, что без выделенного IP адреса меня не могут вычислить? 

Нет. По закону оператор обязан хранить все данные о ваших похождениях в Интернете за 3 года. Да, NAT усложняет процедуру опознания конкретного абонента, но это просто лишняя головная боль оператора. При законном запросе компетентных органов оператор обязан сдать данные абонента и обязательно это сделает.

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


  1. Akina
    06.12.2022 16:25
    +5

    Наверное, я слишком требователен, но впечатление от статьи осталось приблизительно такое: "Вы плохо понимаете, что такое IP-адрес? давайте, я вас совсем запутаю...".

    Из самого такого:

    Ещё один уникальный числовой идентификатор, который вполне может оказаться неуникальным.

    Вот уж точно эта фраза не добавит понимания.. к тому же она сама по себе в тексте ни за что не цепляется - ни за предыдущие, ни за последующие слова. Прям недоразумение, а не фраза.

    Допустим, небольшому оператору нужно для личного пользования только 50 адресов. Но анонсировать сеть меньше 256 адресов не получится. Таким образом, 200 адресов будет простаивать ... Поэтому многие операторы экономят реальные IP-адреса

    Нормально так.. у него и так 80% адресов не используется, а ему ещё и экономить?


    1. Plusodin Автор
      06.12.2022 17:06
      -2

      Спасибо за комментарий.
      Да, жизнь сложная штука и иногда то, что задумывалось как "уникальный" идентификатор оказывается не уникальным. Вероятно, форматирование не позволило донести мысль, хоть строки и были выделены курсивом - "Ещё один уникальный числовой идентификатор, который вполне может оказаться неуникальным." это комментарий к определению из википедии. И цепляется эта фраза ровно к предыдущим строкам, которые собственно и являются определением из википедии.

      "Нормально так.. у него и так 80% адресов не используется, а ему ещё и экономить? "
      Создаётся впечатление, что вы кусками прочитали статью.
      Логика повествования такая:
      1. Почему Ip а не MAC
      2. Потому что так решается проблема маршрутизации.
      3. При этом возникает другая проблема - избыточность при выделении и использовании блоков адресов.
      4. Приводится пример избыточности с оператором.
      5. Решение проблемы нехватки адресов через NAT.

      Тому, у кого 80% адресов не используется экономить не надо. Экономить надо тем, кому очень не хватает этих 80% адресов, которые простаивают, но не могут быть использованы.
      И для этого есть пример с арендой.



      1. solypse
        06.12.2022 18:51

        >оказывается не уникальным

        А может быть в RFC уже была описана эта неуникальность?


        1. Plusodin Автор
          06.12.2022 18:52
          -1

          Срочно сообщите это википедии!
          В этом, собственно, и смысл нашей цитаты.


      1. Akina
        06.12.2022 19:46
        +3

        Логика повествования такая:

        1. Почему Ip а не MAC

        2. Потому что так решается проблема маршрутизации.

        Убил! можно сказать, без ножа зарезал! MAC, IP и маршрутизация - это ж три разных слоя в модели OSI.

        Ну и совершенно не понимаю, как в эту логику вписывается несколько IP-адресов на одном интерфейсе и несколько МАС на одном интерфейсе.


  1. fedorro
    06.12.2022 16:54
    +3

    Если есть идеи - про что еще мы можем рассказать - пишите в комментариях.

    Что такое браузер, и как зайти им на Хабр, по пути можно охватить чудо-технологию DNS. /s


    1. Plusodin Автор
      06.12.2022 18:55

      Сарказм, однако! Впрочем, я уверен, что если на первую часть ваших вопросов ответы известны всем, то вот про "чудо-технологию DNS" и тем более её развитие мало кто сможет внятно и умеренно рассказать, особенно для неподготовленных пользователей.


      1. fedorro
        06.12.2022 20:04

        Договорились:)


  1. dimas846
    06.12.2022 16:55

    Про маску подсети ни слова.


    1. Plusodin Автор
      06.12.2022 18:59
      -1

      Когда я готовил правки к статье то понял, что либо получится "идеально и никогда", либо как сейчас и в дальнейшем развивать и дополнять материал.
      Цель стояла "максимально просто и с аналогиями о сложном". Будет и про маску и про Ipv6 это тоже целый мир и наша реальность.


      1. DikSoft
        06.12.2022 22:11
        +2

        Будет и про маску и про Ipv6 это тоже целый мир и наша реальность.

        А можно ненадо?
        Всё уже было и на самом достойном уровне


      1. mmMike
        07.12.2022 05:46
        +2

        Присоединяюсь к предыдущему комментарию "А может не надо?"

        удалил. остальную критику. Посмотрел профиль. Типичный писатель на зарплате. Смысле нет спорить. Важно количество и объем статей.


  1. net_racoon
    07.12.2022 09:32
    +2

    Не смог дочитать до конца, вы с одной стороны не копаете глубоко и не рассказываете про OSI.

    Ну и куча откровенно бредовых моментов, например:

    Неизбежно возникает вопрос — а зачем нам такая дефицитная и хлопотная надстройка в виде IP-адреса, если у нас уже есть MAC-адрес? Зачем усложнять?

    Ответ в максимальном количестве устройств в сети.

    Для начинающих, это вредно читать. Те кто в теме будут плеваться.


  1. snaiper04ek
    07.12.2022 18:30

    Mac-адрес - физический идентификатор, выдаваемый сетевому устройству на заводе. Один сетевой порт в устройстве - один физический Мак-адрес.

    Для объединения устройств в одну сеть, каждому сетевому устройству присваивается ip-адрес, эта привязка происходит по мак-адресу. IP адрес нужен потому что мак адресы не удобно делить на маленькие сети, а одну большую сеть нельзя строить сразу - никакой маршрутизатор не справится, нужно обязательно их дробить на меньшие размеры. С мировой сетью можно взаимодействовать только через белый IP - тот, который видно в мировой сети (WAN). Такой IP вам может дать провайдер на постоянной основе, но IP должен быть уникальным в пределах одной сети, а их не хватает. Поэтому провайдеры в основном используют систему временных белых адресов, либо серую (NAT) адресацию.

    Танцы с серыми IP нужны по той причине, что 10 лет назад, сетевых устройств в мире стало больше, чем существует IP-адресов. Но не все и всегда одновременно в сети, поэтому можно выдавать временный белый IP только тем, кто в сети прямо сейчас.

    Другой вариант: устраивать серую локальную сеть из нескольких устройств, и на всю сеть назначать один белый IP адрес.

    Серый IP - это адрес, который не видно из мировой сети, он существует только в сети вашего провайдера, поэтому к вашему компьютеру из интернета невозможно послать запрос. Плюс защита от взломов, минус возможность без проблем держать домашний сервер: а всё потому что только вы сами можете послать запрос наружу, и по тому же пути получить ответ, в итоге установив канал связи, по которому у же сможете свободно общаться в обе стороны, и только пока канал поддерживается открытым. Но не наоборот(к серверу из вне никто не достучится).

    Сама система серых IP работает как несколько домов на одной цифре улицы. Все видели что-то вроде "ул. Яхонтовая, дом 7А" и тут же "ул. Яхонтовая, дом 7Б". Нормальный адрес изначально был без буквы. Но вот получилось как получилось, построили ещё один дом, и пришлось выкручиваться - из одного нормального адреса нужно срочно сделать два хоть каких-нибудь адреса, поэтому к цифре просто добавляется буква. Вот весь адрес до буквы - это белый адрес, а буква - это локальное обозначение конкретного дома по этому адресу, можно сказать - серая его часть. Разница в том, что живой почтальон сразу видит что есть буква "7А" или "7Б", при этом IP пакет из интернета видит только белый адрес, серую часть знает только маршрутизатор вашего провайдера. Технология, позволяющая переходить пакетам из внутренней сети во внешнюю, и обратно, называется NAT.

    Сюда можно налить ещё глубины и редактуры, но мне кажется, у меня за 15 минут получилось раскрыть суть чуть лучше, на той же глубине повествования.


    1. Akina
      07.12.2022 22:38

      С мировой сетью можно взаимодействовать только через белый IP - тот, который видно в мировой сети (WAN).

      Тут Вы не совсем правы. Впрочем, это обычное заблуждение. С мировой сетью можно взаимодействовать только через маршрутизируемые IP.

      Есть адреса, маршрутизируемые в Интернете, и есть немаршрутизируемые. По уму любой маршрутизатор, обнаруживший транзитный пакет, где любой из адресов относится к немаршрутизируемому диапазону, должен опустить этот пакет в корзину, и даже не обязан уведомлять о том отправителя.

      Понятие "белых" и "серых" адресов немного смещено от предыдущего деления. Далеко не все "серые" адреса - немаршрутизируемые.

      Актуальная на текущий момент информация по обеим группам адресов находится в RFC 6890 с последними обновлениями в RFC 8190.