Бесклассовая адресация
Поясним как классовая адресация привела к быстрой растрате адресов, начнем с правил группировки адресов (очень важно их понять!):
- Все IP адреса в одной группе не должны быть разделены маршрутизатором (router).
- Все IP адреса разделенные маршрутизатором должны быть в разных группах.
Эти правила работают и по сей день, под группой адресов подразумевается номер сети (Network Address), который обозначает диапазон адресов.
Разберем пример растраты адресов, при классовой адресации. Допустим есть компания, которой выделили несколько номеров сетей (групп адресов) например, 156.1.0.0 - 156.8.0.0 (всего 8 диапазонов класса B).
На рисунке 4.5 представлена схема сети с распределенной адресацией. В данном примере каждый маршрутизатор имеет по 3 адреса, по одному на каждом интерфейсе (под интерфейсом подразумевается разъем, куда вставляется провод), эти адреса принадлежат разным номерам сети (согласно правилам "группировки адресов", описанным выше!). Сеть 156.4.0.0 находится между двумя маршрутизаторами (R1 и R3), эта сеть обозначает диапазон допустимых IP адресов 156.4.0.1 - 156.4.255.254, порядка 65 тысяч адресов, при этом из этого диапазона мы используем только 2 адреса, все оставшиеся 65 тысяч мы нигде не можем использовать (согласно правилам "группировки адресов", описанным выше!). В этом и заключается растрата адресов в классовой адресации.
Бесклассовая адресация реализуется за счет займа бит из хостовой части (той части, которая в классовой адресации используется при определения ip адресов хостам). Разберем пример, как из класса В сделать класс С, схематично представив IP адрес до и после применения технологии займа бит при бесклассовой адресации.
В представленных схемах есть общая часть под названием Network - биты используемые для определения номера сети данного класса (в нашем случае класса В) и часть Host - биты для определения ip адресов конечным устройствам. Также присутствует часть SubNet - биты, занятые из хостовой части, для увеличения длины номера сети. В верхней схеме представленный адрес принадлежит номеру сети - 156.4.0.0, обозначающий допустимый диапазон - 156.4.0.1 - 156.4.255.254. В нижней части представлен адрес, принадлежащий номеру сети 156.4.20.0, обозначающий допустимый диапазон - 156.4.20.1 - 156.4.20.254. Т.е. за счет займа бит мы добились разбиения номера сети класса В - 156.4.0.0 на 256 новых номеров сетей с 156.4.0.0 по 156.4.255.0. С бесклассовой адресацией можно дробить классовую и на более маленькие диапазоны, об этом далее.
Классовые маски
Изучение Сетевых Масок лучше начать с самых простых масок - классовых масок:
- 255.0.0.0 - маска класса А, в двоичном виде - 11111111.00000000.00000000.00000000
- 255.255.0.0 - маска класса В, в двоичном виде - 11111111.11111111.00000000.00000000
- 255.255.255.0 - маска класса С, в двоичном виде 11111111.11111111.11111111.00000000
Например, номер сети класса В - 176.130.0.0 с маской 255.255.0.0. Первые два октета 176.130 будут блокироваться под номер сети, что не так интересно, как если бы мы использовали маску 255.255.255.0, где будут блокироваться три октета 172.130.0, оставшийся октет будет использоваться для определения конечных IP адресов (172.130.0.1-172.130.0.254). Самое время, ввести понятие префикса.
Префикс
Для маски 255.255.255.0 префикс будет выглядеть так - /24. Мы знаем, что 255 можно представить в двоичном виде как 8 единиц, в этой маске число 255 встречается 3 раза, следовательно единиц в маске 24. Вот так и получается префикс. Еще один простой пример для закрепления. Для маски 255.255.0.0 префикс будет выглядеть так - /16, т.к. число 255 встречается два раза. Префикс нужен для краткой записи маски например, строка 176.130.0.0 255.255.255.0 и строка 176.130.0.0/24, означает одно и тоже.
Сложные маски
Когда маска "не классовая" и начинает дробить октет, ее можно отнести к "сложной маске". Представим все значения, которые могут быть в октете маски:
- 0 в двоичном виде 00000000
- 128 в двоичном виде 10000000
- 192 в двоичном виде 11000000
- 224 в двоичном виде 11100000
- 240 в двоичном виде 11110000
- 248 в двоичном виде 11111000
- 252 в двоичном виде 11111100
- 254 в двоичном виде 11111110
- 255 в двоичном виде 11111111
Вернемся к нашему номеру сети класса В - 176.130.0.0, теперь нам надо, чтобы конечный диапазон адресов был меньше 254 (меньше класса C). Возьмем маску 255.255.255.240 (кратко, с префиксом, выглядит так - 176.130.0.0/28) представим номер сети и маску в двоичном виде.
176.130.0.0 | 10110000.10000010.00000000.00000000 |
255.255.255.240 | 11111111.11111111.11111111.11110000 |
Еще раз повторим - единицами маска ограничивает номер сети (Network Address), а нулями определяются "свободные" биты для конечных адресов, которые будут в диапазоне. В последнем октете маски четыре нуля (смотрим на двоичный вид), таким образом, мы можем заключить, что в нашем примере будут изменяться только последние 4 бита. Представим весь диапазон получившихся IP адресов.
10110000.10000010.00000000.00000000 | 176.130.0.0 |
10110000.10000010.00000000.00000001 | 176.130.0.1 |
10110000.10000010.00000000.00000010 | 176.130.0.2 |
10110000.10000010.00000000.00000011 | 176.130.0.3 |
10110000.10000010.00000000.00000100 | 176.130.0.4 |
10110000.10000010.00000000.00000101 | 176.130.0.5 |
10110000.10000010.00000000.00000110 | 176.130.0.6 |
10110000.10000010.00000000.00000111 | 176.130.0.7 |
10110000.10000010.00000000.00001000 | 176.130.0.8 |
10110000.10000010.00000000.00001001 | 176.130.0.9 |
10110000.10000010.00000000.00001010 | 176.130.0.10 |
10110000.10000010.00000000.00001011 | 176.130.0.11 |
10110000.10000010.00000000.00001100 | 176.130.0.12 |
10110000.10000010.00000000.00001101 | 176.130.0.13 |
10110000.10000010.00000000.00001110 | 176.130.0.14 |
10110000.10000010.00000000.00001111 | 176.130.0.15 |
Всего в диапазоне получилось 16 IP адресов, из них два зарезервировано 176.130.0.0 (номер сети) и 176.130.0.15 (широковещательный адрес). А что же такое 176.130.0.16? Это новый номер сети, который обозначает диапазон 176.130.0.17 - 176.130.0.30, 176.130.0.31 - широковещательный, а 176.130.0.32 - снова новый номер сети и т.д.
Определение номеров сетей
Есть способ определения шага, с которым появляется новый номер сети (этот метод работает для "сложных" масок). Надо взять октет из маски, который не равен 0 или 255 и вычесть это число из 256. Продолжая разбирать наш пример с маской 255.255.255.240, мы получим 256 - 240 = 16, т.е. это шаг появления нового номера сети:
- 176.130.0.0/28
- 176.130.0.16/28
- 176.130.0.32/28
- 176.130.0.48/28
- ...
- 176.130.0.224/28
- 176.130.0.240/28
- 176.130.1.0/28, обратите внимание, когда номер сети получается со значением октета 256 (в нашем примере 176.130.0.256), следует обнулить этот октет, а к октету стоящему перед ним прибавить 1
- 176.130.1.16/28
- 176.130.1.32/28
- ...
- 176.130.1.240/28
- 176.130.2.0/28
- 176.130.2.16/28
- и т.д.
Разберем еще одну нестандартную маску для закрепления, например, 255.255.255.252 (префикс 30), для другого номера 200.133.33.0. Вычисляем шаг, 256 - 252 = 4, т.е. через каждые 4 адреса появляется новый номер сети:
Номер сети | Широковещательный адрес | Диапазон допустимых адресов |
200.133.33.0/30 | 200.133.33.3 | 200.133.33.1-200.133.33.2 |
200.133.33.4/30 | 200.133.33.7 | 200.133.33.5 - 200.133.33.6 |
200.133.33.8/30 | 200.133.33.11 | 200.133.33.9 - 200.133.33.10 |
200.133.33.12/30 | 200.133.33.15 | 200.133.33.13-200.133.33.14 |
... | ||
200.133.33.248/30 | 200.133.33.251 | 200.133.33.249-200.133.33.250 |
200.133.33.252/30 | 200.133.33.255 | 200.133.33.253-200.133.33.254 |
200.133.34.0/30 | 200.133.34.3 | 200.133.34.1-200.133.34.2 |
Нахождение номера сети по IP адресу
Пример 1
Теперь можно переходить к другим заданиям, например, находить номер сети, имея лишь IP адрес и префикс. Разберем вот этот пример - 93.25.144.147/26. В начале запишем маску - 255.255.255.192 (8 единиц.8 единиц.8 единиц.2 единицы, итого 26 единиц). Вычисляем шаг, через который будет появляться новый номер сети - 256-192=64. Обнулим октет, который подвергся дроблению - 93.25.144.0. Начинаем прибавлять шаг, пока не дойдем до нужного нам номера сети:
- 93.25.144.0/26
- 93.25.144.64/26
- 93.25.144.128/26 - номер сети, который нам нужен, обозначает диапазон 93.25.144.129 -93.25.144.190, в этот диапазон входит наш адрес (93.25.144.147)
- 93.25.144.192/26
Также, с помощью шага можно вычислить количество допустимых IP адресов в диапазоне, 64-2 (мы вычитаем первый адрес, это номер сети и последний адрес - широковещательный) итого получаем 62 адреса, которые мы можем назначить конечным устройствам (хостам).
Пример 2
Теперь мы усложним задачу. Разберем новый пример 150.150.150.150/22. Запишем маску - 255.255.252.0 (8 единиц.8единиц.6 единиц.0 единиц). Вычисляем шаг, через который будет появляться новый номер сети 256-252=4. Обнулим октет, который подвергся дроблению и следующий за ним октет - 150.150.0.0. Начинаем прибавлять шаг, пока не дойдем до нужного нам номера:
- 150.150.0.0/22
- 150.150.4.0/22
- 150.150.8.0/22
- ...
- 150.150.140.0/22
- 150.150.144.0/22
- 150.150.148.0/22 - номер сети, который нам нужен, обозначает диапазон 150.150.148.1 - 150.150.151.254 (адреса 150.150.148.0 и 150.150.151.255 зарезервированы)
- 150.150.152.0/22
По такой же аналогии вы можете самостоятельно разобрать пример, когда дроблению подвергается второй октет. Предлагаю попробовать находить номер сети по количеству компьютеров в сети.
Нахождение номера сети по кол-ву пользователей
Поставим задачу сделать три подсети (subnet, это слово появляется, когда мы начинаем дробить классовую адресацию) для 7, 49 и 261 пользователей, при этом не вылезая из диапазона 172.31.0.1 - 172.31.3.254. Мы знаем какие значения могут принимать октеты в маске, следовательно, мы можем вычислить шаг, а из шага мы можем определить количество адресов в диапазоне. Сейчас у нас поставлена задача вычислить диапазоны адресов (номеров сетей) с минимальным подходящим количеством.
Для 7 пользователей
Попробуем перебирать шаги (значения октета в маске можно найти в этом разделе под заголовком Сложные маски).
- 256-252=4. Шаг 4 нам не подходит, т.к. всего 2 адреса в этом диапазоне (без номера сети и широковещательного адреса)
- 256-248=8. Шаг 8 нам не подходит, т.к. всего 6 адресов в этом диапазоне (без номера сети и широковещательного адреса)
- 256-240=16. Шаг 16 подходит. В диапазоне 14 адресов, а в условиях задачи 7 пользователей (всем хватит и еще прозапас останется :)
Теперь вычислим маску - 255.255.255.240, значит префикс будет 28. Итого, получаем - 172.31.0.0/28, тогда диапазон 172.31.0.1 - 172.31.0.14, полностью удовлетворяет нашему количеству пользователей.
Для 49 пользователей
Снова перебираем шаг.
- 256-240=16. Шаг 16 нам не подходит, т.к. всего 14 допустимых адресов
- 256-224=32. Шаг 32 нам не подходит, т.к. всего 30 допустимых адресов
- 256-192=64. Шаг 64 нам подходит. Допустимых адресов 62, что немного больше поставленного условия
Теперь вычислим маску - 255.255.255.192, префикс - 26. Если мы возьмем номер сети 172.31.0.0/26, то адреса из его диапазона будут пересекаться с адресами из 172.31.0.0/28 (который мы нашли ранее), поэтому возьмем следующий доступный номер сети, используя подобранный шаг (прибавим 64)- 172.31.0.64/26, означающий диапазон 172.31.0.65 - 172.31.0.126.
Для 262 пользователей
В этом случае одним октетом мы не обойдемся. Для решения этой задачи надо пройти последний октет несколько раз. Применим формулу вычисления допустимых адресов 256*2-2=510. 510 адресов удовлетворяет нашему требованию, т.е. шаг будет два. Этот шаг будет относиться к третьему октету, следовательно маска будет 255.255.254.0, префикс - 23. Теперь определимся с номером сети, 172.31.0.0/23 нам не подходит, т.к. адреса из этого номера будут пересекаться с предыдущими найденными диапазонами. Нам подходит 172.31.2.0/23, который мы вычислили прибавив шаг. Диапазон доступных адресов: 172.31.2.1 - 172.31.3.254, что полностью удовлетворяет условию нашей задачи.
Наш Спонсор
Если вы нашли в тексте ошибку, выделите текст и нажмите Ctrl + Enter.