Частный IP-адрес
Частный IP-адрес[1][2] (англ. private IP address), также называемый внутренним, внутрисетевым или локальным — IP-адрес, принадлежащий к специальному диапазону, не используемому в сети Интернет. Такие адреса предназначены для применения в локальных сетях, распределение таких адресов никем не контролируется. В связи с дефицитом свободных IP-адресов провайдеры всё чаще раздают своим абонентам именно внутрисетевые адреса, а не внешние, при этом они все выходят в интернет через один внешний IP (так называемый «белый IP»).
Иногда частные адреса называют неанонсированными, внешние (так называемые «белые IP») — анонсированными.
Частные диапазоны IP-адресов
Следующие диапазоны определены IANA как адреса, выделенные локальным сетям:
- 10.0.0.0 — 10.255.255.255 (маска подсети для бесклассовой (CIDR) адресации: 255.0.0.0 или /8);
- 100.64.0.0 — 100.127.255.255 (маска подсети 255.192.0.0 или /10). Данная подсеть рекомендована согласно RFC 6598 для использования в качестве адресов для CGN (Carrier-Grade NAT);
- 172.16.0.0 — 172.31.255.255 (маска подсети: 255.240.0.0 или /12);
- 192.168.0.0 — 192.168.255.255 (маска подсети: 255.255.0.0 или /16).
Также для петлевых интерфейсов (не используется для обмена между узлами сети) зарезервирован диапазон 127.0.0.0 — 127.255.255.255 (маска подсети: 255.0.0.0 или /8)[3].
- fc00::/7 — 7-битный префикс адреса[4].
Понятия частных и внешних, статических и динамических адресов
Существует тенденция путать понятия частного IP-адреса и динамического. Ошибочно полагать, что все адреса, выделяемые провайдером динамически — частные, а фиксированные адреса (закреплённые статически) — внешние. Динамический адрес присваивается узлу сети для каждой сессии соединения (аренда адреса, отсутствие постоянно закрепленного за узлом адреса). Динамически могут присваиваться как частные (приватные), так и внешние (публичные) адреса.
Как машины с частными адресами выходят в Интернет
Пакеты, идущие с внутренних IP-адресов или на них, магистральные маршрутизаторы не пропускают. То есть внутрисетевые машины, если не принимать никаких мер, изолированы от Интернета. Тем не менее, есть ряд технологий, которые позволяют выходить таким машинам в Интернет.
Сервер-посредник
Многие из старых интернет-служб (электронная почта, IRC, Usenet) специально спроектированы для машин, которые не имеют прямого выхода в Интернет. Для этого в самих протоколах предусмотрена эстафетная передача информации. Рассмотрим её на примере электронной почты.
Корпоративный почтовый сервер имеет два IP-адреса: внутренний и внешний. Для отправки почты пользователь по протоколу SMTP связывается с сервером. Сервер от своего имени выходит в интернет и переправляет почту дальше по цепочке. На этот же сервер по протоколу SMTP поступает входящая корреспонденция. Чтобы проверить ящик, пользователи соединяются с сервером по протоколу POP3.
Для Всемирной паутины была придумана технология «сервер-посредник» (или по-английски «прокси-сервер»). Машина с частным адресом обращается к прокси-серверу и посылает на него команды HTTP. Прокси-сервер связывается с веб-сервером от своего имени.
Такая конструкция удовлетворила важнейшие нужды внутрисетевых пользователей. Однако минусом является сложная архитектура сервера-посредника: ведь он должен поддерживать множество разных протоколов. А по протоколам, которые посредник не поддерживает или которые не рассчитаны на эстафетную передачу (например, сетевые игры), выход в интернет невозможен. Одни программы (ICQ, Skype, P2P-часть протокола BitTorrent) проходят сквозь прокси-серверы, «заворачивая» свой протокол в HTTP-пакеты, другие (Subversion, связь с трекером в протоколе BitTorrent) — изначально реализуют свой протокол поверх HTTP. Но это всё полумеры. Следующая технология, NAT, позволила внутрисетевым машинам выходить в интернет по любому прикладному протоколу.
Прокси-серверы работают на прикладном уровне и потому могут накладывать цензуру сайтов, кэшировать страницы для экономии трафика — поэтому прокси-серверы применяются в корпоративных сетях и поныне (даже если другие протоколы работают через NAT). Кроме того, серверы-посредники применяются для особых задач, на которые NAT не способен (например, для передачи файлов в мессенджерах, когда обе машины за NAT’ом).
Трансляция сетевых адресов (NAT)
Технология была задокументирована в 1994 году. Маршрутизатор, реализующий NAT (англ. Network Address Translation), пропуская идущий из локальной сети пакет, заменяет адрес отправителя своим. Когда маршрутизатор получает ответ от сервера, он по таблице открытых соединений восстанавливает адресата и ретранслирует ему ответ.
Через NAT внутрисетевой компьютер может налаживать связь с любым сервером Интернета по любому прикладному протоколу. Но у NAT есть и недостатки. С машиной с частным IP-адресом связаться можно только изнутри локальной сети. С одной стороны, это делает локальную сеть недоступной для многих атак извне. С другой стороны, в некоторых службах Интернета (одноранговых сетях, сетевых играх, передаче файлов в мессенджерах) это создаёт проблемы: если у одного из компьютеров IP-адрес частный, а у другого внешний, инициатором соединения будет клиент с частным IP; если частные у обоих — прямой обмен между ними затруднён. Впрочем, NAT-маршрутизатор может установить перенаправление портов: когда по определённому порту связываются с маршрутизатором, он передаёт пакеты одной из машин. Обычно порты перенаправляют вручную, настройкой маршрутизатора, но существуют и механизмы автоматического перенаправления портов: UPnP и STUN.
Некоторые протоколы (например, FTP в активном режиме) требуют возможности установления соединения от сервера к клиенту. В этих случаях маршрутизатору приходится вмешиваться в протокол на прикладном уровне (технология «шлюз прикладного уровня»).
Сетевой туннель
Туннель — технология, когда пакеты сетевого уровня «заворачиваются» в пакеты более высоких уровней (например, транспортного). Это позволяет наладить виртуальную локальную сеть поверх сети совсем другого устройства. Существует много технологий туннелирования (PPPoE, VPN, Hamachi и другие), со своими областями применения. В частности, туннели могут:
- Выходить в интернет только тогда, когда пользователь явно этого желает. Такие «непостоянные» соединения были актуальны в домосетях начала 2000-x годов, когда локальный трафик был дешёвый или бесплатный, внешний — дорог. Чтобы «внутренние» ресурсы не расходовали дорогой трафик, на клиентских машинах приходилось корректировать таблицу маршрутизации.
- Обеспечивать «прямую» связь внутрисетевых машин друг с другом (например, для сетевых игр), когда прямой путь невозможен. Разумеется, такая «прямая» связь происходит через сервер-посредник.
- Наладить «локальную» сеть для ПО, которое работает на широковещательных пакетах — например, для тех же игр.
- Входить через интернет в корпоративную локальную сеть.
См. также
Примечания
- ↑ Джеффри Шапиро, Джим Бойс и др. Windows Server 2003. Библия пользователя. — К.: Диалектика, 2004. — С. 513. — 1216 с. — (Библия пользователя). — ISBN 5-8459-0653-9.
- ↑ Рэнд Моримото, Кентон Гардиньери др. Microsoft Windows Server 2003. Полное руководство. — 2-е издание. — М.: Вильямс, 2006. — С. 123. — 1312 с. — (Полное руководство). — ISBN 5-8459-0776-4.
- ↑ RFC1918 — Address Allocation for Private Internets . Дата обращения: 28 ноября 2008. Архивировано 23 сентября 2011 года.
- ↑ RFC4193 — Unique Local IPv6 Unicast Addresses . Дата обращения: 25 января 2012. Архивировано 1 августа 2010 года.