
Для адресации и идентификации используются три ключевых «типа адресов»:
IP-адрес - это число, по которому устройство видно в сетевом мире TCP/IP.
Сегодня используются две версии:
Зачем понадобился IPv6
Адресов IPv4 мало - примерно 4,3 млрд. Когда интернет сильно вырос (дома, телефоны, умные устройства, сервера, облака), стало понятно, что если мы каждому дадим уникальный публичный IPv4, их просто не хватит.
IPv6 решает это радикально - там настолько много адресов, что можно выделять огромные блоки подсетей и не экономить.
На практике сейчас внутренняя логика и базовая теория обычно объясняется на IPv4 - проще и нагляднее, а IPv6 постепенно внедряют провайдеры и крупные сервисы, но в голове всё равно можно думать:
«это тоже просто адрес узла, только записанный по-другому».
В одной логической сети (внутри одной подсети) IP-адреса должны быть уникальны. Не может быть двух разных устройств с одинаковым IP в одной и той же сети - будет конфликт.
В глобальном интернете публичные IP-адреса тоже уникальны, чтобы пакет с этим адресом мог однозначно дойти до нужного владельца.
Но есть нюанс - приватные IP-адреса (например, 192.168.0.10) могут повторяться в разных локальных сетях, потому что эти сети не видят друг друга напрямую и на границе стоят маршрутизаторы и NAT (чуть позже разберём).
Поэтому корректнее сказать, что IP-адрес - это «адрес в какой-то сети». Внутри одной сети он должен быть уникален.
Один и тот же приватный IP может встречаться в тысячах разных офисов и квартир, но они отделены друг от друга маршрутизаторами.
Чтобы управлять не отдельными IP-адресами, а группами, сеть делят на подсети.
Подсеть - это группа IP-адресов, объединённая логически и технически. Для них можно задавать общие правила доступа.
Запись подсети:
Здесь:
Что это значит по сути:
Маска подсети «по-старому»
Запись /24 - это сокращение от маски 255.255.255.0
Эта маска говорит:
Зачем нужны подсети
Подсети упрощают маршрутизацию, так как роутерам не нужно хранить маршрут к каждому IP, достаточно - к подсетям. Также упрощают безопасность - можно сказать:
Статический IP-адрес - это IP, который прописывают вручную или жёстко закрепляют за устройством/клиентом. Он не меняется при перезагрузке устройства, не меняется при переподключении и считается «постоянным».
Примеры, где нужен статический IP:
Динамический IP-адрес - это адрес, который устройство получает автоматически при подключении к сети и который может меняться после перезагрузки роутера, при переподключении к провайдеру и при окончании «срока аренды» адреса. Он не закреплён навсегда за конкретным клиентом.
Примеры:
Чтобы динамические IP не выдавать вручную, используют специальный сервис.
DHCP (Dynamic Host Configuration Protocol) - протокол, по которому устройство говорит сети «Я новенький. Дайте мне, пожалуйста, IP и настройки», а сервер отвечает: «Вот тебе IP, маска, шлюз и DNS. Пользуйся до такого-то времени».
Теперь разберем чуть подробней:
Ноутбук подключился физически. Ты воткнул кабель или подключился к Wi-Fi. Ноутбук ещё не знает свой IP-адрес. Он пока просто «видит», что есть связь с сетью, но адрес ему никто не выдавал.
Ноутбук спрашивает: “Кто тут раздаёт адреса?”. В сети принято, что за раздачу адресов отвечает специальная служба - её называют DHCP-сервер.
DHCP-сервер - программа (часто внутри роутера), которая раздаёт IP-адреса и даёт остальные настройки сети.
Ноутбук отправляет по сети специальное сообщение примерно такого смысла: «Я новый. У меня ещё нет IP.
Есть ли здесь DHCP-сервер? Дайте мне настройки сети».
Это сообщение уходит всем в локальной сети (так называемый широковещательный запрос) - потому что у ноутбука ещё нет ни своего IP, ни IP сервера.
В сети есть либо роутер с включённой функцией DHCP, либо отдельный сервер с этой ролью. Он получает вопрос ноутбука и отвечает: «Я DHCP-сервер. Вот твои настройки».
В ответе он присылает несколько важных вещей:
Получив ответ, ноутбук:
Все эти данные он записывает в настройки своей сетевой карты.
С этого момента ноутбук может общаться с соседями по локальной сети (например, с принтером), ходить в интернет через роутер и открывать сайты по именам (ya.ru, google.com), а не по голым IP.
При этом IP-адрес выдаётся на время - это называется lease (аренда). Когда срок подходит к концу, устройство может продлить аренду или получить новый IP, если старый отдали кому-то другому.
Как уже говорили выше, с IPv4-адресами туго, их мало. Поэтому придумали NAT (Network Address Translation) - механизм подмены адресов.
NAT (трансляция сетевых адресов) - это механизм на роутере, который с одной стороны видит внутреннюю сеть с приватными IP, а с с другой - интернет с публичными IP. Он подменяет адреса в пакетах так, чтобы изнутри в интернет всё выглядело, как будто запросы идут с одного или нескольких публичных адресов, при этом разные внутренние устройства могут пользоваться одним внешним IP.
Пример домашней сети:
Когда ноутбук открывает сайт:
Так один внешний IP может обслуживать десятки/сотни внутренних устройств. Это называется NAT или маскарадинг (маскарад: за одним лицом скрывается толпа).
CGNAT (Carrier-Grade NAT) - это NAT на стороне провайдера.
С домашним роутером всё понятно: ты видишь у роутера «внешний IP» - это тот, который виден в интернете.
Но иногда у тебя вообще нет “своего” публичного IP. Провайдер даёт тебе внутренний адрес в своей сети, например: 100.64.x.x или что-то из приватных диапазонов. А уже у провайдера стоит большой NAT, который подменяет твой адрес и адресы других клиентов на какой-то набор публичных IP, и тогда много абонентов провайдера разделяют один и тот же внешний IP (или небольшой пул). Извне сложно (или вообще невозможно) «пробиться» к конкретной машине внутри, потому что провайдер не знает, кому из N клиентов направить входящий запрос.
Повторим термины:
Сетевой адаптер - железка/модуль, который подключает устройство к сети (Ethernet-разъём, Wi-Fi-модуль).
MAC-адрес - уникальный идентификатор этого адаптера.
Важно помнить, что MAC не виден и не используется в глобальной маршрутизации по интернету. Один и тот же приватный IP (192.168.0.10) может встречаться и у тебя дома, и в чужом офисе, но MAC у устройств будет разный и сети между собой не пересекаются.
Порт: номер «двери» сервиса. Напомним:
Порт - это число от 0 до 65535, по которому операционная система понимает, какому приложению отдать входящий трафик.
Комбинация IP-адрес + порт = конкретный сервис на конкретном устройстве.
Порт можно воспринимать как «номер двери» или «номер квартиры» внутри дома с определённым адресом.
Примеры:
Строгая обязательность тут только у некоторых протоколов, но «по традиции» используется:
Веб и API:
Администрирование и базы:
Почта: