Глиф Учебники

Урок 2. IP-адрес, маска, шлюз и DHCP

Курс «Компьютерные сети» · урок 2 из 9 · 5 минут чтения

У каждого устройства в сети есть IP-адрес — номер, по которому ему доставляют данные. В этом уроке — как устроен адрес IPv4, что такое маска и шлюз и откуда устройство вообще узнаёт свой адрес.

Как устроен адрес IPv4

Адрес IPv4 — четыре числа от 0 до 255 через точку: 192.168.1.25. Каждое число занимает 8 бит, весь адрес — 32 бита, а всего таких адресов около 4,3 миллиарда. На все устройства мира этого давно не хватает: отсюда NAT (урок NAT и проброс портов) и новый протокол IPv6 (урок IPv6: что это и зачем).

Адрес состоит из двух частей: номер сети и номер устройства в этой сети. Так в телефонном номере есть код города и номер абонента. Где проходит граница между частями, говорит маска.

Маска и запись /24

Маска подсети чаще всего равна 255.255.255.0. Она значит: первые три числа адреса — номер сети, последнее — номер устройства. Та же маска коротко записывается через косую черту: 192.168.1.25/24. Число 24 — сколько бит из 32 отдано под номер сети, и здесь это как раз три числа по 8 бит.

В сети 192.168.1.0/24:

номер сети номер устройства адрес 192 168 1 25 маска 255 255 255 0 коротко /24 3 × 8 = 24 бита 8 бит Сеть 192.168.1.0/24 — 256 адресов .0 .1 … .254 .255 адрес сети 254 адреса для устройств широковещательный
Маска 255.255.255.0, она же /24, отдаёт три первых числа адреса под номер сети, а последнее — под номер устройства; из 256 адресов сети 254 достаются устройствам.

Маска нужна компьютеру, чтобы решить, куда отправить пакет. Адрес получателя из своей сети — пакет идёт к нему напрямую. Из чужой сети — пакет отдаётся шлюзу. Для компьютера 192.168.1.25/24 адрес 192.168.1.40 — свой, а 192.168.2.5 и адрес любого сайта — чужие.

Своя сеть 192.168.1.0/24 Чужие сети напрямую через шлюз компьютер 192.168.1.25 принтер 192.168.1.40 шлюз — роутер 192.168.1.1 192.168.2.5 любой сайт
Компьютер 192.168.1.25 отправляет пакет принтеру из своей сети напрямую, а пакеты в чужие сети и на сайты — через шлюз 192.168.1.1.

Проверить себя можно программой на Python: модуль ipaddress из стандартной библиотеки знает правила адресов.

Python
import ipaddress

home = ipaddress.ip_interface("192.168.1.25/24")
print(home.network)
print(home.netmask)
print(home.network.broadcast_address)
print(ipaddress.ip_address("192.168.1.40") in home.network)
print(ipaddress.ip_address("192.168.2.5") in home.network)
Вывод
192.168.1.0/24
255.255.255.0
192.168.1.255
True
False

Другие маски и их размеры — в справке Что такое маска подсети 255.255.255.0.

Шлюз

Шлюз (основной шлюз, gateway) — адрес роутера в вашей сети. Через него идёт всё, что адресовано за пределы локальной сети. Дома шлюз обычно 192.168.1.1 или 192.168.0.1, но бывает и другой — его показывает ipconfig в Windows (строка «Основной шлюз») и ip route в Linux (адрес после via).

Шлюз всегда в той же сети, что и компьютер. Без шлюза или с неверным шлюзом локальная сеть работает: принтер печатает, общие папки открываются, — а интернета нет.

Особые адреса

АдресаЧто это
10.0.0.0 – 10.255.255.255частные (локальные) адреса
172.16.0.0 – 172.31.255.255частные адреса
192.168.0.0 – 192.168.255.255частные адреса, чаще всего дома
127.0.0.1сам компьютер (localhost)
169.254.x.xадрес, который устройство придумало само, не дождавшись DHCP
100.64.0.0 – 100.127.255.255общие адреса у провайдера, CGNAT (урок NAT и проброс портов)

Частные адреса действуют только внутри локальных сетей и не передаются по интернету. Поэтому у соседа может быть точно такой же 192.168.1.25, и это никому не мешает. Остальные адреса — публичные (их ещё называют «белыми»): каждый из них во всём интернете один.

DHCP: откуда устройство берёт адрес

Набирать адрес на каждом телефоне вручную не нужно: это делает DHCP (Dynamic Host Configuration Protocol). Когда устройство подключается к сети, происходит короткий разговор:

  1. Устройство спрашивает всю сеть: есть ли здесь сервер DHCP? (Discover)
  2. Сервер — обычно роутер — предлагает свободный адрес. (Offer)
  3. Устройство просит этот адрес себе. (Request)
  4. Сервер подтверждает и сообщает маску, шлюз и адреса DNS-серверов. (Acknowledge)
устройство адреса пока нет роутер сервер DHCP 1 Discover — всем в сети: есть ли сервер DHCP? 2 Offer — свободный адрес 192.168.1.120 3 Request — просит этот адрес себе 4 Acknowledge — адрес в аренду, маска, шлюз, DNS
Четыре шага DHCP между устройством и роутером: Discover, Offer, Request и Acknowledge — после них у устройства есть адрес, маска, шлюз и DNS.

Адрес выдаётся в аренду — на время, например на сутки. До конца аренды устройство само её продлевает. Если устройство долго не появлялось в сети, его адрес может достаться другому.

Роутер раздаёт адреса из диапазона (пула), например 192.168.1.100 – 192.168.1.199. Адреса вне диапазона остаются для ручной настройки.

Резервирование адреса — запись в роутере: «устройству с таким-то MAC-адресом выдавать всегда один и тот же адрес». Устройство по-прежнему получает настройки по DHCP, но адрес у него не меняется. Это самый простой способ дать постоянный адрес принтеру, домашнему серверу или камере. Разница между ручным и автоматическим адресом — в справке Статический и динамический IP-адрес.

В одной сети должен быть один сервер DHCP. Если в сеть подключить второй роутер с включённым DHCP через гнездо LAN, устройства будут получать настройки то от одного, то от другого, и связь начнёт пропадать.

Посмотреть и обновить адрес

В Windows полные сведения, вместе с адресом DHCP-сервера и сроком аренды, показывает команда:

Командная строка
ipconfig /all

Отпустить адрес и запросить новый у роутера:

Командная строка
ipconfig /release
ipconfig /renew

В Linux адреса и шлюз показывают ip -br -4 addr и ip route; пометка proto dhcp в маршруте значит, что настройки получены по DHCP. Подробности для своей системы — в темах Windows и Ubuntu.

Задавая адрес вручную, берите его вне диапазона DHCP роутера и проверьте, что он не занят. Два устройства с одним адресом мешают друг другу: связь у обоих то появляется, то пропадает, а Windows сообщает о конфликте IP-адресов.

Коротко

Проверьте себя

1. Компьютер с адресом 192.168.1.25/24 отправляет пакет на 192.168.2.5. Куда пакет пойдёт сначала?
2. Сколько адресов для устройств в сети с маской 255.255.255.0?
3. У компьютера адрес 169.254.17.3. Что это значит?
4. Как проще всего дать принтеру постоянный адрес, не настраивая сам принтер?