на что влияет маска подсети

Маска подсети — что это такое в деталях

Наверное, каждый, кто хоть раз сталкивался с настройкой интернет соединения слышал о таком понятии — Маска подсети, но не все знают, что это такое, да и информация в интернете по этому запросу довольно устарела и сложна в понимании.

Давайте закроем этот пробел знаний в работе сети и интернета в целом и выясним, что это такое и зачем она в принципе нужна. Информация будет изложена самым доступным и понятным языком.

на что влияет маска подсети. Смотреть фото на что влияет маска подсети. Смотреть картинку на что влияет маска подсети. Картинка про на что влияет маска подсети. Фото на что влияет маска подсети

Итак, вот мы и отметили день программиста, продолжим обучение компьютерной грамотности и разберем по полочкам, что такое маска подсети, для чего она нужна и как вообще это работает.

Что такое маска подсети

Маска подсети (network mask, subnet mask) — это битовая маска (bitmask), которая используется для определения к какой подсети принадлежит определенный ИП адрес. Она не отправляется в заголовках IP-пакетов, т.е. не является ее частью, поэтому по айпи узнать ее просто никак нельзя.

Как и IP-адрес в IPv4 имеет размер в 32-бита. В двоичном формате, ноли и единицы не должны в ней чередоваться, так вначале всегда идут единички, а уже потом ноли.

Чаще всего пишется префиксом, например, 192.168.11.4/19. Посчитать префикс довольно легко, например, у 255.255.224.000, префикс будет — 19. Посчитайте просто все первые единички в двоичном формате.

Также, можно посчитать и в обратную сторону. Напишите столько единичек и сколько нужно, например, 15, потом допишите 17 нолей, чтобы получилось 32 и переведите это в десятичный формат, получится: 255.254.000.000. Не забывайте, после каждой 8 цифры ставить точку.

на что влияет маска подсети. Смотреть фото на что влияет маска подсети. Смотреть картинку на что влияет маска подсети. Картинка про на что влияет маска подсети. Фото на что влияет маска подсети

Интересно! Как и протокол IPv4 маска сети состоит тоже из 32 бит. И для запоминания, протокол IPv6 состоит из 128 бит.

Сам префикс означает вот что, например, возьмем префикс 20, это означает, что из 32 бит, 20 будут хранить информацию о самой сети, а 12 уже информацию о хосте. Посчитаем сколько это возможных IP адресов. 2^12 = 4 096. Убираем два адреса, т.к. они всегда зарезервированы под свои цели и получаем 4 094.

Для чего нужна маска сети

Она позволяет определить, кто находится с вами в одной (под)сети, а кто не в ней. Компьютеры, находящиеся внутри одной сети, обмениваются данными между собой напрямую, например, в локальной. Но если нужно выйти в глобальную паутину, то запрос идет уже через роутер — шлюз по умолчанию.

на что влияет маска подсети. Смотреть фото на что влияет маска подсети. Смотреть картинку на что влияет маска подсети. Картинка про на что влияет маска подсети. Фото на что влияет маска подсети

Она позволяет понять сеть нахождения IP-адреса, к примеру, адрес 193.150.14.87 и с маской 255.255.255.0 располагается в сети 193.150.14.0/24.

Рассчитывается это так: Используется функция поразрядной конъюнкции (побитовое И). Это просто, переводим все в бинарную/двоичную систему счисления. Ставим ИП-адрес и маску подсети друг над другом и считаем поочередно сверху и снизу. Если единички совпадают — то ставим 1, если есть хотя бы один ноль, то ставим 0. Потом переводим назад в десятичную и смотрим результат. Вот пример.

193.150.14.0/24 предполагает 256 айпи и как мы помним 2 мы от них убираем, т.к. они зарезервированы, остается 254.

Важно! Главное не ошибиться в расчетах и вообще указать ее правильно, так, например, если вы укажите 0.0.0.0 — то компьютер будет считать абсолютно все адреса локальными и даже не будет пытаться соединится с внешним интернетом. Это же работает и в обратную сторону — укажите не правильный префикс, то компьютер будет считать другой хост, который по сути находится с ним же в связке — внешним, и будет пытаться подключиться к нему через сетевой шлюз.

