Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛБ No.7.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
513.02 Кб
Скачать
  1. Маска подсети

Традиционная схема деления IP-адреса на номер сети и номер узла основана на понятии класса, который определяется значениями нескольких первых бит адреса. Именно потому, что первый байт адреса 185.23.44.206 попадает в диапазон 128-191, мы можем сказать, что этот адрес относится к классу В, а значит, номером сети являются первые два байта, дополненные двумя нулевыми байтами - 185.23.0.0, а номером узла - 0.0.44.206.

А что если использовать какой-либо другой признак, с помощью которого можно было ,бы более гибко устанавливать границу между номером сети и номером узла? В качестве такого признака сейчас получили широкое распространение маски.

Маска - это число, которое используется в паре с IP-адресом; двоичная запись маски содержит единицы в тех разрядах, которые должны в IP-адресе интерпретироваться как номер сети. Поскольку номер сети является цельной частью адреса, единицы в маске также должны представлять непрерывную последовательность.

Для стандартных классов сетей маски имеют следующие значения:

  • класс А - 11111111. 00000000. 00000000. 00000000 (255.0.0.0);

  • класс В - 11111111. 11111111. 00000000. 00000000 (255.255.0.0);

  • класс С-11111111.11111111.11111111.00000000 (255.255.255.0).

ПРИМЕЧАНИЕ Для записи масок используются и другие форматы, например, удобно интерпретировать значение маски, записанной в шестнадцатеричном коде: FF.FF.00.00 - маска для адресов класса В. Часто встречается и такое обозначение 185.23.44.206/16 - эта запись говорит о том, что маска для этого адреса содержит 16 единиц или что в указанном IP-адресе под номер сети отведено 16 двоичных разрядов.

Снабжая каждый IP-адрес маской, можно отказаться от понятий классов адресов и сделать более гибкой систему адресации. Например, если рассмотренный выше адрес 185.23.44.206 ассоциировать с маской 255.255.255.0, то номером сети будет 185.23.44.0, а не 185.23.0.0, как это определено системой классов.

В масках количество единиц в последовательности, определяющей границу номера сети, не обязательно должно быть кратным 8, чтобы повторять деление адреса на байты. Пусть, например, для IP-адреса 129.64.134.5 указана маска 255.255.128.0, то есть в двоичном виде:

  • IP-адрес 129.64.134.5 - 10000001.01000000.10000110.00000101

  • Маска 255.255.128.0 - 11111111.11111111.10000000.00000000

Если игнорировать маску, то в соответствии с системой классов адрес 129.64.134.5 относится к классу В, а значит, номером сети являются первые 2 байта - 129.64.0.0, а номером узла - 0.0.134.5.

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

10000001.01000000.10000000.00000000 или в десятичной форме записи - номер сети 129.64.128.0, а номер узла 0.0.6.5.

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

Маска это 32-битное значение, которое содержит биты, установленные в единицу для идентификатора сети и идентификатора подсети, и биты, установленные в 0 для идентификатора хоста. На рисунке 4 показано формирование маски подсети для двух различных разделений адреса класса В. В верхнем примере происходит разделение на хосте noao.edu, как показано на рисунке 3, где идентификатор подсети и идентификатор хоста занимают 8 бит. В нижнем примере показано разделение адреса класса В, при этом идентификатор подсети занимает 10 бит, а идентификатор хоста - 6 бит.

Рисунок 4. Пример масок подсетей для двух различных подсетей класса B.

 

Несмотря на то, что IP адреса обычно пишутся в десятичном виде с точками, маски подсети, как правило, пишутся в шестнадцатиричном виде, особенно если разделение происходит не побайтно, а побитно.

После того как хост получил свой IP адрес и маску подсети, он может определить, предназначена ли IP датаграмма для (1) хоста в его собственной подсети, (2) хосту в другой подсети его собственной сети, или (3) хосту в другой сети. Зная собственный IP адрес, можно определить, к какому классу он относится: А, В или С (по старшим битам), также можно определить, где проведена граница между идентификатором сети и идентификатором подсети. По маске подсети можно определить где проведена граница между идентификатором подсети и идентификатором хоста.

