Подготовка браузера к сдаче теста
Ecли в Chrome апплет не заработает, то попробуйте открыть эту страницу в браузере Opera.
Видеолекции
- Лекция 1
- Лекция 2, начало
- Лекция 2, продолжение
- Лекция 3
Двоичная система счисления
В качестве примера рассмотрим знакомую нам десятичную систему счисления. Число 42310 можно представить как
4·102+2·101+3·100. Число 10, возводимое в степень 2, 1 и 0, называется
основанием системы счисления. В двоичной системе основание равна 2, так как в ней для отображения чисел используются лишь две цифры: 0 и 1.
По аналогии с предыдущим примером двоичное число 10112 можем представить в виде суммы
1·23+0·22+1·21+1·20 = 1·8+0·4+1·2+1·1 = 1110.
Запомните первые 8 результатов возведения 2 в степень.
Таблица 1. Результаты возведения числа 2 в степень
27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
---|---|---|---|---|---|---|---|
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Для перевода десятичного числа (со значением не более 255) в его двоичный эквивалент можно число представить в виде суммы из следующих чисел: 128,
64, 32, 16, 8, 4, 2 и 1. Например, 195 равно сумме 128+64+2+1 и, соответственно, двоичное его значение равно 11000011. Среди перечисленных выше 8 чисел лишь одно
число нечетное (число 1) и оно определяет четность или нечетность числа. Например, 10000011 = 131 (нечетное),
00000110 = 6 (четное).
Необходимо помнить наиболее распространенные 8-битовые комбинации.
Таблица 2. Часто используемые 8-битовые комбинации
Двоичное число | Десятичный эквивалент |
---|---|
00000000 | 0 |
00000001 | 1 |
00000011 | 3 |
00000111 | 7 |
00001111 | 15 |
00011111 | 31 |
00111111 | 63 |
01111111 | 127 |
11111111 | 255 |
11111110 | 254 |
11111100 | 252 |
11111000 | 248 |
11110000 | 240 |
11100000 | 224 |
11000000 | 192 |
10000000 | 128 |
Наибольшее значение, представляемое 8 битами, равно 255.
IP адреса
Всего существуют две версии протокола IP: 4 и 6 (6-я в данной работе не рассматривается). В четвертой версии (IPv4) адрес
представляет собой 32-битовое число, которое для удобства
представляется в виде 4 октетов (байтов), каждый из которых записывается в виде десятичных чисел, отделенных друг от друга точками
(например, 192.168.36.3).
Различают три вида адресов: хостовые, сетевые и широковещательные. Хостовые адреса назначаются интерфейсам сетевых устройств,
сетевые назначаются сетям. Широковещательный адрес применяется в случае, если сообщение следует доставить всем хостам сети.
Рассмотрим структуру IPv4 адреса на примере хостового адреса. Адрес состоит из двух частей: в старших разрядах располагается сетевая составляющая
(n битов), в младших — хостовая часть (32-n битов).
Сетевая часть | Хостовая часть | |
n битов | 32-n битов | |
Хостовый адрес | 101..011 | 011..101 |
Если хосты находятся в одной сети, то у их адресов последовательность битов сетевой части должна быть одинаковой, а комбинации битов
в хостовой части уникальными, не повторяющимися. Для указания длины (т.е. количества битов) сетевой части используют 32-битовое число,
называемое маской подсети (subnet mask), у которого в сетевой части все биты единичные, а в хостовой — нулевые.
Сетевая часть | Хостовая часть | |
n битов | 32-n битов | |
Маска подсети | 111..111 | 000..000 |
Число n, таким образом,
представляет собой количество единичных битов в маске и называется длиной маски подсети. Условная запись длины маски: /n.
Сетевой адрес отличается от хостового тем, что в хостовой части все биты нулевые. Вычисляется такой адрес применением
операции “побитовое &“ к хостовому адресу и маске подсети.
Сетевая часть | Хостовая часть | |
n битов | 32-n битов | |
Хостовый адрес | 101..011 | 011..101 |
побитовое & | ||
Маска подсети | 111..111 | 000..000 |
Сетевой адрес | 101..011 | 000..000 |
Пояснение. При побитовом & (второе название этой операции — побитовое умножение) каждый бит одного числа умножается
на соответствующий ему бит (находящийся в той же позиции) другого числа.
Широковещательный адрес (broadcast address) в своей хостовой части содержит лишь единичные биты
Сетевая часть | Хостовая часть | |
n битов | 32-n битов | |
Широковещательный адрес | 101..011 | 111..111 |
Дипазоны доступных хостовых адресов
Адреса, которые можно назначить хостам, получают, варьируя комбинации битов в хостовой части. Для примера рассмотрим случай, когда n = 30.
Сетевая часть | Хостовая часть | |
30 битов | 2 бита | |
Сетевой адрес | 101..011 | 00 |
Хостовый адрес | 101..011 | 01 |
Хостовый адрес | 101..011 | 10 |
Широковещательный адрес | 101..011 | 11 |
2 бита хостовой части дают 4 комбинации, из которых лишь две можно использовать для создания хостового адреса. При n=29 получаем
23-2 = 6 хостовых адресов. В общем случае формула расчета количества хостовых адресов выглядит так 232-n-2.
Для определения наименьшего хостового адреса следует в сетевом адресе младший бит хостовой части приравнять 1, для получения наибольшего
хостового адреса в широковещательном адресе младший бит хостовой части приравнять 0.
Пример расчета адресов
Пусть имеется хостовый адрес 10.40.197.6/22. Определим маску подсети, адрес сети, максимальное количество хостов, допустимых в данной сети, и
диапазон допустимых хостовых адресов. Длину маски сети /22 представим как сумму из трех чисел: 8 + 8 + 6. Следовательно, маска подсети равна
255.255.252.0.
Пояснение. Первое число, 8, означает 8 единичных битов 1-го октета, что дает число 255. Второе число, 8, соответствует второму октету
и числу 255. Третье число, 6, указывает, что 6 старших (левых) битов третьего октета единичные, а два младших бита — нулевые. В итоге в третьем октете получаем число 252.
4-й октет состоит из нулевых битов.
Таким образом, деление между сетевой и хостовой частями адреса проходит в третьем октете между 6-м и 7-м битами.
Сетевая часть | Хостовая часть | ||||
22 бита | 10 битов | ||||
Хостовый адрес | В десятичном представлении | 10. | 40. | 197. | 6 |
В двоичном представлении | 00001010 | 00101000 | 110001 | 01 | 00000110 |
Маска подсети | В десятичном представлении | 255. | 255. | 252. | 0 |
В двоичном представлении | 11111111 | 11111111 | 111111 | 00 | 00000000 |
Получим сетевой и широковещательный адреса, обратив биты хостовой части, соответственно, либо в 0, либо в 1.
Сетевая часть | Хостовая часть | ||||
22 бита | 10 битов | ||||
Сетевой адрес | В десятичном представлении | 10. | 40. | 196. | 0 |
В двоичном представлении | 00001010 | 00101000 | 110001 | 00 | 00000000 |
Широковеща- тельный адрес |
В десятичном представлении | 10. | 40. | 199. | 255 |
В двоичном представлении | 00001010 | 00101000 | 110001 | 11 | 11111111 |
Определим минимальный и максимальный хостовые адреса, используя, соответственно, сетевой и широковещательный адреса.
Сетевая часть | Хостовая часть | ||||
22 бита | 10 битов | ||||
Минимальный хостовый адрес | В десятичном представлении | 10. | 40. | 196. | 1 |
В двоичном представлении | 00001010 | 00101000 | 110001 | 00 | 00000001 |
Максимальный хостовый адрес | В десятичном представлении | 10. | 40. | 199. | 254 |
В двоичном представлении | 00001010 | 00101000 | 110001 | 11 | 11111110 |
В данной сети можно разместить до 210-2 = 1022 хоста.
Полноклассовая и бесклассовая адресация
Полноклассовая адресация исторически появилась раньше, чем бесклассовая, и предусмативает распределение адресов по классам.
Всего имеется 5 классов: A, B, C, D и E. Различаются они по старшим битам первого октета. В классе A
самый старший бит первого октета всегда нулевой, другие же биты этого октета и биты остальных октетов произвольные.
Таблица 3. Класс A
Первый октет | Второй октет | Третий октет | Четвертый октет |
0XXXXXXX | XXXXXXXX | XXXXXXXX | XXXXXXXX |
Здесь через X обозначен произвольный бит (0 или 1). Следовательно значение первого октета варьируется в интервале от 0
(00000000) до 127 (01111111), значения остальных октетов — от 0 до 255. Длина сетевой маски класса A фиксированная и принята равной /8.
Первое число адреса, таком образом, относится к сетевой части, остальные три числа — к хостовой: N.H.H.H.
Адрес полноклассовой сети имеет вид N.0.0.0, широковещательный адрес — N.255.255.255.
Данный класс предоставляет 27 = 128 сетевых адресов, но адреса, начинающиеся с 0 и 127, для адресации сетей не применяются.
В классе B два старших бита фиксированы и имеют значения 10.
Таблица 4. Класс B
Первый октет | Второй октет | Третий октет | Четвертый октет |
10XXXXXX | XXXXXXXX | XXXXXXXX | XXXXXXXX |
Значения первого октета варьируются в интервале от 128 (10000000) до 191 (10111111), длина маски — /16, хостовый адрес — N.N.H.H,
адрес сети — N.N.0.0, широковещательный адрес — N.N.255.255.
В классе C три старших бита фиксированы и имеют значения 110.
Таблица 5. Класс C
Первый октет | Второй октет | Третий октет | Четвертый октет |
110XXXXXX | XXXXXXXX | XXXXXXXX | XXXXXXXX |
Значения первого октета варьируются в интервале от 192 (11000000) до 223 (11011111), длина маски — /24, хостовый адрес — N.N.N.H,
адрес сети — N.N.N.0, широковещательный адрес — N.N.N.255.
Бесклассовая адресация позволяет менять длину маски подсети (англ. Variable Length Subnet Mask — VLSM), увеличивая тем самым диапазон доступных
сетевых адресов.
Пример определения адреса полноклассовой сети
Выше был разобран пример, в котором был найден адрес сети 10.40.196.0/22. Первое число адреса указывает на принадлежность адреса классу A и,
следовательно, адрес полноклассовой сети будет 10.0.0.0/8.
Контрольная работа
Выполните контрольную работу, состоящую из двух тестов
В течение вот уже нескольких десятилетий
IP-адреса делятся на пять классов. Такое
распределение обычно называется
полноклассовой адресацией. Форматы
классов А (0), В(10), С(110) и D(11110) позволяют
задавать адреса до 128 сетей с 16 млн хостов
в каждой.
А 127.255.255.255
В от 128.0.0.0 до
191.0.0.0
С от 192.255.255.255 до 223.255.0.0
D от
194.0.0.0 до 239.255.255.0
Е от 240.255.255.255 до
247.255.255.255
Форматы: IPv4 и IPv6
Классы: А, В, С,
D, Е
Маска. маской подсети или
маской сети называется битовая маска,
определяющая, какая часть IP-адреса узла
сети относится к адресу сети, а какая —
к адресу самого узла в этой сети. Маска
назначается по следующей схеме (для
сетей класса C), где — количество
компьютеров в подсети + 2,[1] округленное
до ближайшей большей степени двойки
(эта формула справедлива для ≤ 254, для
> 254 будет другая формула).
Компьютерам
маска подсети нужна для определения
границ подсети.
-
Бесклассовая адресация (Classless Inter-Domain Routing, cidr).
Беcклассовая
адресация (английский
вариант: Classless InterDomain Routing; CIDR) — метод
IP-адресации, который позволяет более
гибко управлять доступным пространством
IP-адресов, не прибегая к использованию
жёстких рамок классовой адресации.
Применение на практике такого метода
позволяет существенно экономить
использование ограниченного ресурса
IP-адресов, благодаря возможности
применения разнообразных масок подсетей
к подсетям.
Ниже
в таблице представлено соответствие
префиксов CIDR и масок сетей в десятичном
представлении.
Как
вычислить маску подсети зная CIDR ?
В
качестве подопытного IP будем использовать
адрес 212.44.63.122 с CIDR /28:
Далее
нам нужно представить CIDR в двоичном
виде, поделить на четыре октета и после
всего перевести в десятичный вид.
1.
запишем первые 28 бит (так как CIDR = 28)
единицами, а остальные четыре бита (так
как их всего 32 и 32-28=4) нулями:
11111111111111111111111111110000
2.
поделим на четыре октета:
11111111.11111111.11111111.11110000
3.
преобразуем в десятичный вид:
255.255.255.240
Вот
собственно и все. У нас получилось что
/28 равна маске 255.255.255.240
Так же
будет полезным знать:
сети класса
A — это CIDR /8
сети класса B —
это CIDR /16
сети класса С — это
CIDR /24
Как,
зная CIDR, вычислить адрес сети,
широковещательный адрес (broadcast) и общее
число хостов в сети ?
В
качестве примера оставим тот же
IP-адрес что был ранее: 212.44.63.122 с
CIDR /28:
1.
32-28=4 бита — определили сколько бит
отвечает за колличество хостов в подсети
2.
исходя из этого возводим 2-ку в четвертую
степень, получаем 16, следовательно
рабочих IP-адресов в этой подсети 14-ть,
всегда на два меньше, так как 1-ый
адрес это адрес сети, а последний это
broadcast.
3.
смотрим последний октет в нашем IP-адресе
(212.44.63.122),
122 делим на 16, получили 7,625, тоесть 7 целых
сетей по 16 хостов(не учитывая адрес сети
и широковещательный адрес), теперь
получим адрес нашей сети — это 16
умножаем на 7 (16×7=112) -> 212.44.63.112
4.
Широковещательным адресом (broadcast) будет
212.44.63.127 — это 16 умножаем на 8 и отнимаем
1 (16×8-1=127)
Как,
зная хост и маску подсети вычислить
адрес сети, broadcast и число хостов в сети ?
В
качестве примера возмем другой IP-адрес:
192.168.11.143 с маской подсети 255.255.255.224:
1.
256-224=32, где 224 это последний октет из
маски (255.255.255.224),
а полученное 32 это
общее количество хостов в сети, но мы
знаем, что:
1-ый адрес является
адресом сети, а последний — broadcast’ом
и следовательно получаем 30 рабочих
хостов в данной сети.
2.
смотрим последний октет IP-адреса
(192.168.11.143),
143 делим на 32 получаем 4,47 и определяем
адрес сети, как описано выше: 4×32=128
-> 192.168.11.128
3.
Широковещательным адресом (broadcast) будет
192.168.11.159 (32×5-1=159)
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
22.09.2019849.41 Кб25IA.doc
- #
- #
- #
- #
- #
IP — это протокол связи, который используется от самой маленькой сети
из двух устройств до глобальной информационной сети. IP-адрес — это
уникальный идентификатор определенного узла (устройства), выделяемый в
определенной сети.
Запись IP-адресов
Адрес
выглядит как 32-разрядное число в диапазоне от 0 до 4294967295. Это
говорит о том, что во всей сети Интернет может содержаться более 4
миллиардов полностью уникальных адресов объектов. Если записывать адреса
в двоичной или десятичной форме, то это вызывает свои неудобства по их
запоминанию или обработке. Поэтому, для упрощения написания таких
адресов, было решено делить полный адрес на четыре октета (8-разрядных
числа), разделенных точкой. Для примера: адрес который в
шестнадцатеричной системе выглядит как С0290612, в записи IP-адреса
будет выглядеть как 192.41.6.18. При этом наименьший адрес — это четыре
нуля, а максимальный — четыре группы по 255. Старшая область (та, что
располагается с левой стороны групп цифр от любой из разделительных
точек) занята областью адреса, младшая область (с правой стороны от этой
же разделительной точки) показывает номер интерфейса в этой сети.
Положение границы между хостовой и сетевой частями зависит от количества
бит, которое отвели на номер сети, бывает различным, разделение идет
только по границе октета (точки между ними) и позволяет определить
классы IP-адресов.
Классовая модель адресов
Несколько
десятилетий адреса имеют разделение на 5 классов. Это устаревающее в
данный момент разделение называется полноклассовой адресацией. Классы
IP-адресов называются буквами латинского алфавита от А до E. Классы от А
до Е дают возможность задать идентификаторы для 128 сетей с 16
миллионами сетевых интерфейсов в каждой, 16384 сети с 64 тысячами
устройств и 2 миллионов сетей с 256 интерфейсами. Классы IP-сетей D
предусмотрены для многоадресной рассылки, при которой пакеты сообщений
рассылаются на несколько хостов одновременно. Адреса, которые имеют
начальными битами 1111, являются зарезервированными для применения в
будущем.
Ниже представлена таблица IP-адресов. Классы определяются по старшим битам адресов.
Класс А
IP-адреса
класса А характеризуются нулевым старшим битом адреса и восьмибитным
размером принадлежности к сети. Записываются в виде:
Исходя из этого, наибольшее число сетей класса А может быть 27, но каждая из них будет иметь адресное пространство 224
устройств. Так как первый бит адреса равен 0, то все IP-адреса класса А
будут находиться в диапазоне старшего октета от 0 до 127, который, к
тому же, будет являться и номером сети. При этом нулевой адрес и 127
зарезервированы под служебные адреса, поэтому использование их
невозможно. По этой причине точное количество сетей класса А равняется
126.
Под адреса узлов в сети класса А отводится 3 байта (или 24
бита). Простой расчет показывает, что можно разместить 16 777 216
двоичных комбинаций (адресов интерфейсов). Так как адреса, состоящие
полностью из нулей и единиц, являются специализированными, то количество
сетей класса А уменьшается до 16 777 214 адресов.
Классы В и С
Основной отличительной
особенностью IP-адреса класса b будет значение двух старших битов,
равное 10. При этом размер сетевой части будет равняться 16 битам.
Формат адреса этой сети выглядит так:
По этой причине наибольшее число сетей класса B может быть 214 (16384) с адресным пространством 216
каждая из них. IP-адреса класса B начинаются в диапазоне от 128 до 191.
Это является отличительной особенностью, по которой можно определить
принадлежность сети к этому классу. Два байта, отведенные под адреса
этих сетей, за вычетом нулевых и состоящих из единиц адресов, могут
составить количество узлов, равное 65 534.
Любой IP-адрес класса C
начинается в диапазоне от 192 до 223, при этом номер сети занимает три
старших октета. Схематически адрес имеет такую структуру:
Три старших бита имеют первыми 110, сетевая часть 24 бита. Наибольшее число сетей в этом классе составляет 221 (это 2097152 сети). Под адреса узлов в IP-адресе сетей класса С отводится 1 байт, это всего 254 хоста.
Дополнительные классы сетей
В
классы D и Е включаются сети со старшим октетом выше 224. Эти адреса
резервируются для специализированных целей, таких как, например,
мультикастинг – передача дейтаграмм определенным группам узлов в сети.
Диапазон
класса D используется для рассылки пакетов и лежит в границах от
224.0.0.0 до 239.255.255.255. Последний класс, Е, зарезервирован для
использования в будущем. В него входят адреса от 240.0.0.0 до
255.255.255.255. Поэтому если не хотите проблем с адресацией, желательно
не брать IP-адреса из этих диапазонов.
Зарезервированные IP-адреса
Существуют
адреса, которые нельзя давать никаким устройствам, какая бы ни была
IP-адресация. Служебные IP-адреса имеют специфическое назначение.
Например, если адрес сети состоит из нулей, то это подразумевает, что
узел относится к текущей сети или определенному сегменту. Если все
единицы – то это адрес для широковещательных рассылок пакетов.
В
классе А есть две выделенные особые сети с номерами 0 и 127. Адрес,
равный нулю, используется в качестве маршрута по умолчанию, а 127
показывает адресацию на самого себя (интерфейс обратной связи).
Например, обращение по IP 127.0.0.1 значит, что узел общается только сам
с собой без выхода дейтаграмм на уровень среды передачи данных. Для
транспортного уровня такое соединение не отличается от связи с удаленным
узлом, поэтому такой адрес обратной связи часто используется для
тестирования сетевого ПО.
Определение идентификаторов сети и узла
Зная
IP-адрес устройства в случае, когда встает вопрос о том, как определить
класс IP-адреса, то достаточно просто посмотреть на первый октет адреса.
Если он от 1 до 126, то это сеть класса А, от 128 до 191 – это сеть
класса В, от 192 до 223 — сеть класса С.
Для
идентификации сети нужно помнить, что в А классе это начальное число в
IP-адресе, в В – начальные два числа, в С – начальные три числа.
Остальные являются идентификаторами сетевых интерфейсов (узлов). К
примеру, IP-адрес 139.17.54.23 является адресом класса В, так как первое
число — 139 — больше 128 и меньше 191. Поэтому идентификатор сети будет
равен 139.17.0.0, идентификатор узла – 54.23.
Подсети
При
помощи маршрутизаторов и мостов есть возможность расширить сеть,
добавив к ней сегменты, или разделить ее на более мелкие подсети путем
изменения идентификатора сети. В этом случае берется маска подсети,
которая показывает, какой сегмент IP-адреса будет применяться как новый
идентификатор данной подсети. При совпадении идентификаторов можно
делать вывод, что узлы принадлежат одной подсети, иначе они будут
находиться в различных подсетях и для их соединения потребуется
маршрутизатор.
Классы
IP-адресов рассчитаны так, что число сетей и узлов для определенной
организации определено заранее. По умолчанию в организации можно
развернуть только одну сеть с некоторым количеством подключенных к сети
устройств. Есть определенный идентификатор сети и некоторое количество
узлов, имеющее ограничение в соответствии с классом сети. При большом
количестве узлов сеть будет низкой пропускной способности, так как даже
при любой широковещательной рассылке производительность будет падать.
Маски подсетей
Для
того чтобы разделить идентификатор, необходимо применять маску подсети –
некий шаблон, помогающий отличить идентификаторы сетей от
идентификаторов узлов в IP-адресах. Классы IP-адресов не накладывают
ограничения на маску подсети. Маска внешне выглядит так же, как и адрес —
четыре группы цифр от 0 до 255. При этом сначала идут большие числа, за
ним меньшие. К примеру, 255.255.248.0 – это правильная маска подсети,
255.248.255.0 – неправильная. Маска 255.255.255.0 определяет начальные
три октета IP-адреса как идентификатор подсети.
При проектировании
сегментации сети предприятия необходимо, чтобы правильно была
организована IP-адресация. Классы IP-адресов, разделенные на сегменты с
помощью масок, позволяют не только увеличить количество компьютеров в
сети, но и организовать ее высокую производительность. Каждый класс
адреса имеет маску сети по умолчанию.
Для
дополнительных подсетей часто используются не маски по умолчанию, а
индивидуальные. Например, IP-адрес 170.15.1.120 может использовать маску
подсети 255.255.255.0 с идентификатором сети 170.15.1.0, при этом не
обязательно использовать маску подсети 255.255.0.0 с идентификатором
170.15.0.0, который используется по умолчанию. Это позволяет разбивать
существующую сеть организации класса В с идентификатором 170.15.0.0 на
подсети с помощью различных масок.
Расчет параметров подсетей
После
настройки подсети на каждом интерфейсе программное обеспечение сетевого
протокола будет проводить опрос IP-адресов, используя при этом маску
подсети для определения адреса подсети. Существуют две простые формулы
для подсчета максимального числа подсетей и хостов в сети:
- 2(количество битов, равных единице в маске) — 2 = наибольшее число подсетей;
- 2(количество нулей в маске подсети) — 2 = наибольшее количество устройств в подсети.
Например,
возьмем адрес, равный 182.16.52.10 с маской 255.255.224.0. Маска в
двоичном виде выглядит так: 11111111.11111111.11100000.00000000. Судя по
первому октету, это сеть принадлежит к классу В, поэтому рассматриваем
третий и четвертый октеты. Три единицы и тринадцать нулей подставляем в
формулы и получаем 23-2=6 подсетей и 213 — 2 = 8190 хостов.
При
применении стандартной маски сети класса В в виде 255.255.255.0 сеть
может иметь 65534 подключенных устройства. Если адрес подсети занимает
полный байт узла, то количество подключенных устройств в каждой подсети
сокращается до 254. При необходимости превысить это число устройств
могут возникать проблемы, решаемые укорочением поля маски адреса подсети
или добавлением еще одного вторичного адреса в интерфейсе
маршрутизатора. Но в этом случае будет наблюдаться уменьшение количества
возможных сетей.
При создании подсетей в сети класса С следует
помнить, что выбор будет очень мал при свободном только одном октете.
При отсеивании нулевых и широковещательных адресов остается возможность
создания четырех оптимальных вариантов наборов подсетей: одна подсеть на
253 хоста, две подсети на 125 хостов, четыре подсети по 61 хосту,
восемь подсетей по 29 хостов. Остальные варианты разбиения будут
вызывать проблемы при маршрутизации и широковещательных рассылок или
просто вызывать неудобства при расчетах адресации между хостами.
Формировать
подсети в сетях класса В уже проще, так как больше свобода выбора. По
умолчанию маска подсети равна 255.255.0.0, при ее использовании получаем
65534 хоста. При создании масок подсетей под их адреса выделяются левые
непомеченные биты из 3 и 4 октета. Путем расчетов можно вывести
оптимальные сети с номерами 32, 64, 96, 128, 160 и 192.
Сети
класса А имеют очень большое количество адресов, для которых возможно
создавать подсети. Для использования масок подсетей можно использовать
до 32 бит. Используя вышеприведенную формулу, мы можем определить, что
максимальное количество подсетей может быть до 254. При этом на адреса
хостов остается 16 бит, то есть можно подключить 65534 узлов.
Конечно,
это только примерные расчеты. При создании секторов и работе с
подсетями приходится учитывать больше факторов, которые зависят от
провайдера и уровня предприятия.
Приветствую вас на очередном выпуске. И сегодня речь пойдет о том, какие бывают IP-адреса, и как ими пользоваться. Что такое маска подсети, как она считается, и для чего она нужна. Как делить сети на подсети и суммировать их. Заинтересовавшихся приглашаю к прочтению.
Начнем, или уже продолжим, с самого популярного, заезженного и больного. Это IP-адреса. На протяжении 4-х статей это понятие встречалось по несколько раз, и скорее всего вы уже либо сами поняли для чего они, либо нагуглили и почитали о них. Но я обязан вам это рассказать, так как без ясного понимания двигаться дальше будет тяжело.
Итак IP-адрес — это адрес, используемый узлом на сетевом уровне. Он имеет иерархическую структуру. Что это значит? Это значит, что каждая цифра в его написании несет определенный смысл. Объясню на очень хорошем примере. Примером будет номер обычного телефона — +74951234567. Первой цифрой идет +7. Это говорит о том, что номер принадлежит зоне РФ. Далее следует 495. Это код Москвы. И последние 7 цифр я взял случайными. Эти цифры закреплены за районной зоной. Как видите здесь наблюдается четкая иерархия. То есть по номеру можно понять какой стране, зоне он принадлежит. IP адреса придерживаются аналогично строгой иерархии. Контролирует их организация IANA(англ. Internet Assigned Numbers Authority). Если на русском, то это «Администрация адресного пространства Интернет». Заметьте, что слово «Интернет» с большой буквы. Мало кто придает этому значение, поэтому объясню разницу. В англоязычной литературе термин «internet» используется для описания нескольких подключённых друг к другу сетей. А термин «Internet» для описания глобальной сети. Так что примите это к сведению.
Несмотря на то, что тема статьи больше теоретическая, нежели практическая, я настоятельно рекомендую отнестись к ней со всей серьезностью, так как от нее зависит понимание дальнейших тем, а особенно маршрутизации. Не для кого, я думаю, не секрет, что мы привыкли воспринимать числовую информацию в десятичном формате (в числах от 0-9). Однако все современные компьютеры воспринимают информацию в двоичном (0 и 1). Не важно при помощи тока или света передается информация. Вся она будет воспринята устройством как есть сигнал (1) или нет (0). Всего 2 значения. Поэтому был придуман алгоритм перевода из двоичной системы в десятичную, и обратно. Начну с простого и расскажу, как выглядят IP адреса в десятичном формате. Вся эта статья посвящена IP адресам версии 4. О версии 6 будет отдельная статья. В предыдущих статьях, лабах, да и вообще в жизни, вы видели что-то вроде этого «193.233.44.12». Это и есть IP адрес в десятичной записи. Состоит он из 4-х чисел, называемых октетами и разделенных между собой точками. Каждое такое число (октет) может принимать значение от 0 до 255. То есть одно из 256 значений. Длина каждого октета равна 8 битам, а суммарная длина IPv4 = 32 битам. Теперь интересный вопрос. Каким образом этот адрес воспримет компьютер, и как будет с ним работать?
Можно конечно набить это в калькулятор, коих навалом в Интернете, и он переведет его в двоичный формат, но я считаю, что переводить вручную должен уметь каждый. Особенно это касается тех, кто планирует сдавать экзамен. У вас не будет под рукой ничего, кроме бумаги и маркера, и полагаться придется только на свои навыки. Поэтому показываю, как это делать вручную. Строится таблица.
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
x | x | x | x | x | x | x | x |
Вместо «x» записывается либо 1, либо 0. Таблица разделена на 8 колонок, каждая из которых несет в себе 1 бит (8 колонок = 8 бит = 1 октет). Расположены они по старшинству слева направо. То есть первый (левый) бит — самый старший и имеет номер 128, а последний (правый) — самый младший и имеет номер 1. Теперь объясню, откуда эти числа взялись. Так как система двоичная, и длина октета равна 8-ми битам, то каждое число получается возведением числа 2 в степень от 0 до 7. И каждая из полученных цифр записывается в таблицу от большего к меньшему. То есть слева направо. От 2 в 7-ой степени до 2 в 0-ой степени. Приведу таблицу степеней 2-ки.
Думаю теперь понятно, каким образом строится таблица. Давайте теперь разберем адрес «193.233.44.12» и посмотрим, как он выглядит в двоичном формате. Разберем каждый октет отдельно. Возьмем число 193 и посмотрим, из каких табличных комбинаций оно получается. 128 + 64 + 1 = 193.
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |
Те числа, которые участвовали в формировании комбинации получают 1, а все остальные получают 0.
Берем первый октет 233. 128 + 64 + 32 + 8 + 1.
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 |
Для 44 — это 32 + 8 + 4.
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
И напоследок 12. 8 + 4.
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
Получается длинная битовая последовательность 11000001.11101001.00101100.00001100. Именно с данным видом работают сетевые устройства. Битовая последовательность обратима. Вы можете так же вставить каждый октет (по 8 символов) в таблицу и получить десятичную запись. Я представлю совершенно случайную последовательность и приведу ее к десятичному виду. Пусть это будет 11010101.10110100.11000001.00000011. Строю таблицу и заношу в нее первый блок.
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 | 1 | 0 | 1 | 0 | 1v | 0 | 1 |
Получаю 128 + 64 + 16 + 4 + 1 = 213.
Вычисляю второй блок.
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
Считаю 128 + 32 + 16 + 4 = 180.
Третий блок.
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |
128 + 64 + 1 = 193.
И напоследок четвертый.
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
2 + 1 = 3
Собираем результаты вычислений и получаем адрес 213.180.193.3. Ничего тяжелого, чистая арифметика. Если тяжело и прям невыносимо трудно, то попрактикуйтесь. Сначала может показаться страшным, так как многие закончили учебу лет 10 назад и многое позабыли. Но уверяю, что как только набьете руку, считать будет гораздо легче. Ну а для закрепления дам вам несколько примеров для самостоятельного расчета (под спойлером будут ответы, но открывайте их только когда прорешаете сами).
Задача №1
1) 10.124.56.220
2) 113.72.101.11
3) 173.143.32.194
4) 200.69.139.217
5) 88.212.236.76
6) 01011101.10111011.01001000.00110000
7) 01001000.10100011.00000100.10100001
00001111.11011001.11101000.11110101
9) 01000101.00010100.00111011.01010000
10) 00101011.11110011.10000010.00111101
Ответы
1) 00001010.01111100.00111000.11011100
2) 01110001.01001000.01100101.00001011
3) 10101101.10001111.00100000.11000010
4) 11001000.01000101.10001011.11011001
5) 01011000.11010100.11101100.01001100
6) 93.187.72.48
7) 72.163.4.161
15.217.232.245
9) 69.20.59.80
10) 43.243.130.61
Теперь IP-адреса не должны быть чем-то страшным, и можно углубиться в их изучение.
Выше мы говорили о структуре телефонных номеров и их иерархии. И вот на заре рождения Интернета в том представлении, в каком мы его привыкли видеть, возник вопрос. Вопрос заключался в том, что IP-адреса нужно как-то сгруппировать и контролировать выдачу. Решением было разделить все пространство IP-адресов на классы. Это решение получило название классовая адресация (от англ. Classful). Она уже давно устарела, но практически в любой книге на нее отводятся целые главы и разделы. Cisco тоже не забывает про это и в своих учебных материалах рассказывает про нее. Поэтому я пробегусь по этой теме и покажу, чем она блистала с 1981 по 1995 год.
Пространство было поделено на 5 классов. Каждому классу был назначен блок адресов.
Начнем с класса A. Если внимательно посмотреть на таблицу, то можно заметить, что этому блоку дан самый большой блок адресов, а если быть точным, то половина всего адресного пространства. Предназначался данный класс для крупных сетей. Структура этого класса выглядит следующим образом.
В чем суть. Первый октет, то есть 8 бит, остаются за адресом сети, а 3 последних октета (то есть оставшиеся 24 бита) назначаются хостам. Вот для того, чтобы показать, какой кусок относится к сети, а какой к хостам, используется маска. По структуре записи она аналогична записи IP-адреса. Отличие маски от IP-адресов в том, что 0 и 1 не могут чередоваться. Сначала идут 1, а потом 0. Таким образом, там где есть единица, значит это участок сети. Чуть ниже, после разбора классов, я покажу, как с ней работать. Сейчас главное знать, что маска класса A — 255.0.0.0. В таблице еще упомянут какой-то первый бит и для класса A он равен 0. Этот бит как раз нужен для того, чтобы сетевое устройство понимало, к какому классу оно принадлежит. Он же еще задает начальный и конечный диапазон адресов. Если в двоичном виде записать на всех октетах единицы, кроме первого бита в первом октете (там всегда 0), то получится 127.255.255.255, что является границей класса A. Например, возьмем адрес 44.58.63.132. Мы знаем, что у класса A первый октет отдается под адрес сети. То есть «44» — это адрес сети, а «58.63.132» — это адрес хоста.
Поговорим про класс B
Этому классу был дан блок поменьше. И адреса из этого блока предназначались для сетей средних масштабов. 2 октета отданы под адрес сети, и 2 — под адрес хостов. Маска у B класса — 255.255.0.0. Первые биты строго 10. А остальные меняются. Перейдем к примеру: 172.16.105.32. Два первых октета под адрес сети — «172.16». А 3-ий и 4-ый под адрес хоста — «105.32».
Класс C
Этот класс обделили адресами и дали ему самый маленький блок. Он был предназначен для мелких сетей. Зато этот класс отдавал целых 3 октета под адрес сети и только 1 октет — под хосты. Маска у него — 255.255.255.0. Первые биты 110. На примере это выглядит так — 192.168.1.5. Адрес сети «192.168.1», а адрес хоста «5».
Классы D и E
Я неcпроста объединил их в один. Адреса из этих блоков зарезервированы и не могут назначаться сетям и хостам. Класс D предназначен для многоадресной рассылки. Аналогию можно привести с телевидением. Телеканал вещает группе лиц свой эфир. И те, кто подключены, могут смотреть телепередачи. То есть в распоряжение администраторов могут попасть только 3 первых класса.
Напомню, что первые биты у класса D — это 1110. Пример адреса — 224.0.0.5.
А первые биты у класса E — это 1111. Поэтому, если вдруг увидите адрес вида 240.0.0.1, смело говорите, что это адрес E класса.
Про классы обмолвились. Теперь озвучу вопрос, который мне недавно задали. Так зачем тогда маски? У нас итак хосты понимают в каком они классе. Но суть вот в чем. Например, у вас есть маленький офис, и вам нужен блок IP-адресов. Никто не будет вам выдавать все адреса класса C. А дадут только его кусок. Например 192.168.1.0 с маской 255.255.255.0. Так вот эта маска и будет определять вашу границу. Мы уже говорили, что октет варьируется в значении от 0 до 255. Вот этот 4 октет полностью в вашем распоряжении. За исключением первого адреса и последнего, то есть 0 и 255 в данном случае. Первый адрес — это адрес сети (в данном случае 192.168.1.0), а последний адрес — широковещательный адрес (192.168.1.255). Напомню, что широковещательный адрес используется в том случае, когда надо передать информацию всем узлам в сети. Поэтому есть правило. Если вам надо узнать номер сети, то все биты относящиеся к хосту обращаете в 0, а если широковещательный, то все биты — в 1. Поэтому, если из 256 адресов забирается 2 адреса, то на назначение хостам остается 254 адреса (256 — 2). На собеседованиях и экзаменах часто любят спрашивать: «Количество IP-адресов в сети?» и «Сколько доступных IP-адресов в сети для назначения хостам?». Два разных вопроса, которые могут поставить в тупик. Ответом на первый будет — все адреса, включая адрес сети и широковещательный адрес, а на второй вопрос — все адреса, кроме адреса сети и широковещательного адреса.
Теперь углубимся в изучении маски.
Я записал адрес класса C 192.168.1.1 с маской 255.255.255.0 в десятичном и двоичном формате. Обратите внимание на то, как выглядит IP-адрес и маска в двоичном формате. Если в IP-адресе 0 и 1 чередуются, то в маске сначала идут 1, а потом 0. Эти биты фиксируют адрес сети и задают размер. По таблице выше можно сделать вывод, что в двоичном виде маска представлена последовательностью 24 единиц подряд. Это говорит о том, что целых 3 октета выделено под сеть, а 4 октет свободен под адресацию для хостов. Здесь ничего необычного. Это стандартная маска класса C.
Но вот в чем загвоздка. Например, в вашем офисе 100 компьютеров, и расширяться вы не планируете. Зачем плодить сеть из 250+ адресов, которые вам не нужны?! На помощь приходит разделение на подсети. Это очень удобная вещь. Объясню принцип на примере того же класса C. Как бы вы не хотели, но трогать 3 октета нельзя. Они фиксированы. Но вот 4 октет свободен под хосты, поэтому его можно трогать. Заимствуя биты из хостового куска, вы дробите сеть на n-ое количество подсетей и, соответственно, уменьшаете в ней количество адресов для хостов.
Попробуем это воплотить в реальность. Меняю маску. Заимствую первый бит из хостовой части(то есть 1-ый бит 4-ого октета выставляю в единицу). Получается следующая маска.
Данная маска делит сеть на 2 части. Если до дробления у сети было 256 адресов(от 0 до 255), то после дробления у каждого куска будет по 128 адресов(от 0 до 127 и от 128 до 255).
Теперь посмотрю, что изменится в целом с адресами.
Красным цветом я показал те биты, которые зафиксированы и не могут изменяться. То есть маска ей задает границу. Соответственно биты помеченные черным цветом определены для адресации хостов. Теперь вычислю эту границу. Чтобы определить начало, надо все свободные биты(помеченные черным цветом) обратить в ноль, а для определения конца обратить в единицы. Приступаю.
То есть в четвертом октете меняются все биты, кроме первого. Он жестко фиксирован в рамках этой сети.
Теперь посмотрим на вторую половину сети и вычислим ее адреса. Деление у нас производилось заимствованием первого бита в 4-ом октете, значит он является делителем. Первая половина сети получалась, когда этот бит принимал значение 0, а значит вторая сеть образуется, когда этот бит примет значение 1. Обращаю этот бит в 1 и посмотрю на границы.
Приведу в десятичный вид.
Соответственно .128 и .255 назначать хостам нельзя. Значит в доступности 128-2=126 адресов.
Вот таким образом можно при помощи маски управлять размером сети. Каждый заимствованный бит делит сеть на 2 части. Если откусить 1 бит от хостовой части, то поделим на 2 части (по 128 адресов), 2 бита = 4 части (по 64 адреса), 3 бита = 8 (по 32 адреса) и так далее.
Если вы рассчитали количество бит, отдаваемые под хосты, то количество доступных IP-адресов можно вычислить по формуле 2H-2.
В книге У. Одома по подготовке к CCNA R&S приведена хорошая формула для расчета битов, отдаваемых на подсеть и хосты:
N + S + H = 32, где N — кол-во битов сети (класс A — 8 бит, B — 16 бит, C — 24 бита), S — кол-во заимствованных битов на подсеть (это то, что мы делали выше, когда заимствовали 1 бит из хостовой части), H — кол-во бит отводимых хостам.
Внесу ясность и объясню, как и где применять эти формулы.
Возьмем пример:
Нам выдали сеть 172.16.0.0 и попросили создать 120 подсетей со 180 хостами и записать маску. Приступим.
В качестве шпаргалки, и для быстроты вычисления, я ниже подготовил таблицу степеней двойки.
Двигаемся дальше. Первое главное условие, при использовании классовой адресации — это то, что должна использоваться одна маска для всех подсетей. То есть, если у вас для одной подсети маска 255.255.255.0, то для другой подсети она не может быть 255.255.255.128.Б.
Теперь смотрим на выданную сеть. Путем логических размышлений понимаем, что это адрес класса B. А значит его N (кол-во битов сети) = 16. Ок. Значит на хосты выделено тоже 16 бит. Вспоминаем условия задачи. Нужно создать 120 подсетей. «Откусывать» биты от сетевой части запрещено, значит кусаем от хостовой части.
Теперь нужно взять такое кол-во бит, чтобы хватило для 120 подсетей, однако оставляло достаточное кол-во под биты для хоста. Смотрим на таблицу выше. Если взять 7 бит, то получим 128. 128>120, следовательно попадаем под условие. Если возьмем 6 бит, то получим 64. 64<128, поэтому не попадаем под условие и отбрасываем этот вариант.
Ок. Выяснили, что S надо выделить не меньше 7 бит. Теперь посмотрим, что осталось под хосты. Если N + S + H = 32 => H = 32 — (N + S) => H = 32 — (16 + 7) = 9. Смотрим на таблицу выше (или возводим 2 в 9 степень в уме) и получаем число 512. Отнимаем 2 (адрес сети и широковещательный адрес) и получаем 510 адресов. Нам нужно 180, а значит под условие мы попадаем причем с большим запасом. В таких случаях вам предоставляется право выбора. Сделать больше подсетей или хостов на подсеть. Объясняю, что это значит. У нас есть 9 бит на хосты. Если мы возьмем 8 бит, то получим число 256. 256 — 2 = 254 адреса. Этот вариант нам тоже подходит. Возьмем 7 бит. Получаем 128. Даже не отнимая 2 адреса, становится понятно, что это меньше 180 => данный вариант отбрасывается сразу. Итого получаем, что минимальное количество для подсети — 7 бит, а для хостов — 8 бит. Поэтому свободный бит можно отдать либо на подсеть, либо на хосты. Маска получается сложением N и S. В нашем случае получаем, если под подсеть отдаем 7 бит, то получаем 23. В десятичном виде маска будет выглядеть 255.255.254.0. А если отдадим под подсеть 8 бит, то получим 24 (или в десятичном виде 255.255.255.0). Иногда бывает, что под задачу существует всего одна маска. Ну и, конечно, могут быть случаи, когда маска не попадает не под какие условия. В этих случаях нужно брать сеть другого класса или доказывать заказчику, что это невозможно.
Думаю теперь понятно, как работала классовая адресация, и как ее рассчитывали. Возможно с первого раза голова не переварит этого, поэтому перечитывайте еще раз и повнимательнее. Как только начнет что-то проясняться, потренируйтесь на задачках, которые я оставлю.
Задача №2
1) Записать маску для проекта: сеть 172.16.0.0. 250 подсетей и 220 хостов.
2) Записать маску для проекта: сеть 10.0.0.0. 2000 подсетей и 1500 хостов.
3) Записать маску для проекта: сеть 192.168.0.0. 4 подсети и 60 хостов.
Ответы
1) 24 бита или 255.255.255.0
2) 19 бит (255.255.224.0), 20 бит (255.255.240.0), 21 бит (255.255.248.0)
3) 26 бит или 255.255.255.192
На этом разговор про классовые сети начну закруглять и подведу итоги. Классовая адресация — это зарождение сегодняшнего интернета, и именно с нее все началось. Поэтому плюсов у нее много, и за это создателям спасибо. Но, как вы могли заметить, у нее было жесткая привязка к одной маске. За счет этого IP-адреса использовались не экономно и расточительно. А в связи с бурным ростом Интернета адресов стало не хватать, и срочно нужно было вносить изменения.
Поняли ведущие умы, что использовать классовые сети не удобно и нужно от них отказываться. Это привело к созданию бесклассовой адресации и маскам переменной длины, о чем мы ниже поговорим. Но перед этим пару слов о видах IP-адресов. Несмотря на то, что переход от классовой адресации к бесклассовой предполагал экономию IP-адресов, на деле эта проблема все равно решалась не полностью. Все упиралось в саму технологию IPv4. Объясню почему. Выше я говорил, что длина IP адреса равна 32 бита. Каждый бит может принимать значение 0 или 1, то есть два значения. Соответственно, чтобы вычислить все комбинации, надо возвести 2 в 32-ую степень. Получаем 4294967296 адресов. Если вычесть отсюда зарезервированные для специальных нужд и прочего, то останется примерно 4.2 млрд. адресов, когда на Земле проживает около 7.3 млрд. человек. Поэтому ведущие умы быстро просекли эту фишку и начали искать решение. Они решили выделить некое адресное пространство, которое будет использоваться только в пределах локальной сети и не будет использоваться в Интернете. Это разделило адреса на 2 лагеря: белые или публичные (англ. public) и серые или частные (англ. private).
Привожу диапазон адресов, которые выделены под локальные сети:
1) 10.0.0.0 — 10.255.255.255 с маской 255.0.0.0 (или кратко 10/8).
2) 172.16.0.0 — 172.31.255.255 с маской 255.240.0.0 (или кратко 172.16/12).
3) 192.168.0.0 — 192.168.255.255 (или кратко 192.168/16).
Если честно, я мало где видел применение адресации 172.16.X.X. Обычно в корпоративной среде всегда используется 10.X.X.X, а в домах/квартирах и мелких офисах 192.168.X.X.
Теперь прошу обратить внимание на очень важную вещь, которую многие путают. Не путайте классовую адресацию и диапазон частных адресов. Очень много людей наступают на эти грабли и свято верят, что диапазон частных адресов 10.0.0.0 — 10.255.255.255 — это диапазон A класса.
Разобрались, что такое частные адреса или private адреса. Но это еще не все. Есть еще список зарезервированных адресов, которые не могут светиться в Интернете. По ним написана целая документация на IETF. Привожу ссылку, где можете прочитать оригинал. Я кратко опишу часто встречающиеся.
1) 0.0.0.0/8 — диапазон адресов, используемый хостами для самоидентификации. Обычно это можно увидеть, когда хост пытается получить IP-адрес от DHCP сервера. Так как изначально у него нету IP-адреса, то в поле источника он вставляет адрес из данного диапазона.
2) 127.0.0.0/8 — loopback или localhost адреса. Это IP-адреса, используемые компьютером, чтобы обратиться к самому себе. Очень полезно для проверки работы TCP/IP. Дело в том, что независимо от наличия соединения с Интернетом или локальной сетью, адреса из этого пула должны всегда пинговаться. Если этого не происходит, значит система накрылась или накрывается медным тазом.
3) 169.254.0.0/16 — link-local address или локальные адреса. Автоматически используются хостами при отсутствии DHCP-сервера или его недоступности. Это позволяет быстро организовать локальную сеть и проверить работу узлов. Однако данный пул адресов не маршрутизируется. Следовательно, выйти в Интернет с них не получится.
4) 224.0.0.0/4 — блок адресов, зарезервированный под многоадресную рассылку или multicast. Для тех, кто хочет побольше узнать про multicast, оставляю ссылку.
Бесклассовая адресация (англ. Classless Inter-Domain Routing или CIDR). Описана была в стандарте RFC1519 в 1993 году. Она отказалась от классовых рамок и фиксированной маски. Адреса делятся только на публичные и зарезервированные, о которых написано выше. Если в классовой адресации маска нарезалась единой для всех подсетей, то в бесклассовой — у каждой подсети может быть своя маска. На теории все хорошо и красиво, но нет ничего лучше, чем практика. Поэтому перехожу к ней и объясню, как можно делить на подсети с разным количеством хостов.
В качестве шпаргалки приведу список всех возможных масок.
Представим ситуацию. Вам выдали сеть 192.168.1.0/24 и поставили следующие условия:
1) Подсеть на 10 адресов для гостей.
2) Подсеть на 42 адреса для сотрудников.
3) Подсеть на 2 адреса для соединения 2 маршрутизаторов.
4) Подсеть на 26 адресов для филиала.
Ок. Данная маска показывает, что в нашем распоряжении находятся 256 адресов. По условию эту сеть надо каким-то образом разделить на 4 подсети. Давайте попробуем. 256 очень хорошо делится на 4, давая в ответе 64. Значит один большой блок в 256 адресов можно поделить на 4 равных блока по 64 адреса в каждом. И все было бы прекрасно, но это порождает большое число пустых адресов. Для сотрудников, которым нужно 42 адреса, ладно, может в дальнейшем компания еще наймет. Но вот подсеть для маршрутизаторов, которая требует всего 2 адреса, оставит 60 пустых адресов. Да, вы можете сказать, что это private адреса, и кому дело до них. А теперь представьте, что это публичные адреса, которые маршрутизируются в Интернете. Их и так мало, а тут мы еще будем их отбрасывать. Это не дело, тем более, когда мы можем гибко управлять адресным пространством. Поэтому возвращаемся к примеру и нарежем подсети так, как нам нужно.
Итак, какие подсети должны быть нарезаны, чтобы вместились все адреса, заданные по условию?!
1) Для 10 хостов, наименьшей подсетью будет блок из 16 адресов.
2) Для 42 хостов, наименьшей подсетью будет блок из 64 адресов.
3) Для 2 хостов, наименьшей подсетью будет блок из 4 адресов.
4) Для 26 хостов, наименьшей подсетью будет блок из 32 адресов.
Я понимаю, что не все могут с первого раза в это вникнуть, и в этом нет ничего страшного. Все люди разные и по-разному воспринимают информацию. Для полноты эффекта покажу деление на картинке.
Вот у нас блок, состоящий из 256 адресов.
После деления на 4 части получается следующая картинка.
Выше мы выяснили, что при таком раскладе адреса используются не рационально. Теперь обратите внимание, как стало выглядеть адресное пространство после нарезки подсетей разной длины.
Как видите, в свободном доступе осталось куча адресов, которые мы в дальнейшем сможем использовать. Можно посчитать точную цифру. 256 — (64 + 32 + 16 + 4) = 140 адресов.
Вот столько адресов мы сэкономили. Двигаемся дальше и ответим на следующие вопросы:
— Какими будут сетевые и широковещательные адреса?
— Какие адреса можно будет назначить хостам?
— Как будут выглядеть маски?
Механизм деления на подсети с разной маской получил название VLSM (от англ. Variable Length Subnet Mask) или маска подсети переменной длины. Дам важный совет! Начинайте адресацию с самой большой подсети. Иначе вы можете попасть на то, что адреса начнут перекрываться. Поэтому сначала планируйте сеть на бумаге. Нарисуйте ее, изобразите в виде фигур, просчитайте вручную или на калькуляторе и только потом переходите настройке в боевых условиях.
Итак, самая большая подсеть состоит из 64 адресов. С нее и начнем. Первый пул адресов будет следующий:
Адрес подсети — 192.168.1.0.
Широковещательный адрес — 192.168.1.63.
Пул адресов для назначения хостам от 192.168.1.1 до 192.168.1.62.
Теперь выбор маски. Тут все просто. Отнимаем от целой сети нужный кусок и полученное число записываем в октет маски. То есть 256 — 64 = 192 => маска 255.255.255.192 или /26.
Дальше идет подсеть поменьше. Состоит она из 32 адресов. Если первая заканчивалась на .63, то эта будет начинаться с .64:
Адрес подсети — 192.168.1.64.
Широковещательный адрес — 192.168.1.95.
Пул адресов для назначения хостам будет от 192.168.1.65 до 192.168.1.94.
Маска: 256 — 32 = 224 => 255.255.255.224 или /27.
3-я подсеть, которая предназначена для филиала, начнет старт с .96:
Адрес подсети — 192.168.1.96. Широковещательный адрес — 192.168.1.111.
Пул адресов для назначения хостам будет от 192.168.1.97 до 192.168.1.110.
Маска: 256 — 16 = 240 => 255.255.255.240 или /28.
Ну и для последней подсети, которая уйдет под интерфейсы, соединяющие роутеры, будет начинаться с .112:
Адрес подсети — 192.168.1.112.
Широковещательный адрес — 192.168.1.115.
Разрешенными адресами будут 192.168.1.113 и 192.168.1.114.
Маска: 256 — 4 = 252 => 255.255.255.252 или /30.
Замечу, что адрес 192.168.1.115 является последним используемым адресом. Начиная с 192.168.1.116 и до .255 свободны.
Вот таким образом, при помощи VLSM или масок переменной длины, мы экономно создали 4 подсети с нужным количеством адресов в каждой. Думаю это стоит закрепить задачкой для самостоятельного решения.
Задача №3
Разделите сеть 192.168.1.0/24 на 3 разные подсети. Найдите и запишите в каждой подсети ее адреса, широковещательный адрес, пул разрешенных к выдаче адресов и маску. Указываю требуемые размеры подсетей:
1) Подсеть на 120 адресов.
2) Подсеть на 12 адресов.
3) Подсеть на 5 адресов.
Ответы
1) Адрес подсети — 192.168.1.0.
Широковещательный адрес — 192.168.1.127.
Пул адресов для назначения хостам будет от 192.168.1.1 до 192.168.1.126.
Маска: 256 — 128 = 128 => 255.255.255.128 или /25.
2) Адрес подсети — 192.168.1.128.
Широковещательный адрес — 192.168.1.143.
Пул адресов для назначения хостам будет от 192.168.1.129 до 192.168.1.142.
Маска: 256 — 16 = 240 => 255.255.255.240 или /28.
3) Адрес подсети — 192.168.1.144.
Широковещательный адрес — 192.168.1.151.
Пул адресов для назначения хостам будет от 192.168.1.145 до 192.168.1.150.
Маска: 256 — 8 = 248 => 255.255.255.248 или /29.
Теперь, когда вы знаете, как делить сети на подсети, самое время научиться собирать подсети в одну общую подсеть. Иначе это называется суммированием или summarization. Суммирование чаще всего используется в маршрутизации. Когда у вас в таблице маршрутизатора несколько соседних подсетей, маршрутизация которых проходит через один и тот же интерфейс или адрес. Скорее всего этот процесс лучше объяснять при разборе маршрутизации, но учитывая то, что тема маршрутизации и так большая, то я объясню процесс суммирования в этой статье. Тем более, что суммирование это сплошная математика, а в этой статье мы ею и занимаемся. Ну что же, приступлю.
Представим, что у меня компания состоящая из главного здания и корпусов. Я работаю в главном здании, а в корпусах коллеги. Хоть у меня и главное здание, но в нем всего 4 подсети:
— 192.168.0.0/24
— 192.168.1.0/24
— 192.168.2.0/24
— 192.168.3.0/24
Тут коллеги с соседнего здания очухались и поняли, что у них слетела конфигурация на маршрутизаторе, а бекапов нет. Наизусть они не помнят, какие в главном здании подсети, но помнят, что они находятся рядом друг с другом, и просят прислать одну суммированную. Теперь у меня возникает задача, как их суммировать. Для начала я переведу все подсети в двоичный вид.
Посмотрите внимательно на таблицу. Как видите, у 4 подсетей первые 22 бита одинаковые. Соответственно, если я возьму 192.168.0.0 с маской /22 или 255.255.252.0, то покрою свои 4 подсети. Но обратите внимание на 5 подсеть, которую я специально ввел. Это подсеть 192.168.4.0. 22-ой бит у нее отличается от предыдущих 4-х, а значит выше выбранное не покроет эту подсеть. Ок. Теперь я отправлю коллегам суммированную подсеть, и, если они все правильно пропишут, то маршрутизация до моих подсетей будет работать без проблем.
Возьмем тот же пример и немного изменим условия. Нас попросили прислать суммарный маршрут для подсетей 192.168.0.0 и 192.168.1.0. Я не поленюсь и создам еще одну таблицу.
Обратите внимание, что у 2 первых подсетей одинаковые не 22 бита, а 23 бита. Это значит, что их можно просуммировать еще компактнее. В принципе работать будет и так, и так. Но как говорилось в одной рекламе: «Если нет разницы — зачем платить больше?». Поэтому старайтесь суммировать, не задевая при этом соседние подсети.
Таким образом, переводя подсети в двоичный формат и находя одинаковые биты, можно их суммировать.
Вообще суммирование полезно применять, когда надо объединить несколько подсетей, расположенных вблизи друг с другом. Это позволит сэкономить ресурсы маршрутизаторов. Однако это не всегда возможно. Просуммировать, например, подсеть 192.168.1.0 и 192.168.15.0, не захватив при этом соседние подсети, невозможно. Поэтому перед суммированием стоит подумать над ее целесообразностью. Поэтому повторюсь еще раз, что начинать какую-либо революцию надо на бумажке. Ну и для закрепления материала оставлю небольшую задачу.
Задача №4
Даны 4 подсети:
1) 10.3.128.0
2) 10.3.129.0
3) 10.3.130.0
4) 10.3.131.0
Просуммируйте подсети и найдите маску, которая сможет покрыть их, не задевая при этом соседние подсети.
Ответы
Пришло время закругляться. Статья получилась не очень длинной. Я бы даже сказал наоборот. Но все, что требует знать Cisco про IPv4, мы рассмотрели. Самое главное, что требуется от вас — это научиться работать с адресами и масками и уметь конвертировать их из десятичной в двоичную и обратно. Ну и, конечно, правильно делить на подсети и распределять адресное пространство. Спасибо, что дочитали. А если еще и задачки все сами прорешали, то цены вам нет) А если еще не прорешали, то приятного времяпровождения.
Содержание
- Основы компьютерных сетей. Тема №1. Основные сетевые термины и сетевые модели
- Основы компьютерных сетей. Тема №2. Протоколы верхнего уровня
- Основы компьютерных сетей. Тема №3. Протоколы нижних уровней (транспортного, сетевого и канального)
- Основы компьютерных сетей. Тема №4. Сетевые устройства и виды применяемых кабелей
- Основы компьютерных сетей. Тема №5. Понятие IP адресации, масок подсетей и их расчет
- Основы компьютерных сетей. Тема №6. Понятие VLAN, Trunk и протоколы VTP и DTP
- Основы компьютерных сетей. Тема №7. Протокол связующего дерева: STP
Автор
IP — это протокол связи, который используется от самой маленькой сети из двух устройств до глобальной информационной сети. IP-адрес — это уникальный идентификатор определенного узла (устройства), выделяемый в определенной сети.
Запись IP-адресов
Адрес выглядит как 32-разрядное число в диапазоне от 0 до 4294967295. Это говорит о том, что во всей сети Интернет может содержаться более 4 миллиардов полностью уникальных адресов объектов. Если записывать адреса в двоичной или десятичной форме, то это вызывает свои неудобства по их запоминанию или обработке. Поэтому, для упрощения написания таких адресов, было решено делить полный адрес на четыре октета (8-разрядных числа), разделенных точкой. Для примера: адрес который в шестнадцатеричной системе выглядит как С0290612, в записи IP-адреса будет выглядеть как 192.41.6.18. При этом наименьший адрес — это четыре нуля, а максимальный — четыре группы по 255. Старшая область (та, что располагается с левой стороны групп цифр от любой из разделительных точек) занята областью адреса, младшая область (с правой стороны от этой же разделительной точки) показывает номер интерфейса в этой сети. Положение границы между хостовой и сетевой частями зависит от количества бит, которое отвели на номер сети, бывает различным, разделение идет только по границе октета (точки между ними) и позволяет определить классы IP-адресов.
Как узнать IP-адрес компьютера в локальной сети?! Кажется, что это так сложно, а на деле все…
Классовая модель адресов
Несколько десятилетий адреса имеют разделение на 5 классов. Это устаревающее в данный момент разделение называется полноклассовой адресацией. Классы IP-адресов называются буквами латинского алфавита от А до E. Классы от А до Е дают возможность задать идентификаторы для 128 сетей с 16 миллионами сетевых интерфейсов в каждой, 16384 сети с 64 тысячами устройств и 2 миллионов сетей с 256 интерфейсами. Классы IP-сетей D предусмотрены для многоадресной рассылки, при которой пакеты сообщений рассылаются на несколько хостов одновременно. Адреса, которые имеют начальными битами 1111, являются зарезервированными для применения в будущем.
Ниже представлена таблица IP-адресов. Классы определяются по старшим битам адресов.
Класс А
IP-адреса класса А характеризуются нулевым старшим битом адреса и восьмибитным размером принадлежности к сети. Записываются в виде:
Исходя из этого, наибольшее число сетей класса А может быть 27, но каждая из них будет иметь адресное пространство 224 устройств. Так как первый бит адреса равен 0, то все IP-адреса класса А будут находиться в диапазоне старшего октета от 0 до 127, который, к тому же, будет являться и номером сети. При этом нулевой адрес и 127 зарезервированы под служебные адреса, поэтому использование их невозможно. По этой причине точное количество сетей класса А равняется 126.
В данной статье мы расскажем вам что такое степени защиты IP и как правильно расшифровать ее…
Под адреса узлов в сети класса А отводится 3 байта (или 24 бита). Простой расчет показывает, что можно разместить 16 777 216 двоичных комбинаций (адресов интерфейсов). Так как адреса, состоящие полностью из нулей и единиц, являются специализированными, то количество сетей класса А уменьшается до 16 777 214 адресов.
Классы В и С
Основной отличительной особенностью IP-адреса класса b будет значение двух старших битов, равное 10. При этом размер сетевой части будет равняться 16 битам. Формат адреса этой сети выглядит так:
По этой причине наибольшее число сетей класса B может быть 214 (16384) с адресным пространством 216 каждая из них. IP-адреса класса B начинаются в диапазоне от 128 до 191. Это является отличительной особенностью, по которой можно определить принадлежность сети к этому классу. Два байта, отведенные под адреса этих сетей, за вычетом нулевых и состоящих из единиц адресов, могут составить количество узлов, равное 65 534.
Для того чтобы идентифицировать каждый конкретный компьютер, подключенный к сети Интернет, была…
Любой IP-адрес класса C начинается в диапазоне от 192 до 223, при этом номер сети занимает три старших октета. Схематически адрес имеет такую структуру:
Три старших бита имеют первыми 110, сетевая часть 24 бита. Наибольшее число сетей в этом классе составляет 221 (это 2097152 сети). Под адреса узлов в IP-адресе сетей класса С отводится 1 байт, это всего 254 хоста.
Дополнительные классы сетей
В классы D и Е включаются сети со старшим октетом выше 224. Эти адреса резервируются для специализированных целей, таких как, например, мультикастинг – передача дейтаграмм определенным группам узлов в сети.
Диапазон класса D используется для рассылки пакетов и лежит в границах от 224.0.0.0 до 239.255.255.255. Последний класс, Е, зарезервирован для использования в будущем. В него входят адреса от 240.0.0.0 до 255.255.255.255. Поэтому если не хотите проблем с адресацией, желательно не брать IP-адреса из этих диапазонов.
Зарезервированные IP-адреса
Существуют адреса, которые нельзя давать никаким устройствам, какая бы ни была IP-адресация. Служебные IP-адреса имеют специфическое назначение. Например, если адрес сети состоит из нулей, то это подразумевает, что узел относится к текущей сети или определенному сегменту. Если все единицы – то это адрес для широковещательных рассылок пакетов.
В классе А есть две выделенные особые сети с номерами 0 и 127. Адрес, равный нулю, используется в качестве маршрута по умолчанию, а 127 показывает адресацию на самого себя (интерфейс обратной связи). Например, обращение по IP 127.0.0.1 значит, что узел общается только сам с собой без выхода дейтаграмм на уровень среды передачи данных. Для транспортного уровня такое соединение не отличается от связи с удаленным узлом, поэтому такой адрес обратной связи часто используется для тестирования сетевого ПО.
Определение идентификаторов сети и узла
Зная IP-адрес устройства в случае, когда встает вопрос о том, как определить класс IP-адреса, то достаточно просто посмотреть на первый октет адреса. Если он от 1 до 126, то это сеть класса А, от 128 до 191 – это сеть класса В, от 192 до 223 — сеть класса С.
Для идентификации сети нужно помнить, что в А классе это начальное число в IP-адресе, в В – начальные два числа, в С – начальные три числа. Остальные являются идентификаторами сетевых интерфейсов (узлов). К примеру, IP-адрес 139.17.54.23 является адресом класса В, так как первое число — 139 — больше 128 и меньше 191. Поэтому идентификатор сети будет равен 139.17.0.0, идентификатор узла – 54.23.
Подсети
При помощи маршрутизаторов и мостов есть возможность расширить сеть, добавив к ней сегменты, или разделить ее на более мелкие подсети путем изменения идентификатора сети. В этом случае берется маска подсети, которая показывает, какой сегмент IP-адреса будет применяться как новый идентификатор данной подсети. При совпадении идентификаторов можно делать вывод, что узлы принадлежат одной подсети, иначе они будут находиться в различных подсетях и для их соединения потребуется маршрутизатор.
Классы IP-адресов рассчитаны так, что число сетей и узлов для определенной организации определено заранее. По умолчанию в организации можно развернуть только одну сеть с некоторым количеством подключенных к сети устройств. Есть определенный идентификатор сети и некоторое количество узлов, имеющее ограничение в соответствии с классом сети. При большом количестве узлов сеть будет низкой пропускной способности, так как даже при любой широковещательной рассылке производительность будет падать.
Маски подсетей
Для того чтобы разделить идентификатор, необходимо применять маску подсети – некий шаблон, помогающий отличить идентификаторы сетей от идентификаторов узлов в IP-адресах. Классы IP-адресов не накладывают ограничения на маску подсети. Маска внешне выглядит так же, как и адрес — четыре группы цифр от 0 до 255. При этом сначала идут большие числа, за ним меньшие. К примеру, 255.255.248.0 – это правильная маска подсети, 255.248.255.0 – неправильная. Маска 255.255.255.0 определяет начальные три октета IP-адреса как идентификатор подсети.
При проектировании сегментации сети предприятия необходимо, чтобы правильно была организована IP-адресация. Классы IP-адресов, разделенные на сегменты с помощью масок, позволяют не только увеличить количество компьютеров в сети, но и организовать ее высокую производительность. Каждый класс адреса имеет маску сети по умолчанию.
Для дополнительных подсетей часто используются не маски по умолчанию, а индивидуальные. Например, IP-адрес 170.15.1.120 может использовать маску подсети 255.255.255.0 с идентификатором сети 170.15.1.0, при этом не обязательно использовать маску подсети 255.255.0.0 с идентификатором 170.15.0.0, который используется по умолчанию. Это позволяет разбивать существующую сеть организации класса В с идентификатором 170.15.0.0 на подсети с помощью различных масок.
Расчет параметров подсетей
После настройки подсети на каждом интерфейсе программное обеспечение сетевого протокола будет проводить опрос IP-адресов, используя при этом маску подсети для определения адреса подсети. Существуют две простые формулы для подсчета максимального числа подсетей и хостов в сети:
- 2(количество битов, равных единице в маске) — 2 = наибольшее число подсетей;
- 2(количество нулей в маске подсети) — 2 = наибольшее количество устройств в подсети.
Например, возьмем адрес, равный 182.16.52.10 с маской 255.255.224.0. Маска в двоичном виде выглядит так: 11111111.11111111.11100000.00000000. Судя по первому октету, это сеть принадлежит к классу В, поэтому рассматриваем третий и четвертый октеты. Три единицы и тринадцать нулей подставляем в формулы и получаем 23-2=6 подсетей и 213 — 2 = 8190 хостов.
При применении стандартной маски сети класса В в виде 255.255.255.0 сеть может иметь 65534 подключенных устройства. Если адрес подсети занимает полный байт узла, то количество подключенных устройств в каждой подсети сокращается до 254. При необходимости превысить это число устройств могут возникать проблемы, решаемые укорочением поля маски адреса подсети или добавлением еще одного вторичного адреса в интерфейсе маршрутизатора. Но в этом случае будет наблюдаться уменьшение количества возможных сетей.
При создании подсетей в сети класса С следует помнить, что выбор будет очень мал при свободном только одном октете. При отсеивании нулевых и широковещательных адресов остается возможность создания четырех оптимальных вариантов наборов подсетей: одна подсеть на 253 хоста, две подсети на 125 хостов, четыре подсети по 61 хосту, восемь подсетей по 29 хостов. Остальные варианты разбиения будут вызывать проблемы при маршрутизации и широковещательных рассылок или просто вызывать неудобства при расчетах адресации между хостами.
Формировать подсети в сетях класса В уже проще, так как больше свобода выбора. По умолчанию маска подсети равна 255.255.0.0, при ее использовании получаем 65534 хоста. При создании масок подсетей под их адреса выделяются левые непомеченные биты из 3 и 4 октета. Путем расчетов можно вывести оптимальные сети с номерами 32, 64, 96, 128, 160 и 192.
Сети класса А имеют очень большое количество адресов, для которых возможно создавать подсети. Для использования масок подсетей можно использовать до 32 бит. Используя вышеприведенную формулу, мы можем определить, что максимальное количество подсетей может быть до 254. При этом на адреса хостов остается 16 бит, то есть можно подключить 65534 узлов.
Конечно, это только примерные расчеты. При создании секторов и работе с подсетями приходится учитывать больше факторов, которые зависят от провайдера и уровня предприятия.