Как вычислить маску подсети для определенного количества ПК

При ее выборе, также стоит учитывать и класс сети, вот наглядная картинка с диапазонами IP-адресов:

на что влияет маска подсети. Смотреть фото на что влияет маска подсети. Смотреть картинку на что влияет маска подсети. Картинка про на что влияет маска подсети. Фото на что влияет маска подсети

Например, нам нужно выделить 30 IP-адресов для компьютеров в определенной фирме. Вычисляется все так: 28 — 30 — 2 = 256 — 30 — 2 = 224. Т.е. у нас получается: 255.255.255.224. Естественно для этих целей мы берем сеть класса C. Так, вы можете рассчитать ее для любого количества компьютеров.

Интересно! Также, с помощью нее можно разбивать большие сетки на несколько более маленьких. Это очень удобно, особенно в больших корпорациях.

В заключение

Надеюсь все объяснил, как можно в более понятном виде, чтобы вы точно усвоили материал. В дальнейших публикациях продолжим тему работы с глобальной паутиной, так что приходите еще.

Источник

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

Из Википедии — свободной энциклопедии

Маска подсети — битовая маска для определения по IP-адресу адреса подсети и адреса узла (хоста, компьютера, устройства) этой подсети. В отличие от IP-адреса маска подсети не является частью IP-пакета.

Благодаря маске можно узнать, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети.

Например, узел с IP-адресом 12.34.56.78 и маской подсети 255.255.255.0, с длиной префикса 24 бита (/24), находится в сети 12.34.56.0.

В случае адресации IPv6 адрес 2001:0DB8:1:0:6C1F:A78A:3CB5:1ADD с длиной префикса 32 бита (/32) находится в сети 2001:0DB8::/32.

Другой вариант определения — это определение подсети IP-адресов. Например, с помощью маски подсети можно сказать, что один диапазон IP-адресов будет в одной подсети, а другой диапазон соответственно в другой подсети.

Чтобы получить адрес сети, зная IP-адрес и маску подсети, необходимо применить к ним операцию поразрядной конъюнкции (побитовое И). Например, в случае более сложной маски:

Разбиение одной большой сети на несколько маленьких подсетей позволяет упростить маршрутизацию. Например, пусть таблица маршрутизации некоторого маршрутизатора содержит следующую запись:

Сеть назначенияМаска сетиАдрес шлюза
192.168.1.0255.255.255.010.20.30.1

Пусть теперь маршрутизатор получает пакет данных с адресом назначения 192.168.1.2. Обрабатывая построчно таблицу маршрутизации, он обнаруживает, что при наложении (применении операции «побитовое И») на адрес 192.168.1.2 маски 255.255.255.0 получается адрес сети 192.168.1.0. В таблице маршрутизации этой сети соответствует шлюз 10.20.30.1, которому и отправляется пакет.

Битовые операции при расчёте адреса сети в IPv6 выглядят аналогично. Но в IPv6 можно просто рассчитать адрес сети по длине префикса, применив формулу: «длина префикса в битах» / 4 = «кол-во 0xF у адреса сети». Взяв полученное количество 0xF из адреса узла, получаем адрес сети.

Источник

Маска подсети. Вы уверены, что понимаете для чего она нужна?

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

Это набор IP-адресов, которые могут быть выданы хостам. Чтобы подсчитать количество адресов, нужно от общего количества адресов подсети отнять два адреса. При обмене пакетами между хостами в одной подсети маршрутизатор и шлюз не нужны.

Это адрес который не присвоен ни одному хосту в подсети. Данный адрес используется для отправки широковещательных пакетов, которые предназначены каждому хосту подсети.

У маски подсети существует два наиболее часто используемые формы записи:

Данный вид записи наверное знаком каждому, поэтому никаких дополнительных пояснений не требует.

При ответе на этот вопрос нужно было понимать особенности построения масок подсетей и сказать, что минимальная подсеть может иметь 4-е адреса.

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

Все дополнительные нюансы, касательно настройки маски подсети ищите в этом руководстве.

Источник

Понимание основ TCP/IP-адресов и подсети

Эта статья предназначена как общее введение к понятиям сетей и подсетей протокола Интернета (IP). В конце статьи включается глоссарий.

