Понимание основ создания адресов TCP/IP и организации подсетей

Эта статья предназначена как общее введение в понятия сетей с межсетевым протоколом (IP) и организации подсетей. В конце статьи приводится глоссарий.

Применяется к: Windows 10 — все выпуски
Оригинальный номер базы знаний: 164015

Сводка

При настройке протокола TCP/IP на компьютере Windows для параметров конфигурации TCP/IP требуются:

  • IP-адрес
  • Маска подсети
  • Шлюз по умолчанию

Чтобы правильно настроить TCP/IP, необходимо понять, как создаются адреса для сетей TCP/IP и как они разделяются на сети и подсети.

Успех TCP/IP как сетевого протокола Интернета во многом объясняется его способностью подключать сети разных размеров и системы разных типов. Эти сети произвольно подразделяются на три основных класса (наряду с несколькими другими), которые имеют заранее определенные размеры. Каждая из них может быть разделена системными администраторами на более мелкие подсети. Маска подсети используется для разделения IP-адреса на две части. Одна часть определяет хост (компьютер), другая — сеть, к которой она принадлежит. Чтобы лучше понять, как работают IP-адреса и маски подсети, взгляните на IP-адрес и узнайте, как он организован.

IP-адреса: сети и хосты

IP-адрес — это 32-битный номер. Он уникально идентифицирует хост (компьютер или другое устройство, например, принтер или маршрутизатор) в сети TCP/IP.

IP-адреса обычно выражаются в десятичном представлении с точками, в виде четырех номеров, разделенных точками, например, 192.168.123.132. Чтобы понять, как маски подсети используются для различия между хостами, сетями и подсетями, изучите IP-адрес в двоичном представлении.

Например, пунктирный десятичный IP-адрес 192.168.123.132 является (в двоичной нотации) 32-разрядным числом 11000000101010000111101110000100. Это число может быть трудно понять, поэтому разделите его на четыре части из восьми двоичных символов.

Эти 8-битные разделы называются октетами. IP-адрес из этого примера будет иметь вид 11000000.10101000.01111011.10000100. Это число имеет немного больше смысла, поэтому для большинства применений преобразуем двоичный адрес в десятичное представление с точками (192.168.123.132). Десятичные числа, разделенные точками, — это октеты, преобразованные из двоичного представления в десятичное.

Чтобы глобальная сеть TCP/IP (WAN) эффективно работала в качестве коллекции сетей, маршрутизаторы, которые передают пакеты данных между сетями, не знают точного расположения хоста, для которого предназначен пакет информации. Маршрутизаторы знают только о том, какая сеть является членом хоста, и используют сведения, хранящиеся в таблице маршрутов, для определения того, как получить пакет в сеть хоста назначения. После доставки пакета в сеть назначения пакет доставляется соответствующему хосту.

Чтобы этот процесс работал, IP-адрес состоит из двух частей. Первая часть IP-адреса используется в качестве сетевого адреса, последняя — как адрес хоста. Если взять пример адреса 192.168.123.132 и разделить его на эти две части, вы получите сеть 192.168.123. с хостом .132 или 192.168.123.0 — адрес сети. 0.0.0.132 — адрес хоста.

Маска подсети

Второй элемент, необходимый для работы TCP/IP, — это маска подсети. Маска подсети используется протоколом TCP/IP для определения того, находится ли хост в локальной подсети или в удаленной сети.

В протоколе TCP/IP части IP-адреса, которые используются в качестве сетевых адресов и адресов хоста, не исправляются. Если у вас нет дополнительных сведений, то сетевые адреса и адреса хоста выше не могут быть определены. Эти сведения предоставляются в другом 32-битовом номере, который называется маской подсети. В этом примере маска подсети — 255.255.255.0. Неочевидно, что означает это число, если вы не знаете, что 255 в двоичном представлении равно 11111111. Таким образом, маска подсети будет иметь вид 11111111.11111111.11111111.00000000.

