![](/user_photo/2706_HbeT2.jpg)
Введение в подсети
Зарегистрированные адреса сети, полученные от ISP, и диапазоны частных IP-адресов допускают организацию подсетей. Организаций подсетей — это создание на основе адреса сети адресов для отдельных, меньших по размеру сетей. Для создания подсети необходимо позаимствовать несколько битов из идентификатора хоста и отвести их под идентификатор подсети. Адреса подсетей создают путем приращения значения идентификатора подсети, а адреса для хостов в каждой подсети — путем приращения значения идентификатора хоста.
Из табл. 2-1 ясно, что организация подсетей — один из важнейших аспектов 1Р-адресации. Пространство IP-адресов включает всего лишь 126 адресов класса А, но каждый из них поддерживает более 16 миллионов хостов. В мире есть очень большие сети, но ни одна из них не насчитывает 16 миллионов компьютеров. Если организация получила бы в свое распоряжение адрес класса А, то никогда не смогла бы использовать его полностью, и большая часть адресов пропала бы зря, но к счастью, это проблема решается путем организации подсетей.
В стандартном IP-адресе класса А первые 8 бит составляют идентификатор сети и соответствуют первой четверти IP-адреса в десятичной нотации, например 10.0.0.0. Маска подсети у такого адреса — 255.0.0.0. Длина идентификатора хоста у адреса класса А составляет 24 бита. Это больше, чем требуется для большинства сетей, поэтому можно отвести часть из них для идентификатора подсети. Если вы решите выделить для этой цели 8 битов, структура адреса изменится, как показано на рис. 2-6. Маска подсети станет равна 255.255.0.0, поскольку ее основная функция — выделение идентификатора хоста в составе IP-адреса.
Рис. 2-6. Выделение идентификатора подсети в IP-адресе класса А
При использовании адреса класса А идентификаторы подсети и хоста в его составе изменяются независимо. Например, первой созданной подсети можно присвоить идентификатор 1, и ее адрес будет 10.1.0.0. После выделения идентификатора подсети для идентификатора хоста останется 16 бит. Это означает, что в такой подсети может быть 65 534 хостов (216— 2 = 65 534). Первый адрес хоста в этой подсети будет 10.1.0.1, вместе с маской подсети 255.255.0.0 его можно назначить первому компьютеру подсети. Следующий адрес будет 10.1.0.3 и так далее до 10.1.255.254, пока не будут заняты все 16 битов идентификатора хоста.
Для создания еще одной подсети достаточно снова увеличить значение идентификатора подсети до 10.2.0.0. В новой подсети будут IP-адреса с 10.2.0.1 по 10.2.255.254. Длина идентификатора подсети — 8 битов, поэтому в такой сети можно создать до 254 подсетей (28 — 2 = 254). Адрес последней подсети будет 10.254.0.0, а диапазон IP-адресов ее хостов - 10.254.0.1-10.254.255.254.
Разделение ip-адресов внутри октета
Когда границы идентификаторов сети, подсети и хоста соответствуют границам между октетами IP-адреса, организация подсетей не представляет особой сложности. Однако часто приходится использовать идентификаторы подсети, не кратные восьми. Например, адрес класса С не позволяет выделить 8 бит под идентификатор подсети, иначе не хватит разрядов для индикатора хоста. В этом случае придется использовать идентификатор подсети длиной меньше 8 битов, который в сочетании с идентификатором хоста образует десятичное число — последний октет IP-адреса.
Совет Есть программы, облегчающие расчет IP-адресов и масок подсетей для сетей со сложной структурой подсетей, например Wild Packets' IP Subnet Calculator (эта бесплатная программа доступна по адресу http://www.wildpackets.com/products/ipsubnetcalculator). Однако учтите, что во время сдачи экзаменов такими программами пользоваться нельзя, поэтому необходимо уметь рассчитывать адреса вручную.
Предположим, что сеть с адресом класса С (192.168.42.0) необходимо разбить на пять подсетей, по 25 компьютеров в каждой. В адресе класса С под идентификатор хоста отводится 8 битов, часть из них придется выделить под идентификатор подсети. Расчет по формуле 2х — 2 показывает, что идентификатор подсети длиной 3 бита позволяет создать 6 подсетей (23 — 2 = 6), таким образом, 5 битов можно оставить для идентификатора хоста. Это позволяет поместить в каждую подсеть до 30 хостов (25 — 2 = 30). Дальше начинаются сложности. Идентификаторы подсети и хоста необходимо увеличивать независимо, как и для адреса класса А, но при этом в сочетании они должны давать десятичное число, представляющее четвертый октет IP-адреса.
Вычисление IP-адресов в двоичном представлении
Чтобы лучше уяснить, как решить возникшую проблему, удобно представить IP-адрес в виде двоичного числа, например:
192 168 42 0
11000000 10101000 00101010 00000000
Первые три октета IP-адреса (192.168.42) являются идентификатором сети, поэтому они останутся неизменными во всех IP-адресах сети, изменяться будет лишь четвертый, последний октет. Присвоим первой подсети идентификатор 1, который в двоичной форме выглядит так:
001 00000
Теперь увеличим значение идентификатора хоста, присвоив первому хосту первой подсети идентификатор 1, и получим следующее двоичное значение:
001 00001
Чтобы получить из двоичных значений идентификаторов подсети и хоста 8-битное десятичное число, необходимо объединить их и преобразовать в десятичное число:
000100001 =33
Следовательно, IP-адрес первого компьютера первой подсети будет 192.168.42.33. Чтобы рассчитать адрес второго компьютера той же подсети, снова увеличим идентификатор хоста и преобразуем результат в десятичное число. 5-битный идентификатор хоста примет значение 2 (00010 в двоичной форме); после преобразования получим:
00100010 =34
Таким образом, у второго компьютера первой подсети будет IP-адрес 192.168.42.34. Можно продолжать увеличивать идентификатор хоста, пока не будет достигнуто максимальное значение 5-битного идентификатора:
00111110 =62
Пользуясь той же схемой рассуждений, рассчитываем IP-адрес последнего компьютера первой подсети — 192.168.42.62.
Чтобы создать вторую подсеть, необходимо увеличить 3-битный идентификатор с 001 до 010. Адреса первого и последнего компьютера второй подсети будут следующими:
01000001 = 65
01011110 = 94
Таким образом, во второй подсети окажутся IP-адреса с 192.168.42.65 по 192.168.42.94. Идентификатор подсети можно увеличивать и далее, до получения шестого, последнего адреса подсети, в которой будут хосты с идентификаторами от 11000001 (193) до 11011110 (222).
Следовательно, в последней подсети окажется диапазон адресов 192.168.42.193— 192.168.42.222.