Применяется к: Windows 10 — все выпуски
Исходный номер КБ: 164015

Сводка

При настройке протокола TCP/IP на компьютере Windows, параметры конфигурации TCP/IP требуют:

Чтобы правильно настроить TCP/IP, необходимо понять, как адресованы сети TCP/IP и разделены на сети и подсети.

Успех TCP/IP как сетевого протокола Интернета во многом объясняется его способностью подключать сети разных размеров и системы разных типов. Эти сети произвольно определяются на три основных класса (наряду с несколькими другими), которые имеют заранее определенные размеры. Каждая из них может быть разделена системными администраторами на более мелкие подсети. Маска подсети используется для разделения IP-адреса на две части. Одна часть определяет хост (компьютер), другая — сеть, к которой она принадлежит. Чтобы лучше понять, как работают IP-адреса и подсети, посмотрите IP-адрес и узнайте, как он организован.

IP-адреса: сети и хосты

IP-адрес — это 32-битный номер. Он уникально идентифицирует хост (компьютер или другое устройство, например принтер или маршрутизатор) в сети TCP/IP.

IP-адреса обычно выражаются в формате dotted-decimal с четырьмя номерами, разделенными периодами, такими как 192.168.123.132. Чтобы понять, как подсети используются для различия между хостами, сетями и подсетями, изучите IP-адрес в двоичной нотации.

Например, ip-адрес 192.168.123.132 (в двоичной нотации) — это 32-битный номер 110000000101000111101110000100. Это число может быть трудно понять, поэтому разделите его на четыре части из восьми двоичных цифр.

Эти 8-битные разделы называются octets. В этом примере IP-адрес становится 11000000.10101000.01111011.10000100. Это число имеет немного больше смысла, поэтому для большинства применений преобразуем двоичный адрес в формат dotted-decimal (192.168.123.132). Десятичные числа, разделенные периодами, — это октеты, преобразованные из двоичных в десятичные.

Чтобы сеть TCP/IP широкой области (WAN) эффективно работала в качестве коллекции сетей, маршрутизаторы, которые передают пакеты данных между сетями, не знают точного расположения хоста, для которого предназначен пакет информации. Маршрутизаторы знают только о том, какая сеть является членом хоста, и используют сведения, хранимые в таблице маршрутов, чтобы определить, как получить пакет в сеть принимающего пункта назначения. После доставки пакета в сеть назначения пакет доставляется соответствующему хосту.

Маска subnet

Второй элемент, необходимый для работы TCP/IP, — это маска подсети. Маска подсети используется протоколом TCP/IP для определения того, находится ли хост в локальной подсети или в удаленной сети.

В TCP/IP части IP-адреса, используемые в качестве сетевых и хост-адресов, не исправлены. Если у вас нет дополнительных сведений, то сетевые и хост-адреса выше не могут быть определены. Эта информация предоставляется в другом 32-битовом номере, называемом подсетевой маской. В этом примере маска подсети — 255.255.255.0. Это не очевидно, что это число означает, если вы не знаете 255 в двоичной нотации равно 11111111. Таким образом, подсетевая маска 1111111.1111111.11111111.000000000.

Разделять IP-адрес и подсетевую маску вместе, можно разделять сетевые и хост-части адреса:

Первые 24 бита (количество из них в подсети) определены как сетевой адрес. Последние 8 битов (количество оставшихся нулей в маске подсети) определены как адрес хоста. Он дает следующие адреса:

Итак, в этом примере с помощью маски подсети 255.255.255.0 используется сетевой ID 192.168.123.0, а адрес хоста — 0.0.0.132. Когда пакет поступает в подсеть 192.168.123.0 (из локальной подсети или удаленной сети) и имеет адрес назначения 192.168.123.132, компьютер получает его из сети и обрабатывает его.

Почти все маски десятичных подсетей преобразуются в двоичные числа, которые являются слева, и все нули справа. Некоторые другие распространенные подсети маски:

Десятичный двоичный 255.255.255.192 1111111.11111111.1111111.11000000 0 255.255.255.224 1111111.11111111.1111111.11100000

Internet RFC 1878 (доступна в InterNIC-Public Information Regarding Internet Domain Name Registration Services)описывает допустимые подсети и подсети, которые можно использовать в сетях TCP/IP.

