Три диапазона на всех
Не всем устройствам хватило бы публичных IPv4-адресов, поэтому для внутренних сетей выделили три диапазона, описанных в стандарте RFC 1918: 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16. Первый содержит более шестнадцати миллионов адресов, второй — около миллиона, третий — 65 536.
Обратите внимание на второй: он охватывает только вторые октеты от 16 до 31, поэтому адрес вида 172.32.1.1 уже публичный. Это самая частая ошибка при ручной настройке.
Почему их не видно из интернета
Эти адреса в глобальной сети не уникальны: одинаковые 192.168.0.1 стоят у миллионов домашних роутеров. Провайдеры не маршрутизируют их между собой, и пакет с таким адресом получателя, попав в магистральную сеть, будет отброшен.
Связь с интернетом обеспечивает трансляция адресов: роутер подменяет внутренний адрес своим внешним, а в обратную сторону разворачивает ответы. Как это устроено, объясняется на странице про NAT. Поэтому устройство в частной сети может свободно выходить наружу, а вот подключиться к нему снаружи без настройки нельзя.
Где встречается на практике: Частные диапазоны IP
Домашние роутеры чаще всего выдают адреса из 192.168.0.0/24 или 192.168.1.0/24. Крупные организации предпочитают 10.0.0.0/8, потому что его удобно делить на подсети по отделам и площадкам. Диапазон 172.16.0.0/12 популярен в контейнерных и облачных средах: сети Docker по умолчанию часто выбирают из него.
Есть и близкий, но отдельный блок 100.64.0.0/10, зарезервированный для операторской трансляции адресов. Он не относится к частным в смысле RFC 1918, и о нём подробнее в материале про CGNAT.
В небольших офисах нередко встречаются и промежуточные варианты, например 10.10.0.0/16 для одного филиала и 10.20.0.0/16 для другого, что упрощает будущее объединение сетей без пересечений.
Когда диапазоны конфликтуют
Проблема возникает при объединении сетей. Если у дома и у офиса одинаковые 192.168.1.0/24, а вы настроили защищённое соединение между ними, маршрутизатор не понимает, куда отправлять пакет на 192.168.1.10: в локальную сеть или в туннель. То же происходит, когда контейнерная сеть пересекается с домашней.
Решение — заранее выбирать нетипичные подсети, например 192.168.87.0/24 вместо самой популярной, либо менять адресацию одной из сторон. Для IPv6 аналог частных адресов — диапазон fc00::/7.
Как определить, какой у вас
Откройте сведения о подключении: в Windows это ipconfig, в Linux — ip a. Найдите адрес IPv4 и сравните с диапазонами выше. Затем посмотрите внешний адрес на любом сервисе проверки IP: он отличается от внутреннего.
Если адрес на WAN-интерфейсе роутера тоже частный или из блока 100.64.0.0/10, значит, перед вами ещё один уровень трансляции у провайдера, и подключаться извне к домашним устройствам напрямую не получится.
Заодно проверьте маску подсети: для домашней сети чаще всего это 255.255.255.0, то есть 254 доступных адреса, чего вполне достаточно для десятков устройств.
Частные адреса и безопасность
Частный адрес нередко считают защитой: раз устройство не видно из интернета, значит, оно в безопасности. Отчасти это верно, ведь входящее соединение без проброса до него просто не дойдёт, но полагаться на это как на единственную меру нельзя. Вредоносная программа на одном компьютере сети свободно общается с остальными частными адресами, а исходящие соединения наружу разрешены.
Поэтому в организациях частные диапазоны делят на сегменты и разделяют правилами: серверы, рабочие станции, гости и оборудование умного офиса находятся в разных подсетях. Дома сходную идею реализует гостевая сеть, которая изолирована от основной.
Ещё одно следствие: знание диапазона помогает читать журналы и уведомления. Если в сообщении об ошибке указан адрес 10.x или 192.168.x, вы понимаете, что речь о внутреннем узле, а не о сайте в интернете. Если же во внешнем сервисе неожиданно появился такой адрес, значит, сервер увидел запрос через промежуточную трансляцию и записал внутренний адрес.
И последнее: частные адреса не дают анонимности во внешней сети, потому что трансляция подменяет их адресом провайдера, а провайдер связывает этот адрес с вами.