Пример

Представьте себе адрес хоста 140.252.1.1 (адрес класса В), и маску подсети - 255.255.255.0 (8 бит на идентификатор подсети и 8 бит на идентификатор хоста).

Если IP адрес назначения 140.252.4.5, мы знаем, что идентификатор сети класса В тот же самый (140.252), однако идентификатор подсети другой (1 и 4). На рисунке 5 показано, как происходит сравнение двух IP адресов с использованием маски подсети.

Если IP адрес назначения 140.252.1.22, то идентификатор сети класса В тот же самый (140.252), и идентификатор подсети также тот же самый (1). Однако идентификатор хоста другой.

Если IP адрес назначения 192.43.235.6 (адрес класса С), идентификатор сети другой. С этим адресом не может быть произведено дальнейшее сравнение.

Рисунок 5. Сравнение двух подсетей класса В, использующих маски подсети.

 

В процессе IP маршрутизации, сравнения, подобные этому, делаются все время с использованием двух IP адресов и маски подсети.

Специальные IP адреса

В процессе описания подсетей может встретится семь специальных IP адресов (см. таблицу 3). Здесь 0 означает поле, состоящее из всех бит, установленных в ноль, -1 означает поле из бит, установленных в единицы, а netid (идентификатор сети), subnetid (идентификатор подсети) и hostid (идентификатор хоста) обозначает соответствующие поля, которые установлены не в единицы и не в нули. Пустая колонка идентификатора подсети означает, что адреса не могут быть разбиты на подсети.

 Таблица 3. Специальные IP адреса. 

IP адрес

Может появляться как

Описание

 

ID сети

ID подсети

ID хоста

источник?

назначение?

0

 

0

OK

никогда

этот хост в этой сети (см. ограничения ниже)

0

 

hostid

OK

никогда

указывает хост в этой сети (см. ограничения ниже)

127

 

любой

OK

OK

адрес loopback

-1

 

-1

никогда

OK

ограниченный широковещательный запрос (никогда не перенаправляется)

netid

 

-1

никогда

OK

широковещательный запрос, направляемый в сеть на netid

netid

subnetid

-1

никогда

OK

широковещательный запрос, направляемый в подсеть на netid, subnetid

netid

-1

-1

никогда

OK

широковещательный запрос, направляемый во все подсети на netid

Первые две записи содержат специальные адреса источников, затем адрес интерфейса loopback, и последние четыре записи - это широковещательные адреса.

Первые два пункта в таблице с идентификатором сети, равным 0, могут существовать только как адрес источника во время процедуры инициализации, когда хост определяет свой собственный IP адрес, например, с использованием протокола BOOTP.

Пример подсети

Рисунок 6. Настройки хостов и сетей в описываемой подсети.

 

Проблема заключается в том, что имеем две раздельные сети внутри подсети 13: Ethernet и канал точка-точка (выделенный канал SLIP). (Каналы точка-точка всегда привносят некоторые проблемы, так как каждый конец требует собственный IP адрес.) В будущем здесь может появиться больше хостов и сетей, однако недостаточно для того, чтобы выделять другой номер подсети. Мы принимаем решение расширить идентификатор подсети с 8 до 11 бит, и уменьшить идентификатор хоста с 8 до 5 бит. Это называется подсетями с переменной длиной, так как большинство сетей внутри сети 140.252 используют маску подсети длиной 8 бит, тогда как наша сеть использует маску подсети длиной 11 бит.

 На рисунке 7 показана структура IP адреса, используемая в подсети. Первые 8 бит в 11-битном идентификаторе подсети всегда равны 13 в данной подсети. Для оставшихся трех бит идентификатора подсети мы используем двоичное 001 для Ethernet и 010 для SLIP канала точка-точка.

Рисунок 7. Использование подсетей переменной длины.

 