Классы сети

Интернет-адреса выделяются организацией InterNIC,управляющей Интернетом. Эти IP-адреса делятся на классы. Наиболее распространенными из них являются классы A, B и C. Классы D и E существуют, но не используются конечными пользователями. Каждый из классов адресов имеет другую подсетевую маску по умолчанию. Класс IP-адреса можно определить, посмотрев его первый октет. Ниже следующую следующую линейку адресов Интернета класса A, B и C, каждый из которых имеет пример:

Сети класса A используют маску подсети по умолчанию 255.0.0.0 и имеют 0-127 в качестве первого октета. Адрес 10.52.36.11 — это адрес класса А. Его первый octet — 10, то есть от 1 до 126 включительно.

Сети класса B используют маску подсети по умолчанию 255.255.0.0 и имеют 128-191 в качестве первого октета. Адрес 172.16.52.63 — это адрес класса B. Его первый octet — 172, который составляет от 128 до 191 включительно.

Сети класса C используют маску подсети по умолчанию 255.255.255.0 и имеют 192-223 в качестве первого октета. Адрес 192.168.123.132 — это адрес класса C. Его первый octet 192, который находится между 192 и 223, включительно.

В некоторых сценариях значения маски подсети по умолчанию не соответствуют потребностям организации по одной из следующих причин:

В следующем разделе рассказывается, как можно разделить сети с помощью масок подсети.

Subnetting

Сеть TCP/IP класса A, B или C может быть дополнительно разделена системным администратором или подсети. Это становится необходимым при согласовании логической адресной схемы Интернета (абстрактного мира IP-адресов и подсетей) с физическими сетями, которые используются в реальном мире.

Системный администратор, которому выделен блок IP-адресов, может управлять сетями, которые не организованы таким образом, чтобы легко вписываться в эти адреса. Например, у вас есть широкая сеть с 150 хостами в трех сетях (в разных городах), подключенных маршрутизатором TCP/IP. Каждая из этих трех сетей имеет 50 хостов. Вам выделена сеть класса C 192.168.123.0. (Для иллюстрации этот адрес на самом деле из диапазона, который не выделяется в Интернете.) Это означает, что для 150 хостов можно использовать адреса 192.168.123.1 по 192.168.123.254.

Два адреса, которые не могут использоваться в вашем примере, являются 192.168.123.0 и 192.168.123.255, так как двоичные адреса с хост-частью всех и все нули недействительны. Нулевой адрес недействителен, так как используется для указания сети без указания хоста. 255-й адрес (в двоичной нотации— хост-адрес всех) используется для передачи сообщения каждому хосту в сети. Просто помните, что первый и последний адрес в любой сети или подсети не может быть назначен любому отдельному хосту.

Теперь вы можете предоставить IP-адреса 254 хостов. Он отлично работает, если все 150 компьютеров находятся в одной сети. Однако 150 компьютеров находятся в трех отдельных физических сетях. Вместо того, чтобы запрашивать дополнительные блоки адресов для каждой сети, вы разделите сеть на подсети, которые позволяют использовать один блок адресов в нескольких физических сетях.

В этом случае вы разделите сеть на четыре подсети, используя подсетевую маску, которая делает сетевой адрес больше и возможный диапазон адресов хостов меньше. Другими словами, вы «заимствуете» некоторые биты, используемые для хост-адреса, и используете их для сетевой части адреса. Подсетевая маска 255.255.255.192 предоставляет четыре сети по 62 хостов каждая. Он работает, так как в двоичной нотации 255.255.255.192 то же самое, что и 11111111.1111111.110000000. Первые две цифры последнего октета становятся сетевыми адресами, поэтому вы получаете дополнительные сети 00000000 (0), 010000000 (64), 10000000 (128) и 110000000 (192). (Некоторые администраторы будут использовать только две подсети с использованием 255.255.255.192 в качестве маски подсети. Дополнительные сведения по этому вопросу см. в разделе RFC 1878.) В этих четырех сетях последние шесть двоичных цифр можно использовать для хост-адресов.

Используя подсетевую маску 255.255.255.192, сеть 192.168.123.0 становится четырьмя сетями 192.168.123.0, 192.168.123.64, 192.168.123.128 и 192.168.123.192. Эти четыре сети будут иметь допустимые хост-адреса:

192.168.123.1-62 192.168.123.65-126 192.168.123.129-190 192.168.123.193-254

Помните, что двоичные хост-адреса со всеми или всеми нулями являются недействительными, поэтому нельзя использовать адреса с последним октетом 0, 63, 64, 127, 128, 191, 192 или 255.

Вы можете увидеть, как это работает, глядя на два хост-адреса, 192.168.123.71 и 192.168.123.133. Если используется маска подсети класса C по умолчанию 255.255.255.0, оба адреса находятся в сети 192.168.123.0. Однако, если вы используете подсетевую маску 255.255.255.192, они находятся в разных сетях; 192.168.123.71 на сети 192.168.123.64, 192.168.123.133 — на сети 192.168.123.128.

Шлюзы по умолчанию

Если компьютер tCP/IP должен общаться с хостом в другой сети, он обычно общается с помощью устройства, называемого маршрутизатором. В терминах TCP/IP маршрутизатор, указанный в хосте, который связывает подсеть хостов с другими сетями, называется шлюзом по умолчанию. В этом разделе объясняется, как TCP/IP определяет, отправлять ли пакеты в шлюз по умолчанию для достижения другого компьютера или устройства в сети.

Когда хост пытается взаимодействовать с другим устройством с помощью TCP/IP, он выполняет процесс сравнения с помощью определенной подсети и IP-адреса назначения по сравнению с подсети и собственным IP-адресом. В результате этого сравнения компьютеру сообщается, является ли назначение локальным хостом или удаленным хостом.

Если в результате этого процесса определяется назначение локального хоста, компьютер отправляет пакет в локальной подсети. Если в результате сравнения определяется назначение удаленного хоста, компьютер перенаправлен пакет в шлюз по умолчанию, определенный в свойствах TCP/IP. После этого маршрутизатор несет ответственность за перенаправку пакета в правильную подсеть.

Устранение неполадок

Проблемы сети TCP/IP часто возникают из-за неправильной конфигурации трех основных записей в свойствах TCP/IP компьютера. Понимая, как ошибки в конфигурации TCP/IP влияют на сетевые операции, можно решить множество распространенных проблем TCP/IP.

Неправильная маска подсети. Если сеть использует подсетевую маску, не подлежащую маске по умолчанию для своего класса адресов, и клиент по-прежнему настроен с помощью маски подсети по умолчанию для класса адресов, связь не будет работать с некоторыми соседними сетями, но не с удаленными. Например, если вы создаете четыре подсети (например, в примере подсетей), но используете неправильную подсетевую маску 255.255.255.0 в конфигурации TCP/IP, хосты не смогут определить, что некоторые компьютеры находятся на разных подсетях, чем их собственные. В этой ситуации пакеты, предназначенные для хостов различных физических сетей, которые являются частью одного и того же адреса класса C, не будут отправлены в шлюз по умолчанию для доставки. Распространенным симптомом этой проблемы является то, что компьютер может общаться с хостами, которые находятся в локальной сети, и может общаться со всеми удаленными сетями, за исключением тех сетей, которые находятся поблизости и имеют один и тот же адрес класса A, B или C. Чтобы устранить эту проблему, просто введите правильную подсетевую маску в конфигурации TCP/IP для этого хоста.

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

Неправильный шлюз по умолчанию: компьютер, настроенный с неправильным шлюзом по умолчанию, может взаимодействовать с хостами в своем сетевом сегменте. Но он не сможет общаться с хостами в некоторых или всех удаленных сетях. Хост может общаться с некоторыми удаленными сетями, но не с другими, если верны следующие условия:

Эта проблема распространена, если в организации есть маршрутизатор к внутренней сети TCP/IP и другой маршрутизатор, подключенный к Интернету.

Ссылки

Две популярные ссылки на TCP/IP:

Рекомендуется, чтобы системный администратор, отвечающий за сети TCP/IP, мог иметь хотя бы одну из этих ссылок.

Глоссарий

Адрес трансляции— IP-адрес с хост-частью, которая является всеми.

Host—A computer or other device on a TCP/IP network.

Internet—Глобальная коллекция сетей, подключенных друг к другу и общих IP-адресов.