Если выстроить IP-адрес и маску подсети вместе, можно разделить сетевую часть адреса сети и адрес хоста:

110000000.10101000.01111011.10000100 — IP-адрес (192.168.123.132)
11111111.11111111.11111111.00000000 — маска подсети (255.255.255.0)

Первые 24 бита (количество единиц в маске подсети) идентифицируются как адрес сети. Последние 8 битов (количество оставшихся нулей в маске подсети) идентифицируются как адрес узла. Таким образом, получаются следующие адреса:

11000000.10101000.01111011.00000000 — адрес сети (192.168.123.0)
00000000.00000000.00000000.10000100 — адрес узла (000.000.000.132)

Из данного примера с использованием маски подсети 255.255.255.0 видно, что код сети 192.168.123.0, а адрес узла 0.0.0.132. Когда пакет с конечным адресом 192.168.123.132 доставляется в сеть 192.168.123.0 (из локальной подсети или удаленной сети), компьютер получит его из сети и обработает.

Почти все десятичные маски подсети преобразовываются в двоичные числа, представленные единицами слева и нолями справа. Вот еще некоторые распространенные маски подсети:

Десятичный Binary
255.255.255.192 1111111.11111111.1111111.11000000
255.255.255.224 1111111.11111111.1111111.11100000

Internet RFC 1878 (доступен на InterNIC—Публичная информация об услугах регистрации доменных имен в сети Интернет) описывает действующие подсети и маски подсетей, используемые в сетевых протоколах TCP/IP.

Классы сетей

Интернет-адреса распределяются организацией InterNIC, которая администрирует Интернет. Эти IP-адреса распределены по классам. Наиболее распространены классы A, B и C. Классы D и E существуют, но не используются конечными пользователями. Каждый из классов адресов имеет свою маску подсети по умолчанию. Определить класс IP-адреса можно по его первому октету. Ниже описаны интернет-адреса классов A, B и C с примером адреса для каждого класса.

  • Сети класса A по умолчанию используют маску подсети 255.0.0.0 и имеют значения от 0 до 127 в первом октете. Адрес 10.52.36.11 является адресом класса A. В первом октете число 10, которое находится между 1 и 126 включительно.

  • Сети класса B по умолчанию используют маску подсети 255.255.0.0 и имеют в первом октете значение от 128 до 191. Адрес 172.16.52.63 является адресом класса B. В первом октете число 172, которое находится между 128 и 191 включительно.

  • Сети класса C по умолчанию используют маску подсети 255.255.255.0 и имеют в первом октете значение от 192 до 223. Адрес 192.168.123.132 является адресом класса C. В первом октете число 192, которое находится между 192 и 223 включительно.

В некоторых случаях значения маски подсети по умолчанию не соответствуют потребностям организации по какой-либо из следующих причин:

  • Физическая топология сети
  • Количество сетей (или узлов) не соответствует ограничениям маски подсети по умолчанию.

В следующем разделе описано распределение сетей с помощью масок подсети.

Образование подсетей

TCP/IP-сеть класса A, B или C может еще быть разбита на подсети системным администратором. Образование подсетей может быть необходимо при согласовании логической структуры адреса Интернета (абстрактный мир IP-адресов и подсетей) с физическими сетями, используемыми в реальном мире.

Возможно, системный администратор, которому был выделен блок IP-адресов, администрирует сети, организованные не соответствующим для них образом. Например, имеется глобальная сеть с 150 узлами в трех сетях (в разных городах), соединенных маршрутизатором TCP/IP. У каждой из этих трех сетей 50 узлов. Пользователю выделяется сеть класса C 192.168.123.0. (Пример, на самом деле диапазон, к которому принадлежит этот адрес, не выделяется в Интернете.) Это значит, что адреса с 192.168.123.1 по 192.168.123.254 можно использовать для своих 150 узлов.

