Что такое публичные и приватные адреса?

IPv4 адреса бывают двух типов: публичные (public) и приватные (private). Первые так же часто называют белыми, или внешними, а вторые – серыми или внутренними. В чём между ними разница?

Публичные адреса являются уникальными и не могут повторяться нигде и никогда, что контролируется провайдером, который вам их дал в аренду, а ему, в свою очередь дал их в аренду другой провайдер или организация IANA, следящая за распределением адресов. А приватные, напротив, могут использоваться кем угодно и повторяться сколько угодно раз. То есть, приватные адреса могут повторяться и не быть уникальными, но какой ценой? На них ничего нельзя отправить из интернета. Никто в интернете не знает маршрута к вашим приватным адресам, а так же к возможно тем же самым адресам, использующимся у вашего соседа, а раз никто не знает, то какая разница, повторяются они или нет? Иными словами, за пределами локальной сети приватные адреса не маршрутизируются.

Приватных адресов не так много – зачем делать много, если их можно повторять сколько угодно раз (в разных локальных сетях, конечно). Всего три диапазона приватных адресов:

  1. 10.0.0.0/8 (то есть всё что начинается на 10.);
  2. 172.16.0.0/12 (то есть с 172.16.0.0 по 172.31.255.255 включительно);
  3. 192.168.0.0/16 (то есть со 192.168.0.0 по 192.168.255.255 включительно).

Естественно, вам вряд ли понадобятся в чистом виде сети таких больших размеров, поэтому приватные адреса обычно разбивают на подсети с помощью более длинного префикса, например, из третьего диапазона можно получить 255 приватных подсетей по 254 хоста в каждой.

Следующий важный вопрос – допустим, мы выдали сотрудникам в офисе много приватных адресов, но как же они будут сидеть в интернете? Они будут отправлять запросы в сеть, а ответы на эти запросы должны будут возвращаться на обратные адреса, которые в данном случае приватные. Так как в интернете никто не знает маршрутов к приватным адресам, то это не возможно. Как правило такая задача решается одним из двух способов:

  1. В сети используется прокси-сервер. Этот сервер имеет интерфейс во внешней сети и может иметь так же интерфейс в приватной. Пользователи обращаются к нему, а не к сайтам непосредственно. Сервер «свой», поэтому он знает про свои приватные адреса. Он получает с них запросы, и для каждого запроса обращается в интернет со своего публичного адреса. Когда он получит ответ, то перешлёт его во внутрь на приватный адрес спрашивавшего.
  2. На пограничном маршрутизаторе можно настроить трансляцию адресов (NAT). И тогда при прохождении пакета из локальной сети в интернет, адрес отправителя будет меняться: вместо никому неизвестного приватного будет вписываться публичный адрес из некого пула адресов, либо публичный адрес самого маршрутизатора (тут возможны разные реализации). На этот адрес и будут приходить ответы из интернета. В ответах будет происходить обратная замена: публичный адрес получателя будет заменяться на исходный приватный адрес, после чего пакет возвращается клиенту, который делал запрос. Подробнее о настройке NATна маршрутизаторе можно прочесть в статье «Трансляция сетевых адресов – описание и настройка на маршрутизаторе».

Добавить комментарий