InterNIC—Организация, ответственная за администрирование IP-адресов в Интернете.

IP—Сетевой протокол, используемый для отправки сетевых пакетов через сеть TCP/IP или Интернет.

IP-адрес — уникальный 32-битный адрес для хоста в сети TCP/IP или в Интернете.

Network—Существует два использования сети терминов в этой статье. Одна из них — это группа компьютеров в одном физическом сегменте сети. Другой — диапазон адресов IP-сети, выделенный системным администратором.

Сетевой адрес— IP-адрес с хост-частью, которая имеет все нули.

Octet—8-bit number, 4 из которых состоят из 32-битного IP-адреса. Они имеют диапазон 000000000-1111111, соответствующий десятичных значениям 0-255.

RFC (Запрос на комментарий)—Документ, используемый для определения стандартов в Интернете.

Маршрутизатор— устройство, которое передает сетевой трафик между различными IP-сетями.

Subnet Mask — 32-битный номер, используемый для разграничеть сетевые и хост-части IP-адреса.

Subnet или Subnetwork — это сеть меньшего размера, созданная путем деления более крупной сети на равные части.

TCP/IP—Используется широко, набор протоколов, стандартов и утилит, обычно используемых в Интернете и крупных сетях.

Широкая сеть области (WAN)—Большая сеть, которая является коллекцией небольших сетей, разделенных маршрутизаторами. Интернет — пример большого WAN.

Источник

Еще раз про IP-адреса, маски подсетей и вообще

Чуточку ликбеза. Навеяно предшествующими копипастами разной чепухи на данную тему. Уж простите, носинг персонал.

IP-адрес (v4) состоит из 32-бит. Любой уважающий себя админ, да и вообще айтишник (про сетевых инженеров молчу) должен уметь, будучи разбуженным среди ночи или находясь в состоянии сильного алкогольного опьянения, правильно отвечать на вопрос «из скольки бит состоит IP-адрес». Желательно вообще-то и про IPv6 тоже: 128 бит.

Обстоятельство первое. Всего теоретически IPv4-адресов может быть:
2 32 = 2 10 *2 10 *2 10 *2 2 = 1024*1024*1024*4 ≈ 1000*1000*1000*4 = 4 млрд.
Ниже мы увидим, что довольно много из них «съедается» под всякую фигню.

Записывают IPv4-адрес, думаю, все знают, как. Четыре октета (то же, что байта, но если вы хотите блеснуть, то говорите «октет» — сразу сойдете за своего) в десятичном представлении без начальных нулей, разделенные точками: «192.168.11.10».

В заголовке IP-пакета есть поля source IP и destination IP: адреса источника (кто посылает) и назначения (кому). Как на почтовом конверте. Внутри пакетов у IP-адресов нет никаких масок. Разделителей между октетами тоже нет. Просто 32-бита на адрес назначения и еще 32 на адрес источника.

Однако, когда IP-адрес присваивается интерфейсу (сетевому адаптеру или как там его еще называют) компьютера или маршрутизатора, то кроме самого адреса данного устройства ему назначают еще и маску подсети. Еще раз: маска не передается в заголовках IP-пакетов.

Компьютерам маска подсети нужна для определения границ — ни за что не угадаете чего — подсети. Чтоб каждый мог определить, кто находится с ним в одной [под]сети, а кто — за ее пределами. (Вообще-то можно говорить просто «сети», часто этот термин используют именно в значении «IP-подсеть».) Дело в том, что внутри одной сети компьютеры обмениваются пакетами «напрямую», а когда нужно послать пакет в другую сеть — шлют их шлюзу по умолчанию (третий настраиваемый в сетевых свойствах параметр, если вы помните). Разберемся, как это происходит.

Маска подсети — это тоже 32-бита. Но в отличии от IP-адреса, нули и единицы в ней не могут чередоваться. Всегда сначала идет сколько-то единиц, потом сколько-то нулей. Не может быть маски

Но может быть маска

Сначала N единиц, потом 32-N нулей. Несложно догадаться, что такая форма записи является избыточной. Вполне достаточно числа N, называемого длиной маски. Так и делают: пишут 192.168.11.10/21 вместо 192.168.11.10 255.255.248.0. Обе формы несут один и тот же смысл, но первая заметно удобнее.

