Один «вшит» в железо навсегда, второй ему кто-то назначает. На первый взгляд — избыточность. На деле — два разных инструмента для двух задач, и убрать любой нельзя.
Посылка другу. На коробке две подписи: адрес дома («куда») и ФИО («кому»). Почта ведёт коробку по адресу, а у двери человек сверяет ФИО.
Не знаем, где живёт человек — пришлось бы обходить всех: «а вы не Петров?». У почты нет способа понять по имени, куда вести коробку.
Даже зная адрес дома, посылка может не найти адресата: человек мог переехать. Имя остаётся при нём независимо от квартиры.
Адрес нужен, чтобы довести пакет до нужной сети. Имя нужно, чтобы на месте вручить пакет именно тому устройству. Поэтому используются оба вида адресации одновременно.
Убери одну подпись — и доставка ломается. Нужны оба.
уникальный числовой идентификатор размером 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-м октете, узлы в трёх; B — 2+2; C — 3 октета сеть, 1 октет узлы. Смотришь на первый октет — знаешь класс.
| Класс | 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. Двигай слайдер (префикс 0…32) — граница «сеть / узел» едет по адресу. Тёмное — сеть, оранжевое — узлы.
Сколько адресов вмещает сеть? Это определяется числом свободных (узловых) битов:
где 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: ПК, телефон, принтер, интерфейс маршрутизатора. Узловая часть адреса — это его номер внутри сети.
Подсеть — часть большой сети, «нарезанная» под свою группу узлов. Каждая подсеть — со своим адресом сети и своим широковещательным адресом.
первый адрес диапазона, узловая часть — все нули. «Имя» сети, интерфейсу не назначается.
всё между ними — их можно назначать устройствам.
последний адрес, узловая часть — все единицы. Сообщение сразу всем.
Сеть 192.168.10.0/24 — это 256 адресов подряд. Шагай по ним кнопкой и смотри, какой адрес чем занят.
Как распределять узловые адреса — решает владелец сети. Негласное правило: шлюзу дают первый или последний узловой адрес (.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 — адреса для обучения и примеров в документации |
Преподаватель пишет на доске сеть и говорит: «делим». Берём биты из узловой части под номер подсети — двигай ручку и смотри, как меняются подсети и узлы.
Адресов 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 бит.
Полный адрес длинный — есть два правила сокращения, применяют по порядку.
Ведущие нули в каждом гекстете можно убрать: 0db8 → db8, 0000 → 0.
Одну цепочку из подряд идущих нулевых гекстетов заменяют на :: — но только один раз в адресе.
Тот же принцип: кадр от ПК1 идёт на коммутатор, дальше — по типу адреса.
аналог публичного 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 — как резать сеть на подсети под нужный размер.