Один «вшит» в железо навсегда, второй ему кто-то назначает. На первый взгляд — избыточность. На деле — два разных инструмента для двух задач, и убрать любой нельзя.
Посылка другу. На коробке две подписи: адрес дома («куда») и ФИО («кому»). Почта ведёт коробку по адресу, а у двери человек сверяет ФИО.
Не знаем, где живёт человек — пришлось бы обходить всех: «а вы не Петров?». У почты нет способа понять по имени, куда вести коробку.
Даже зная адрес дома, посылка может не найти адресата: человек мог переехать. Имя остаётся при нём независимо от квартиры.
Адрес нужен, чтобы довести пакет до нужной сети. Имя нужно, чтобы на месте вручить пакет именно тому устройству. Поэтому используются оба вида адресации одновременно.
Убери одну подпись — и доставка ломается. Нужны оба.
уникальный числовой идентификатор размером 48 бит, который однозначно идентифицирует устройство в локальной сети и позволяет устройствам взаимодействовать напрямую. Работает на канальном уровне (L2) модели OSI.
Записывается в hex: F4-46-37-55-24-86 — человеку читать удобнее, чем 11110100 01000110 … Главное свойство: MAC встроен в сетевую плату и в норме неизменен. Небольшое исключение — намеренная подмена MAC в целях безопасности или анонимизации.
уникальный числовой идентификатор размером 32 бита, идентифицирует устройство в любых сетях. Работает на сетевом уровне (L3). Записывается в десятичном виде: 192.168.10.1. Главное свойство — маршрутизация между сетями. Не встроен: назначается статически или динамически.
| MAC | IP (IPv4) | |
|---|---|---|
| Размер | 48 бит | 32 бита |
| Запись | hex | десятичная |
| Уровень OSI | L2 · канальный | L3 · сетевой |
| Область | локальная сеть | любые сети |
| Происхождение | вшит в плату | назначается |
| Аналогия | ФИО | адрес дома |
Устройства оперируют не «числами 192.168.15.1», а нулями и единицами. Размер адреса продиктован полями заголовка IP-пакета (RFC 791): поля Source Address и Destination Address — ровно по 32 бита (4 байта) каждое.
Октет. 32 бита делят на 4 группы по 8 бит, каждую переводят в десятичную систему и разделяют точками. Аналогия — телефонный номер: 8 (916) 123-45-67 вместо слитного.
0.0.0.0
На схемах IP-адреса подписывают двумя способами: полным (у каждого интерфейса весь адрес) и сокращённым (адрес сети, а у интерфейсов — только последняя цифра). Сокращённая форма экономит место на плотных схемах.
В начале компьютеров в сети было мало — их буквально можно было пересчитать по пальцам. Раздавать адреса можно было крупными кусками, не задумываясь об экономии. Так появилась классовая адресация: весь диапазон поделили на классы, и по первому октету сразу видно, к какому классу относится адрес и где в нём граница «сеть / узел».
| Класс | Диапазон первых октетов | Биты первого октета | Маска по умолчанию | Количество сетей | Количество хостов в сети |
|---|---|---|---|---|---|
| A | 1 – 126 | 0xxxxxxx | 255.0.0.0 · /8 | 126 (2⁷−2) | 16 777 214 (2²⁴−2) |
| B | 128 – 191 | 10xxxxxx | 255.255.0.0 · /16 | 16 382 (2¹⁴−2) | 65 534 (2¹⁶−2) |
| C | 192 – 223 | 110xxxxx | 255.255.255.0 · /24 | 2 097 150 (2²¹−2) | 254 (2⁸−2) |
| D | 224 – 239 | 1110xxxx | multicast — групповые адреса | ||
| E | 240 – 255 | 1111xxxx | зарезервировано для экспериментов | ||
Класс виден по первому октету. У A/B/C две крайние адреса каждой сети (адрес сети и broadcast) не назначаются — отсюда «−2».
| Класс | 1-й октет | Сеть / узлы | Маска | Узлов |
|---|---|---|---|---|
| A | 1 – 126 | N.H.H.H | 255.0.0.0 · /8 | ≈16,7 млн |
| B | 128 – 191 | N.N.H.H | 255.255.0.0 · /16 | 65 534 |
| C | 192 – 223 | N.N.N.H | 255.255.255.0 · /24 | 254 |
| D | 224 – 239 | multicast (групповые) | ||
| E | 240 – 255 | эксперименты | ||
192.168.1.7 → первый октет 192 → класс C → сеть 192.168.1.0, узлов 254.
10.0.5.3 → 10 → класс A → сеть 10.0.0.0, узлов миллионы.
Минус классов: сети только трёх «фиксированных» размеров — расточительно. Дальше это исправит CIDR (маска в любом бите).
Адрес 192.168.15.1 сам по себе не говорит: какая часть — сеть, какая — узел, и сколько устройств поместится. В ipconfig рядом с IP всегда стоит маска подсети — они ходят парой.
32-битное число, которое делит IP-адрес на сетевую и узловую части. Где в маске 1 — бит относится к сети; где пошли 0 — начинается узел. Единицы всегда слева непрерывно.
Адрес 192.168.15.1 с маской 255.255.255.0. Переведём в двоичный и наложим маску: где в маске 1 — сеть, где 0 — узел.
| 1 октет | 2 октет | 3 октет | 4 октет | |
|---|---|---|---|---|
| IP · 10 | 192 | 168 | 15 | 1 |
| IP · 2 | 11000000 | 10101000 | 00001111 | 00000001 |
| Маска · 2 | 11111111 | 11111111 | 11111111 | 00000000 |
| Маска · 10 | 255 | 255 | 255 | 0 |
| Часть | СЕТЕВАЯ (биты = 1) | УЗЛОВАЯ (0) | ||
Пример адреса 192.168.10.20. Тёмное — сеть, оранжевое — узлы.
Сколько адресов вмещает сеть? Это определяется числом свободных (узловых) битов:
где Q — ёмкость сети, N — количество битов в узловой части. Для маски 255.255.255.0 свободен весь 4-й октет (8 бит): Q = 2⁸ = 256.
Краткая запись маски: /24 = 24 сетевых бита. Наведи на строку — подсветится соответствие.
| Префикс | Маска | Q=2ᴺ | узлов −2 |
|---|---|---|---|
| /8 | 255.0.0.0 | 16777216 | 16777214 |
| /16 | 255.255.0.0 | 65536 | 65534 |
| /24 | 255.255.255.0 | 256 | 254 |
| /25 | 255.255.255.128 | 128 | 126 |
| /26 | 255.255.255.192 | 64 | 62 |
| /27 | 255.255.255.224 | 32 | 30 |
| /28 | 255.255.255.240 | 16 | 14 |
| /29 | 255.255.255.248 | 8 | 6 |
| /30 | 255.255.255.252 | 4 | 2 |
Узел (host) — любое устройство в сети со своим IP: ПК, телефон, принтер, интерфейс маршрутизатора. Узловая часть адреса — это его номер внутри сети.
Подсеть — часть большой сети, «нарезанная» под свою группу узлов. Каждая подсеть — со своим адресом сети и своим широковещательным адресом.
первый адрес диапазона, узловая часть — все нули. «Имя» сети, интерфейсу не назначается.
всё между ними — их можно назначать устройствам.
последний адрес, узловая часть — все единицы. Сообщение сразу всем.
Адрес сети — первый адрес диапазона: узловая часть = все нули. Берём IP и накладываем маску побитовым И — узловые биты (там, где в маске нули) обнуляются.
| 1 октет | 2 октет | 3 октет | 4 октет | |
|---|---|---|---|---|
| IP | 192 | 168 | 10 | 37 |
| Маска · /24 | 255 | 255 | 255 | 0 |
| IP И маска | 192 | 168 | 10 | 0 |
Адрес сети 192.168.10.0 — «имя» сети, устройству его не назначают.
Широковещательный адрес — последний адрес диапазона: узловая часть = все единицы. Берём адрес сети и заполняем узловые биты единицами.
| 1 октет | 2 октет | 3 октет | 4 октет | |
|---|---|---|---|---|
| IP | 192 | 168 | 10 | 37 |
| Маска · /24 | 255 | 255 | 255 | 0 |
| все узловые = 1 | 192 | 168 | 10 | 255 |
Broadcast 192.168.10.255 — один пакет получают все узлы этой сети; назначать его нельзя.
Всё, что между адресом сети и широковещательным, — это узловые адреса, которые можно назначать устройствам.
Ёмкость сети Q = 2N (N — узловых бит). Для /24 это Q = 2⁸ = 256. Назначать можно Q − 2 = 254 (минус адрес сети и минус broadcast).
Как распределять узловые адреса — решает владелец сети. Негласное правило: шлюзу дают первый или последний узловой адрес (.1 или .254) — инженер в незнакомой сети почти наверняка угадает.
интерфейс устройства уровня L3 (обычно маршрутизатора), через который трафик уходит из сети. «Свой» — вручается напрямую; «чужой» — отправляют на шлюз.
Устройство всегда знает о себе три параметра: свой IP-адрес, свою маску подсети и адрес шлюза по умолчанию. Их задают вручную или автоматически по DHCP. Посмотреть — командой ipconfig (Windows) или ifconfig (Linux).
Вторая цель маски — понять, в одной ли сети ПК1 и ПК2. IP И маска даёт адрес сети у каждого. Совпали → свой; где биты сети не совпали — подсвечиваем, это «чужой» через шлюз.
Смотри, кто обрабатывает кадр, а кто откидывает.
Под групповую рассылку зарезервирован 224.0.0.0 – 239.255.255.255. Внутри — зоны ответственности:
По умолчанию все узлы подписаны на 224.0.0.1 — «все узлы в подсети».
Групповой IP отображается в MAC 01-00-5E-xx-xx-xx: в младшие 23 бита MAC копируются младшие 23 бита IP.
239.193.1.15 → младшие 23 бита → 01-00-5E-41-01-0F. Коммутатор по этому MAC и рассылает группе.
Один пакет — всем узлам сети сразу. Узловая часть адреса — все единицы. Бывает двух видов:
узловая часть = все единицы. Для сети 192.168.10.0/24 это 192.168.10.255. Доставляется всем узлам этой сети; маршрутизатор может донести его до неё.
«всем в моей локальной сети». Не маршрутизируется — не выходит за пределы широковещательного домена. Так работают ARP-запрос и первичный запрос DHCP.
В IPv6 широковещательного адреса нет — его роль выполняет групповая рассылка (FF02::1).
Broadcast обходит весь домен. Маршрутизатор R1 — граница домена: он не пропускает broadcast дальше. Убери его — и один кадр разрастётся в шторм на обе сети.
| Диапазон | Маска | Где |
|---|---|---|
| 10.0.0.0/8 | 255.0.0.0 | крупные сети |
| 172.16.0.0/12 | 255.240.0.0 | средние |
| 192.168.0.0/16 | 255.255.0.0 | дом и офис |
Частные адреса в Интернете не маршрутизируются. На границе NAT подменяет частный адрес источника на публичный — как секретарь, ведущий переписку от своего имени.
| Диапазон | Назначение |
|---|---|
| 127.0.0.0/8 | loopback — проверка своего стека (127.0.0.1) |
| 169.254.0.0/16 | APIPA — сам себе адрес при отказе DHCP; не маршрутизируется |
| 192.0.2.0/24 | TEST-NET — адреса для обучения и примеров в документации |
IP-адрес попадает на устройство одним из двух способов — его либо задают вручную, либо выдают автоматически.
Администратор сам прописывает IP, маску и шлюз. Адрес не меняется. Нужен серверам, принтерам, маршрутизаторам — тем, кого всегда находят по одному адресу. Минус — ручная работа и риск конфликтов.
Устройство при включении само запрашивает адрес у DHCP-сервера и получает его из пула на время аренды (lease). Удобно для ПК, телефонов, гостей — настройка не нужна. Адрес может меняться.
DHCP (Dynamic Host Configuration Protocol) автоматически выдаёт узлу IP-адрес, маску, шлюз и DNS. Самый первый запрос узел шлёт широковещательно — своего адреса он ещё не знает.
Адресов IPv4 всего 2³² ≈ 4,3 млрд — не хватило (2019). Решение — IPv6: 128 бит.
128 бит записывают 32 hex-цифрами. Формат x:x:x:x:x:x:x:x, где каждый x — 4 hex-цифры (16 бит). Группу из 4 hex-цифр называют гекстет. Восемь гекстетов по 16 бит = 128 бит.
Полный адрес длинный — есть два правила сокращения, применяют по порядку.
Как и в IPv4, у IPv6 есть длина префикса вида /N — сколько старших бит отдано под сеть. Обычная сеть LAN — /64: первые 64 бита (4 гекстета) это префикс сети, последние 64 — идентификатор интерфейса.
Ведущие нули в каждом гекстете можно убрать: 0db8 → db8, 0000 → 0.
Одну цепочку из подряд идущих нулевых гекстетов заменяют на :: — но только один раз в адресе.
Тот же принцип: кадр от ПК1 идёт на коммутатор, дальше — по типу адреса.
unicast — одному узлу · multicast — группе подписчиков · anycast — ближайшему из одинаковых. Широковещания (broadcast) в IPv6 нет.
аналог публичного IPv4, маршрутизируется в Интернете
FE80::/10 — общение в пределах канала; обязателен у каждого интерфейса, создаётся сам
FC00::/7 — аналог частных IPv4, не маршрутизируется глобально
Префикс LAN обычно /64: 64 бита — сеть, 64 — идентификатор интерфейса. В IPv6 у интерфейса штатно несколько адресов сразу.
Локальный адрес канала позволяет общаться с соседями по тому же каналу — и только по нему, в пределах одной подсети. Пакеты с таким адресом не выходят за пределы канала: маршрутизатор не переносит их в другую подсеть. GUA устройству не обязателен, а link-local обязан быть у каждого IPv6-интерфейса: если не задан вручную — создаётся автоматически. Благодаря этому узлы находят друг друга и шлюз сразу, без настройки.
В IPv4 у интерфейса обычно один IP. В IPv6 штатно сосуществует несколько: обязательный link-local для «разговоров с соседями» и, при необходимости, GUA для выхода в большой мир.
Групповая рассылка (multicast) в IPv6 делится на два вида:
используется для передачи данных группе устройств. Хорошо известные адреса:
FF02::1 — все узлы,
FF02::2 — все маршрутизаторы.
пакеты с таким адресом предназначены только запрошенным узлам. Это точечный групповой адрес FF02::1:FFxx:xxxx — разбираем дальше.
Точечный групповой адрес: последние 24 бита копируются из unicast-адреса интерфейса.
IPv6 отказался от «крика на весь двор» в пользу аккуратного multicast: ко всем (FF02::1), к категории (FF02::2) или к одному соседу. Меньше шума — тот же принцип «контролируй домен».
Кликай ответ · листай кнопками
48-битный ID устройства в LAN, L2, hex, вшит
32-битный ID, L3, десятичный, маршрутизируется
128-битный преемник, 8 гекстетов
группа 8 бит; IPv4 = 4 октета
4 hex-цифры (16 бит) в IPv6
32-битное число, делит адрес на сеть/узел
/N — число сетевых битов
Q=2ᴺ; узлов Q=2ᴺ−2
первый адрес, узловая часть — нули
последний, узловая часть — единицы
L3-выход из сети, обычно .1/.254
1 только при двух единицах → адрес сети
одному узлу; источник всегда unicast
всем узлам; прямой и ограниченный 255.255.255.255
группе подписчиков; 224.0.0.0–239.255.255.255
IPv6: один адрес на многих, до ближайшего
область broadcast без маршрутизатора (L2)
10/8, 172.16/12, 192.168/16; RFC 1918
подмена частного адреса на публичный
самопроверка стека
сам себе адрес при отказе DHCP
автовыдача из пула на время аренды
граница сеть/узел в любом бите
обязателен, в пределах канала
Мы научились читать адрес и маску. В главе 6 — как резать сеть на подсети под нужный размер.