При наличии в сети большого числа географически удаленных друг от друга компьютеров имеет смысл разделить большую сеть на более мелкие сети, связанные маршрутизаторами. В результате можно получить следующие преимущества:
Таковы положительные стороны выделения подсетей. Однако, если NIC присвоит организации, имеющей множество сетей, только один сетевой адрес, могут возникнуть проблемы. Первые разработчики протокола IP предполагали, что Internet будет состоять только из десятков сетей и сотен хост-узлов. В их схеме адресации использовался сетевой адрес для каждой физической сети.
Такая схема и непредвиденный рост Internet вызвали ряд проблем. Одна из них заключается в том, что единственный сетевой адрес может обозначать множество физических сетей. Любая организация может запросить индивидуальные сетевые адреса для всех своих физических сетей, и если бы такие адреса присваивались, их могло бы не хватить для всех.
Другая проблема связана с маршрутизаторами. Если бы каждый маршрутизатор Internet должен был знать все существующие физические сети, таблицы маршрутизации стали бы практически необозримыми. Затраты на управление такими таблицами превысили бы допустимые пределы, а общие физические затраты маршрутизации (циклы CPU, пространство диска и т.д.) оказались бы непомерно большими. Помимо всего прочего, мог опасно возрасти сетевой трафик, так как маршрутизаторы постоянно обмениваются между собой информацией о маршрутизации. Некоторые из этих проблем отражены на рис.3.1.
Выделение подсети - свойство программного обеспечения TCP/IP, позволяющее разделить единственную сеть IP на более мелкие логические подсети путем использования основной части адреса IP для создания адреса подсети.
Выделение подсетей - порождение новых сетей, акт создания маленьких подсетей из одной большой родительской сети. В результате организация, имеющая единственный сетевой адрес, может улучить адрес подсети для каждой физической сети. Каждая подсеть остается частью общего адреса и в то же время имеет дополнительный идентификатор, который обозначает ее индивидуальный номер и называется номером подсети.
Такой метод решает многие проблемы адресации. Во-первых, организация, имеющая множество физических сетей и единственный сетевой номер, может решить проблему путем создания подсетей.Во-вторых, поскольку выделение подсети позволяет сгруппировать множество физических сетей, буется меньшее число вхождений в таблицу маршрутизации, что значительно снижает расходы сетевых ресурсов. И наконец, все это, вместе взятое, значительно повышает эффективность работы сети.
Предположим, что компания ХХХ имеет в Internet единственный сетевой номер 130.57 и множество отделов, решающих различные задачи. Поскольку администраторы ХХХ применили выделение подсетей, то при поступлении пакетов в ее сеть маршрутизаторы используют адреса подсетей для направления пакетов в нужную внутреннюю подсеть. Таким образом,что мера сложности сети компании ХХХ может быть скрыта от остальной части Internet. Подобный метод действий получил название сокрытия информации.
Сокрытие информации упрощает работу маршрутизаторов внутри сети ХХХ. В отсутствие подсетей каждый маршрутизатор ХХХ должен был бы знать адреса всех компьютеров в сети, что привело бы к дополнительным расходам и снижению производительности. При наличии подсетей маршрутизатор нуждается только и следующей информации:
Выделение подсети реализуется приписыванием адреса подсети каждому компьютеру данной физической сети. Например, на рис.3.2 каждый компьютер подсети 1 имеет адрес подсети 1. Далее мы рассмотрим, как адрес подсети включается в остальную часть адреса IP.
Сетевую часть адреса IP можно изменить. Все компьютеры отдельной сети должны иметь один и тот же сетевой адрес. Из табл.3.3 следует, что все компьютеры компании ХХХ имеют сетевой адрес 130.57. Он остается постоянным. При выделении подсетей можно манипулировать только адресами хост-узлов. Согласно схеме адресации часть адреса хост-узла переназначается в качестве адреса подсети. Битовые позиции "похищаются" из адреса хост-узла и используются для идентификатора подсети. На табл.3.3 показано, как адресу IP можно придать адрес подсети.
Поскольку сеть компании ХХХ относится к классу В, первые два байта относятся к сетевому адресу и совместно используются всеми компьютерами сети независимо от того, к какой подсети они принадлежат. Третий байт каждого компьютера данной подсети должен иметь вид 0000 0001. Четвертый байт, адрес хост-узла, является уникальным номером. На рис.3.4 показано, как применяются адреса сети и подсети. Такие методы - концептуальный и практический - применимы при создании каждой подсети данной сети.
Адрес класса В | Адрес класса В с адресом подсети | |||
---|---|---|---|---|
Сетевой адрес | Адрес узла | Сетевой адрес | Подсеть | Адрес узла |
130.57 | 1.56 | 130.57 | .1 | .56 |
Для того чтобы схема адресации подсети работала, каждый компьютер сети должен знать, какая часть адреса хост-узла используется для адреса подсети, что достигается назначением каждому компьютеру маски подсети.
Для этого создается 32-битовая маска подсети из нулей и единиц. Единицы обозначают позиции, относящиеся к адресам сети или подсети, нули - позиции, относящиеся к адресу хост-узла. Пример маски показан на табл.3.5.
Маску подсети можно обозначить с помощью десятичных эквивалентов двоичных форм. Двоичная форма 1111 1111 эквивалентна десятичной 225.
Код маски подсети | ||
---|---|---|
Сетевой адрес | Подсеть | Хост-узел |
1111 1111.1111 1111. | .1111 1111. | .0000 0000 |
В примере компании ХХХ первые два байта маски подсети - единицы, так как сеть ХХХ относится к классу В с форматом Net.Net.Node.Node. Третий байт, обычно являющийся частью адреса хост-узла, здесь представляет собой адрес подсети. Поэтому в маске подсети эти битовые позиции представлены единицами. Последний байт этого примера является уникальным адресом хост-узла.
Не всем сетям нужны подсети,а это значит,что нет необходимости применять маски подсетей.В этих случаях говорят,что сети имеют маски подсетей,принятые по умолчанию,другими словами,не имеют адреса подсети.Принятые по умолчанию маски подсетей для сетей различных классов приведены в табл.3.6.
Класс | Формат | Принятая по умолчанию маска подсети |
---|---|---|
A | Net.Node.Node.Node | 255 . 0 . 0 . 0 |
B | Net.Net.Node.Node | 255 . 255 . 0 . 0 |
C | Net.Net.Net.Node | 255 . 255 . 255 . 0 |
После того как создана маска подсети и она назначена каждому компьютеру, программное обеспечение IP, просматривая адрес IP через маску подсети, определяет адрес подсети.
Используя весь третий байт адреса класса В в качестве адреса подсети, легко устанавливать и определять адрес подсети. Например, если ХХХ хочет иметь подсеть 6, третий байт всех компьютеров этой подсети будет выглядеть как 0000 0110.
Третий байт адресов класса В позволяет создать достаточное количество доступных адресов подсетей - 28, или 256. Поскольку номера, состоящие из одних нулей или одних единиц, зарезервированы, компания ХХХ может иметь всего 254 подсети с 254 хост-узлами в каждой.
Хотя в официальной спецификации IP применение нуля в качестве адреса подсети ограничено, в некоторых продуктах это ограничение не учитывается, в частности в реализации Novell TCP/IP для NetWare 4 и в программном обеспечении Novell Multiprotocol Router (MPR). В результате появляется дополнительный номер подсети. Если, например, маска подсети имеет 8 бит, общее число подсетей будет не 254, а 255.
Допущение нулей в качестве адреса подсети дает новый адрес подсети, однако нулевой адрес не следует применять, если данное соглашение действует не для каждого программного обеспечения вашей сети.
Максимальное число подсетей и максимальное число хост-узлов в одной сети определяются по общим формулам:
2(число маскированных бит в маске подсети)-2 = максимальное ЧИСЛО ПОДСЕТЕЙ;
2(число немаскированных бит в маске полсети)-2 = максимальное ЧИСЛО ХОСТ-УЗЛОВ В ОДНОЙ ПОДСЕТИ.
В этих формулах словом "маскированные" обозначаются битовые позиции 1, а "немаскированные"- позиции 0. В табл.3.7 показан пример применения данных формул.
Результатом использования целого байта в адресе узла в качестве адреса подсети является уменьшение возможного числа адресов узлов для каждой подсети. Без подсети адрес класса В допускает 65 534 возможные уникальные комбинации, которые можно применять в качестве адресов узлов. При использовании целого байта в адресе узла для адреса подсети для адресов хост-узлов остается только один байт, что позволяет определить только 254 возможных адреса хост-узлов. Если в каждой подсети имеется более 254 компьютеров, возникает проблема. Для ее решения требуется сократить маску подсети, удлиняя адреса хост-узлов. Побочным эффектом такого решения является уменьшение числа возможных подсетей.
Сеть | Подсеть | ||
---|---|---|---|
Маскированные | Не маскированные | ||
Маска | 1111 1111.1111 1111. | 1110 0000. | .0000 0000 |
Десятичный вид маски | 255 . 255 | . 224 . | 0 |
Пусть нам требуется максимум 14 подсетей. В этом случае для адресов подсети не нужен целый байт каждого адреса хост-узла.Получить 14 различных адресов подсети можно,использовав четыре бита в каждом адресе хост-узла(24-2=14).В относящейся к хост-узлу части адреса остается 4094 открытых для использования бита(212-2=4094).Значит,каждая из подсетей может иметь всего 4094 адреса хост-узлов и столько же компьютеров.