Урок 2. IP-адрес, маска, шлюз и DHCP
У каждого устройства в сети есть 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.0— адрес самой сети, устройству его не дают;192.168.1.255— широковещательный адрес: отправленное на него получат все устройства сети;192.168.1.1…192.168.1.254— 254 адреса для устройств.
Маска нужна компьютеру, чтобы решить, куда отправить пакет. Адрес получателя из своей сети — пакет идёт к нему напрямую. Из чужой сети — пакет отдаётся шлюзу. Для компьютера 192.168.1.25/24 адрес 192.168.1.40 — свой, а 192.168.2.5 и адрес любого сайта — чужие.
Проверить себя можно программой на Python: модуль ipaddress из стандартной библиотеки знает правила адресов.
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). Когда устройство подключается к сети, происходит короткий разговор:
- Устройство спрашивает всю сеть: есть ли здесь сервер DHCP? (Discover)
- Сервер — обычно роутер — предлагает свободный адрес. (Offer)
- Устройство просит этот адрес себе. (Request)
- Сервер подтверждает и сообщает маску, шлюз и адреса DNS-серверов. (Acknowledge)
Адрес выдаётся в аренду — на время, например на сутки. До конца аренды устройство само её продлевает. Если устройство долго не появлялось в сети, его адрес может достаться другому.
Роутер раздаёт адреса из диапазона (пула), например 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-адресов.
Коротко
- Адрес IPv4 — четыре числа от 0 до 255; в нём номер сети и номер устройства.
- Маска
255.255.255.0(она же/24) — сеть из 256 адресов, из них 254 — для устройств. - Шлюз — адрес роутера; без него нет интернета, но локальная сеть работает.
10.x.x.x,172.16–31.x.x,192.168.x.x— частные адреса,127.0.0.1— сам компьютер,169.254.x.x— DHCP не ответил.- DHCP выдаёт адрес, маску, шлюз и DNS в аренду; резервирование закрепляет адрес за устройством.