Маска подсети с переменной длиной не создаст проблем для других хостов и маршрутизаторов в сети 140.252, так как все датаграммы, направляемые в подсеть 140.252.13, приходят на маршрутизатор sun (IP адрес 140.252.1.29. рисунок 15) и если sun знает об 11-битном идентификаторе подсети для хостов в подсети 13, все будет нормально.

Маска подсети для всех интерфейсов в подсети 140.252.13 установлена в 255.255.255.224 или 0xffffffe0. Это означает, что крайние правые 5 битов отводятся на идентификатор хоста, а 27 бит слева оставлены на идентификатор сети и идентификатор подсети.

В таблице 4 показано распределение IP адресов и масок подсетей для интерфейсов, приведенных на рисунке 6.

 Таблица 4. IP адреса описываемой подсети.

Хост

IP адрес

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

ID сети/ ID подсети

ID хоста

Комментарии

sun

140.252.1.29

255.255.255.0

140.252.1.

29

в подсети 1

 

140.252.13.33

255.255.255.244

140.252.13.32

1

Ethernet, который рассматривается в качестве примера

svr4

140.252.13.34

255.255.255.244

140.252.13.32

2

 

bsdi

140.252.13.35

255.255.255.244

140.252.13.32

3

Ethernet

 

140.252.13.66

255.255.255.244

140.252.13.64

2

точка-точка

slip

140.252.13.65

255.255.255.244

140.252.13.64

1

точка-точка

 

140.252.13.63

255.255.255.224

140.252.13.32

31

широковещательный адрес в Ethernet

 

Первая колонка помечена как "хост" ("Host"), однако и sun и bsdi также функционируют как маршрутизаторы, так как они имеют несколько интерфейсов и перенаправляют пакеты с одного интерфейса на другой.

В последней строке таблицы показано, что широковещательный адрес сети Ethernet на рисунке 3.10 установлен 140.252.13.63: он формируется из идентификатора подсети Ethernet (140.252.13.32) и младших 5 бит на рисунке 7, установленных в единицу (16+8+4+2+1=31).

Пример расчета маски подсети:

Дано: IP сети 130.0.0.0 В сети может находится 100 подсетей и 511 хостов.

Определить тип сети, рассчитать маску подсети и определить IP следующих компьютеров :

1 подсеть 1 компьютер..

26 подсеть 140 компьютер.

65 подсеть 500 компьютер.

Решение:

1. Данная сеть относится к типу В, т.к. в двоичном представлении адресация сети имеет представление 10000010.Так как у нас сеть типа В то на адресацию подсети и хоста у нас выделяется только последние 2 байта адреса(т.к. первые два байта идут на адресацию сети).

2. Представим количество подсетей и количество хостов в двоичном виде:

100 подсетей имеет вид: 1100100

511 компьютеров имеет вид : 111111111

Т.к. на адресацию подсетей и компьютеров необходимо в сумме 16 битов, т.е. 2 байта, то свободных битов нету, и мы можем определять сразу маску подсети.

В маске подсети биты которые отдаются на адресацию подсети и сети устанавливаются в 1, на определение хоста – устанавливается в 0. Следовательно в нашем случае маска будет иметь следующий вид:

11111111.11111111.11111110.00000000 или 255.255.254.0

3. Определим IP компьютеров в данных. Подробно рассмотрим определение IP 1 компьютера и 1 подсети. Рассмотрим двоичное представление IP сети:

10000010.00000000.00000000.00000000. С учетом маски подсети получаем, что на адресацию подсети у нас уходят биты, выделенные жирным шрифтом, на адресацию хоста – курсивом. Следовательно чтобы адресовать 1 подсеть и первый компьютер необходимо установить первые соответствующие биты в 1. В итоге получаем следующую двоичную запись: 10000010.00000000.00000010.00000001 или в десятичном представлении 130.0.2.1 . Для установки других номеров подсетей и хостов необходимо номер перевести в двоичное представление и установить соответствующие биты в 1. В результате по заданию получаем следующие IP : 11001011.11110100

1 подсеть 1 компьютер. 130.0.2.1

26 подсеть 140 компьютер. 130.0.52.140

65 подсеть 500 компьютер. 130.0.203.244

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]