🧮 IP-адресация
IPv4 и IPv6, маски, CIDR, частные диапазоны, подсети и быстрые расчёты.
Шпаргалки · Администрирование · #ip #ipv4 #ipv6 #subnet #network
IPv4
32 бита, 4 октета: 192.168.1.10. Состоит из сети и хоста; граница задаётся маской.
Маски и CIDR
| CIDR | Маска | Адресов | Хостов |
|---|---|---|---|
| /8 | 255.0.0.0 | 16 777 216 | 16 777 214 |
| /16 | 255.255.0.0 | 65 536 | 65 534 |
| /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 |
| /31 | 255.255.255.254 | 2 | 2 (точка-точка) |
| /32 | 255.255.255.255 | 1 | один хост |
Формула: адресов 2^(32 − префикс); хостов минус 2 (адрес сети и широковещательный).
Пример расчёта
192.168.10.77/26: блок 64 адреса. Сеть 192.168.10.64, широковещательный 192.168.10.127, хосты .65–.126, маска 255.255.255.192.
Специальные диапазоны
| Диапазон | Назначение |
|---|---|
10.0.0.0/8 |
частный |
172.16.0.0/12 |
частный (172.16–172.31) |
192.168.0.0/16 |
частный |
127.0.0.0/8 |
loopback (127.0.0.1 localhost) |
169.254.0.0/16 |
автоадрес без DHCP (link-local) |
100.64.0.0/10 |
CGNAT провайдеров |
224.0.0.0/4 |
multicast |
0.0.0.0 |
«любой» / не задан |
255.255.255.255 |
широковещательный |
Частные адреса не маршрутизируются в интернете: выход через NAT.
Классы (историческое деление)
A: 1–126 (/8), B: 128–191 (/16), C: 192–223 (/24). Сейчас используют CIDR.
Шлюз, DNS, DHCP
- Шлюз (gateway) роутер для выхода за пределы подсети.
- DNS переводит имена в адреса.
- DHCP автоматически выдаёт IP, маску, шлюз и DNS.
- Статические адреса для серверов и сетевого оборудования.
IPv6
128 бит, записывается шестнадцатеричными группами: 2001:db8::1. Пропуск нулей :: один раз в адресе.
| Адрес | Значение |
|---|---|
::1 |
loopback |
fe80::/10 |
link-local |
fc00::/7 |
уникальные локальные (аналог частных) |
2000::/3 |
глобальные |
ff00::/8 |
multicast |
Обычная подсеть: /64. NAT не нужен, адресов хватает каждому устройству.
Быстрые расчёты
ipcalc 192.168.10.77/26 # Linux
python3 -c "import ipaddress as i; n=i.ip_network('192.168.10.0/26'); print(n.netmask, n.num_addresses, list(n.hosts())[:2])"
Get-NetIPAddress | Select InterfaceAlias, IPAddress, PrefixLength
Проектирование подсетей
Закладывайте запас (рост в 2–3 раза), группируйте по функциям (серверы, пользователи, гости, IoT), не пересекайте диапазоны офисов при планировании VPN.