Адреса 192.168.123.0 и 192.168.123.255 нельзя использовать в данном примере, так как двоичные адреса с составляющей узла из одних единиц и нолей недопустимы. Адрес, состоящий из нулей, недопустим, поскольку он используется для определения сети без указания узла. Адрес с числом 255 (в двоичном обозначении адрес узла, состоящий из одних единиц) используется для доставки сообщения на каждый узел сети. Достаточно запомнить, что первый и последний адрес любой сети и подсети нельзя присваивать отдельному узлу.

Теперь осталось дать IP-адреса 254 узлам. Это несложно, если все 150 компьютеров являются частью одной сети. Тем не менее 150 ваших компьютеров находятся в трех отдельных физических сетях. Вместо того, чтобы запрашивать дополнительные блоки адресов для каждой сети, вы делите сеть на подсети, которые позволяют использовать один блок адресов в нескольких физических сетях.

В этом случае вы делите сеть на четыре подсети, используя маску подсети, которая делает сетевой адрес больше, а возможный диапазон адресов хостов — меньше. Другими словами, вы "заимствуете" некоторые биты, которые используются для адреса хоста, и используете их для сетевой части адреса. Маска подсети 255.255.255.192 предоставляет четыре сети по 62 хостов каждая. Это работает, так как в двоичном представлении 255.255.255.192 — это то же самое, что и 11111111.1111111.110000000. Первые две цифры последнего октета становятся сетевыми адресами, поэтому вы получаете дополнительные сети 00000000 (0), 010000000 (64), 10000000 (128) и 110000000 (192). (Некоторые администраторы будут использовать только две подсети, использующие 255.255.255.192 в качестве маски подсети. Дополнительные сведения по этой теме см. в статье RFC 1878.) В этих четырех сетях для адресов узлов можно использовать последние шесть двоичных цифр.

Используя маску подсети 255.255.255.192, ваша сеть 192.168.123.0 становится четырьмя сетями 192.168.123.0, 192.168.123.64, 192.168.123.128 и 192.168.123.192. Эти четыре сети будут иметь такие допустимые адреса хостов:

192.168.123.1-62 192.168.123.65-126 192.168.123.129-190 192.168.123.193-254

Помните, что двоичные адреса хостов со всеми единицами или всеми нулями являются недействительными, поэтому нельзя использовать адреса с последним октетом 0, 63, 64, 127, 128, 191, 192 или 255.

Вы можете увидеть, как это работает, взглянув на два адреса хостов, 192.168.123.71 и 192.168.123.133. Если используется маска подсети класса C по умолчанию 255.255.255.0, оба адреса находятся в сети 192.168.123.0. Однако, если вы используете маску подсети 255.255.255.192, они находятся в разных сетях; 192.168.123.71 — в сети 192.168.123.64, 192.168.123.133 — в сети 192.168.123.128.

Шлюзы по умолчанию

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

Когда хост пытается взаимодействовать с другим устройством с помощью TCP/IP, он выполняет процесс сравнения с помощью определенной маски подсети и IP-адреса назначения по сравнению с маской подсети и собственным IP-адресом. В результате этого сравнения компьютеру сообщается, является ли назначение локальным хостом или удаленным хостом.

Если в результате этого процесса назначение определяется как локальный хост, компьютер отправляет пакет в локальную подсеть. Если в результате сравнения назначение определяется как удаленный хост, компьютер перенаправит пакет в шлюз по умолчанию, определенный в свойствах TCP/IP. После этого маршрутизатор несет ответственность за перенаправление пакета в соответствующую подсеть.

Устранение неполадок

Проблемы сети TCP/IP часто возникают из-за неправильной конфигурации трех основных записей в свойствах TCP/IP компьютера. Понимая, как ошибки в конфигурации TCP/IP влияют на сетевые операции, можно решить множество распространенных проблем TCP/IP.