Чтобы определить границы подсети, компьютер делает побитовое умножение (логическое И) между IP-адресом и маской, получая на выходе адрес с обнуленными битами в позициях нулей маски. Рассмотрим пример 192.168.11.10/21:

11000000.10101000.00001011.00001010
11111111.11111111.11111000.00000000
———————————————-
11000000.10101000.00001000.00000000 = 192.168.8.0

Обстоятельство второе. Любой уважающий себя администратор обязан уметь переводить IP-адреса из десятичной формы в двоичную и обратно в уме или на бумажке, а также хорошо владеть двоичной арифметикой.

Адрес 192.168.8.0, со всеми обнуленными битами на позициях, соответствующих нулям в маске, называется адресом подсети. Его (обычно) нельзя использовать в качестве адреса для интерфейса того или иного хоста. Если же эти биты наоборот, установить в единицы, то получится адрес 192.168.15.255. Этот адрес называется направленным бродкастом (широковещательным) для данной сети. Смысл его по нынешним временам весьма невелик: когда-то было поверье, что все хосты в подсети должны на него откликаться, но это было давно и неправда. Тем не менее этот адрес также нельзя (обычно) использовать в качестве адреса хоста. Итого два адреса в каждой подсети — на помойку. Все остальные адреса в диапазоне от 192.168.8.1 до 192.168.15.254 включительно являются полноправными адресами хостов внутри подсети 192.168.8.0/21, их можно использовать для назначения на компьютерах.

Таким образом, та часть адреса, которой соответствуют единицы в маске, является адресом (идентификатором) подсети. Ее еще часто называют словом префикс. А часть, которой соответствуют нули в маске, — идентификатором хоста внутри подсети. Адрес подсети в виде 192.168.8.0/21 или 192.168.8.0 255.255.248.0 можно встретить довольно часто. Именно префиксами оперируют маршрутизаторы, прокладывая маршруты передачи трафика по сети. Про местонахождение хостов внутри подсетей знает только шлюз по умолчанию данной подсети (посредством той или иной технологии канального уровня), но не транзитные маршрутизаторы. А вот адрес хоста в отрыве от подсети не употребляется совсем.

Из данного обстоятельства в частности следует, что максимальной длиной маски для подсети с хостами является N=30. Именно сети /30 чаще всего используются для адресации на point-to-point-линках между маршрутизаторами.

И хотя большинство современных маршрутизаторов отлично работают и с масками /31, используя адрес подсети (нуль в однобитовой хоствой части) и бродкаст (единица) в качестве адресов интерфейсов, администраторы и сетевые инженеры часто попросту боятся такого подхода, предпочитая руководствоваться принципом «мало ли что».

А вот маска /32 используется достаточно часто. Во-первых, для всяких служебных надобностей при адресации т. н. loopback-интерфейсов, во-вторых, от криворукости: /32 — это подсеть, состоящая из одного хоста, то есть никакая и не сеть, в сущности. Чем чаще администратор сети оперирует не с группами хостов, а с индивидуальными машинами, тем менее сеть масштабируема, тем больше в ней соплей, бардака и никому непонятных правил. Исключением, пожалуй, является написание файрвольных правил для серверов, где специфичность — хорошее дело. А вот с пользователями лучше обращаться не индивидуально, а скопом, целыми подсетями, иначе сеть быстро станет неуправляемой.

Интерфейс, на котором настроен IP-адрес, иногда называют IP-интерфейсом или L3-интерфейсом («эл-три», см. Модель OSI).

Прежде чем посылать IP-пакет, компьютер определяет, попадает ли адрес назначения в «свою» подсеть. Если попадает, то шлет пакет «напрямую», если же нет — отсылает его шлюзу по умолчанию (маршрутизатору). Как правило, хотя это вовсе необязательно, шлюзу по умолчанию назначают первый адрес хоста в подсети: в нашем случае 192.168.8.1 — для красоты.

