Что такое IP-адрес
IP-адрес — это число, которое идентифицирует устройство в сети, чтобы другие устройства могли отправлять ему данные. Он работает как почтовый адрес: маршрутизаторы читают адрес назначения каждого пакета и пересылают его шаг за шагом, пока он не дойдёт до цели. Сегодня используются две версии: IPv4 (например, 192.0.2.10) и IPv6 (например, 2001:db8::10).
Форматы IPv4 и IPv6
Адрес IPv4 состоит из 32 бит. Он записывается как четыре десятичных числа от 0 до 255, разделённых точками, например 203.0.113.25. Каждое число — это один байт, который называют октетом. Всего возможно 232, то есть около 4,3 миллиарда адресов IPv4. Это меньше, чем число устройств в мире, поэтому появилась необходимость совместного использования адресов.
Адрес IPv6 состоит из 128 бит. Он записывается как восемь групп по четыре шестнадцатеричные цифры, разделённых двоеточиями: 2001:0db8:0000:0000:0000:0000:0000:0010. Сократить запись помогают два правила:
- Ведущие нули в группе можно убрать:
0db8превращается вdb8. - Одну последовательность групп, состоящих только из нулей, можно заменить на
::, но только один раз в адресе.
Поэтому приведённый выше адрес обычно записывают как 2001:db8::10. В IPv6 существует 2128 адресов, и этого достаточно, чтобы каждая сеть могла получить очень большой блок.
Публичные и частные адреса
Публичный адрес уникален в интернете и доступен откуда угодно (если его не блокирует межсетевой экран). Частный адрес действует только внутри локальной сети. Многие домашние и офисные сети одновременно используют одни и те же частные диапазоны, потому что такие адреса никогда не маршрутизируются в публичном интернете.
Стандарт RFC 1918 определяет три частных диапазона IPv4:
| Диапазон | CIDR | Адресов |
|---|---|---|
| 10.0.0.0 – 10.255.255.255 | 10.0.0.0/8 | 16,777,216 |
| 172.16.0.0 – 172.31.255.255 | 172.16.0.0/12 | 1,048,576 |
| 192.168.0.0 – 192.168.255.255 | 192.168.0.0/16 | 65,536 |
Другие специальные диапазоны IPv4, которые вам встретятся:
- Loopback, 127.0.0.0/8: устройство обращается само к себе. Адрес
127.0.0.1называется localhost. В IPv6 адрес loopback —::1. - Link-local, 169.254.0.0/16: устройство назначает себе такой адрес, если запросило адрес по DHCP и не получило ответа. Если вы видите
169.254.x.x, скорее всего, DHCP не работает. В IPv6 для link-local адресов используетсяfe80::/10, и такой адрес есть на каждом интерфейсе IPv6. - Carrier-grade NAT (CGNAT), 100.64.0.0/10: общий диапазон (RFC 6598), который интернет-провайдеры используют между своими клиентами и собственными устройствами NAT. Если WAN-адрес вашего маршрутизатора находится в этом диапазоне, у вас нет настоящего публичного адреса IPv4.
- Диапазоны для документации:
192.0.2.0/24,198.51.100.0/24и203.0.113.0/24(а для IPv6 —2001:db8::/32) зарезервированы для примеров, подобных тем, что приведены в этой статье.
В IPv6 уникальные локальные адреса из диапазона fc00::/7 (на практике fd00::/8) соответствуют частным диапазонам IPv4. Глобальные индивидуальные (unicast) адреса сейчас начинаются с 2000::/3.
Как NAT позволяет делить один публичный адрес
Трансляция сетевых адресов (NAT) позволяет множеству частных устройств использовать один публичный адрес IPv4. Когда ваш ноутбук с адресом 192.168.1.20 открывает сайт, маршрутизатор подменяет адрес источника на свой публичный адрес и запоминает соединение в таблице, различая соединения по номерам портов. Когда приходит ответ, маршрутизатор выполняет обратную трансляцию и передаёт его ноутбуку.
У NAT есть побочный эффект: внешние узлы не могут сами инициировать соединение с устройством за NAT, пока вы не настроите проброс портов. Это нельзя считать полноценной защитой, но из-за этого сервис, запущенный дома, по умолчанию недоступен извне. При CGNAT провайдер выполняет второй NAT, поэтому проброс портов на вашем собственном маршрутизаторе не поможет.
Статические и динамические адреса
Динамический адрес назначается автоматически, обычно по DHCP, и со временем может меняться. Большинство домашних подключений к интернету и большинство устройств в локальной сети используют динамические адреса. Статический адрес задаётся вручную или закрепляется за одним устройством, поэтому он никогда не меняется. Серверам, принтерам и сетевому оборудованию, как правило, нужны статические адреса, потому что другие системы рассчитывают найти их всегда в одном и том же месте.
Как узнать свой IP-адрес
Нужно различать два адреса: частный адрес вашего устройства и публичный адрес, который видят сайты. Публичный адрес показывает наш инструмент «Мой IP-адрес». Он же показывает, подключаетесь ли вы по IPv4 или IPv6.
Чтобы узнать частный адрес своего устройства:
- Windows: выполните
ipconfigв командной строке. - macOS: выполните
ipconfig getifaddr en0в Терминале (Wi-Fi обычно имеет имяen0). - Linux: выполните
ip addr.
Если адрес на странице состояния вашего маршрутизатора отличается от того, что показывает онлайн-инструмент, значит, маршрутизатор находится за NAT или CGNAT либо вы используете VPN или прокси.
Основы внедрения IPv6
IPv6 создавался как замена IPv4, потому что старое адресное пространство исчерпано. На практике оба протокола работают параллельно — это называется dual stack. Многие крупные сети, мобильные операторы и поставщики контента поддерживают IPv6, но множество небольших сайтов и корпоративных сетей по-прежнему используют только IPv4, поэтому нельзя считать, что IPv6 работает везде.
Несколько практических замечаний:
- IPv6 обычно не требует NAT, потому что каждое устройство может иметь глобальный адрес. Поэтому межсетевой экран очень важен.
- Типичная домашняя сеть получает блок
/56или/64, а каждая локальная сеть использует/64. Подробности смотрите в нашем руководстве по подсетям. - Домен публикует свой адрес IPv6 в записи AAAA, как объясняется в статье как работает DNS.
Что дальше
Если нужно разделить сеть на более мелкие части или проверить, сколько узлов вмещает диапазон, воспользуйтесь калькулятором подсетей. Чтобы понять, что означают числа после косой черты, прочитайте статью о маске подсети и CIDR.