Неправильная маска подсети. Если сеть использует другую маску подсети, чем маска по умолчанию для своего класса адресов, и клиент по-прежнему настроен с помощью маски подсети по умолчанию для класса адресов, связь не будет работать с некоторыми соседними сетями, но не с удаленными. Например, если вы создаете четыре подсети (например, в примере подсетей), но используете неправильную маску подсети 255.255.255.0 в конфигурации TCP/IP, хосты не смогут определить, что некоторые компьютеры находятся в других подсетях, чем их собственные. В этой ситуации пакеты, предназначенные для хостов различных физических сетей, которые являются частью одного и того же адреса класса C, не будут отправлены в шлюз по умолчанию для доставки. Распространенным симптомом этой проблемы является то, что компьютер может связываться с хостами, которые находятся в локальной сети, и может общаться со всеми удаленными сетями, за исключением тех сетей, которые находятся поблизости и имеют один и тот же адрес класса A, B или C. Чтобы устранить эту проблему, просто введите правильную маску подсети в конфигурацию TCP/IP для этого хоста.

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

Неправильный шлюз по умолчанию. Компьютер, настроенный с неправильным шлюзом по умолчанию, может связываться с хостами в своем сетевом сегменте. Но он не сможет связываться с хостами в некоторых или всех удаленных сетях. Хост может связываться с некоторыми удаленными сетями, но не с другими, если верны следующие условия:

  • Одна физическая сеть имеет несколько маршрутизаторов.
  • Неправильный маршрутизатор настроен как шлюз по умолчанию.

Эта проблема распространена, если в организации есть маршрутизатор к внутренней сети TCP/IP и другой маршрутизатор, подключенный к Интернету.

Ссылки

Два популярных источника о TCP/IP:

  • "TCP/IP Illustrated, Volume 1: The Protocols", Richard Stevens, Addison Wesley, 1994
  • "Internetworking with TCP/IP, Volume 1: Principles, Protocols, and Architecture," Douglas E. Comer, Prentice Hall, 1995

Рекомендуется, чтобы системный администратор, отвечающий за сети TCP/IP, имел хотя бы один из этих источников.

Глоссарий

  • Адрес трансляции — IP-адрес с частью хоста, которая полностью состоит из единиц.

  • Хост — компьютер или другое устройство в сети TCP/IP.

  • Интернет — глобальная коллекция сетей, подключенных друг к другу и имеющих общий диапазон IP-адресов.

  • InterNIC — организация, ответственная за администрирование IP-адресов в Интернете.

  • IP — сетевой протокол, используемый для отправки сетевых пакетов через сеть TCP/IP или Интернет.

  • IP-адрес — уникальный 32-битный адрес для хоста в сети TCP/IP или в Интернете.

  • Сеть — существует два варианта использования термина "сеть" в этой статье. Первый вариант — это группа компьютеров в одном сегменте физической сети. Второй вариант — это диапазон адресов IP-сети, выделенный системным администратором.

  • Сетевой адрес — IP-адрес с частью хоста, которая полностью состоит из нулей.

  • Октет — 8-битный номер, 4 из которых составляют 32-битный IP-адрес. Они имеют диапазон 00000000-11111111, соответствующий десятичным значениям 0–255.

  • Пакет — единица данных, передаваемая через сеть TCP/IP или глобальную сеть.

  • RFC (Запрос на комментарий) — документ, использующийся для определения стандартов в Интернете.

  • Маршрутизатор — устройство, которое передает сетевой трафик между различными IP-сетями.

  • Маска подсети — 32-битный номер, используемый для разграничения сетевой части и части хоста IP-адреса.

  • Подсеть — это сеть меньшего размера, созданная путем деления более крупной сети на равные части.

  • TCP/IP — в широком значении, набор протоколов, стандартов и утилит, обычно используемых в Интернете и крупных сетях.

  • Глобальная сеть (WAN) — большая сеть, которая является коллекцией сетей меньшего размера, разделенных маршрутизаторами. Интернет — пример большой сети WAN.