Обстоятельство четвертое. Из сказанного в частности следует, что маршрутизатор (шлюз и маршрутизатор — это одно и то же) с адресом интерфейса 192.168.8.1 ничего не знает о трафике, передаваемом между, например, хостами 192.168.8.5 и 192.168.8.7. Очень частой ошибкой начинающих администраторов является желание заблокировать или как-то еще контролировать с помощью шлюза трафик между хостами в рамках одной подсети. Чтобы трафик проходил через маршрутизатор, адресат и отправитель должны находиться в разных подсетях.

Таким образом в сети (даже самого маленького предприятия) обычно должно быть несколько IP-подсетей (2+) и маршрутизатор (точнее файрвол, но в данном контексте можно считать эти слова синонимами), маршрутизирующий и контролирующий трафик между подсетями.

Обстоятельство пятое. Как и любому приличному IT-шнику, администратору сети, если только он получает зарплату не за красивые глаза, положено знать наизусть степени двойки от 0 до 16.

Процесс объединения мелких префиксов (с длинной маской, в которых мало хостов) в крупные (с короткой маской, в которых много хостов) называется агрегацией или суммаризацией (вот не суммированием!). Это очень важный процесс, позволяющий минимизировать количество информации, необходимой маршрутизатору для поиска пути передачи в сети. Так, скажем, провайдеры выдают клиентам тысячи маленьких блоков типа /29, но весь интернет даже не знает об их существовании. Вместо этого за каждым провайдером закрепляются крупные префиксы типа /19 и крупнее. Это позволяет на порядки сократить количество записей в глобальной таблице интернет-маршрутизации.

Обстоятельство шестое. Чем больше длина маски, тем меньше в подсети может быть хостов, и тем большую долю занимает «съедение» адресов на адреса подсети, направленного бродкаста и шлюза по умолчанию. В частности в подсети с маской /29 (2 32-29 = 8 комбинаций) останется всего 5 доступных для реального использования адресов (62,5%). Теперь представьте, что вы провайдер, выдающий корпоративным клиентам тысячи блоков /29. Таким образом, грамотное разбиение IP-пространства на подсети (составление адресного плана) — это целая маленькая наука, включающая поиск компромиссов между разными сложными факторами.

При наличии достаточно большого диапазона адресов, как правило из блоков для частного использования 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16, конечно, удобно использовать маски, совпадающие по длине с границами октетов: /8, /16, /24 или, соответственно, 255.0.0.0, 255.255.0.0 и 255.255.255.0. При их использовании можно облегчить работу мозгу и калькулятору, избавившись от необходимости работать с двоичной системой и битами. Это правильный подход, но не стоит забывать, что злоупотребление расслабухой редко доводит до добра.

И последнее. Пресловутые классы адресов. Дорогие товарищи, забудьте это слово вообще! Совсем. Вот уже скоро 20 лет (!), как нет никаких классов. Ровно с тех пор, как стало понятно, что длина префикса может быть любой, а если раздавать адреса блоками по /8, то никакого интернета не получится.

Иногда «матерые специалисты» любят блеснуть словами «сеть класса такого-то» по отношению к подсети с той или иной длиной маски. Скажем, часто можно услышать слово «сеть класса C» про что-нибудь вроде 10.1.2.0/24. Класс сети (когда он был) не имел никакого отношения к длине маски и определялся совсем другими факторами (комбинациями битов в адресе). В свою очередь классовая адресация обязывала иметь маски только предписанной для данного класса длины. Поэтому указанная подсеть 10.1.2.0/24 никогда не принадлежала и не будет принадлежать к классу C.

Но обо всем этом лучше и не вспоминать. Единственное, что нужно знать — что существуют разные глобальные конвенции, собранные под одной крышей в RFC3330, о специальных значениях тех или иных блоков адресов. Так, например, упомянутые блоки 10/8, 172.16/12 и 192.168/16 (да, можно и так записывать префиксы, полностью откидывая хостовую часть) определены как диапазоны для частного использования, запрещенные к маршрутизации в интернете. Каждый может использовать их в частных целях по своему усмотрению. Блок 224.0.0.0/4 зарезервирован для мультикаста и т. д. Но все это лишь конвенции, призванные облегчить административное взаимодействие. И хотя лично я крайне не рекомендую вам их нарушать (за исключением надежно изолированных лабораторных тестов), технически никто не запрещает использовать любые адреса для любых целей, покуда вы не стыкуетесь с внешним миром.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *