Структура адреса
IPv4-адрес - это 32-битное число, которое для удобства записывают как четыре
десятичных байта через точку: 192.168.1.10. Это просто
0xC0A8010A или 11000000.10101000.00000001.00001010 в бинарном виде.
Префикс сети (CIDR) - сколько левых битов считаются «сетевой частью»:
192.168.1.0/24 означает что первые 24 бита (192.168.1) фиксированы для
всех адресов в этой сети, последние 8 - диапазон host'ов.
Сколько хостов в /N
| префикс | сетевая маска | host-диапазон | примеры |
|---|---|---|---|
| /8 | 255.0.0.0 | 16 777 214 | 10.0.0.0/8 (RFC1918) |
| /16 | 255.255.0.0 | 65 534 | 172.16.0.0/16 |
| /24 | 255.255.255.0 | 254 | 192.168.1.0/24 (домашняя сеть) |
| /29 | 255.255.255.248 | 6 | мини-точка-точка для 4-х устройств |
| /30 | 255.255.255.252 | 2 | классика для p2p-link'ов |
| /31 | 255.255.255.254 | 2 (RFC 3021) | оптимизированный p2p, без зарезервированных |
| /32 | 255.255.255.255 | 1 | один конкретный адрес (loopback, host route) |
«-2» в N-2 - потому что network-address (всё нули в host-части) и broadcast (все единицы) обычно зарезервированы.
Зарезервированные диапазоны (RFC 1918 + others)
| диапазон | для чего |
|---|---|
10.0.0.0/8 | приватные сети (большие) |
172.16.0.0/12 | приватные (Docker дефолт) |
192.168.0.0/16 | приватные (домашние роутеры) |
127.0.0.0/8 | loopback (локальные интерфейсы) |
169.254.0.0/16 | link-local (когда DHCP не отдал IP) |
224.0.0.0/4 | multicast |
0.0.0.0/0 | «любой адрес» - используется как default route |
Адреса из приватных диапазонов не маршрутизируются в интернет - поэтому для выхода наружу требуется nat.
Где увидеть на машине
ip -4 addr # все IPv4-адреса всех интерфейсов
ip -4 -br addr # компактно: имя/state/IP/24
hostname -I # все IP-адреса хоста (без mask'и)
Адрес может быть:
- scope global - публично (или приватно через NAT) видим
- scope host - только loopback (например 127.0.0.1)
- scope link - только в пределах одного broadcast-домена