Зачем нам нужна маска подсети?

37

Поскольку IPv4-адрес уже дает информацию о сети и хосте, зачем нам по-прежнему нужна маска подсети?

Первый октет уже указывает класс сети (1-127: A, 128-191: B, 192-223: C и т. Д.). A, B или C подразумевает количество октетов для сети (соответственно 255.0.0.0, 255.255.0.0, 255.255.255.0), которое автоматически сообщает, сколько хостов разрешено для каждого класса сети.

IP дает всю информацию, которую имеет маска подсети, и многое другое. Зачем нам нужна маска подсети? Если информация, содержащаяся в подсети, не является полностью подмножеством информации внутри IP-адреса, то что еще она содержит или что делает подсеть, что требует, чтобы мы указали ее независимо?

КМК
источник
21
Классы A, B, C настолько 1980-х годов и давно умерли. По мере исчерпания адресов стало понятно, что большое количество назначенных пространств классов A и B было полностью потеряно на держателях, следовательно, CIDR и данное назначение небольших пригодных для использования блоков адресов по всему адресному пространству.
Fiasco Labs
2
@FiascoLabs Это не отвечает на его вопрос, чувак. Маршрутизаторы все еще использовали эти маски подсети? Да, при использовании classful (если дальнейших подсетей нет, что, вероятно, маловероятно), маску подсети можно рассчитать по адресу. Но а) необходимо ли использовать маску подсети с логическим И, если вы уже знаете, сколько бит вы хотите, и почему это так? Вероятно, из-за того, что операции ЦП не в состоянии проверить x битов байта, другие должны быть обнулены и применен оператор EQU.
Бароп
8
Маршрутизаторы, с которыми я работал, не предполагают, что первый октет класса A, B или C что-либо значит. Мне всегда приходилось устанавливать маску сети или CIDR, чтобы маршрутизатор знал адреса, где были расположены сеть и широковещательная рассылка. Конечно, назначения адресов классов имеют действительно простые маски сетей: 255.0.0.0, 255.255.0.0 и 255.255.255.0, поэтому да, необходимо использовать маску подсети.
Fiasco Labs
VLSM - маски сумбетов переменной длины, вы можете создать сетевой или широковещательный домен, такой большой или маленький, как вам хотелось бы!
Марк С.
3
Даже в дни занятий у вас может быть большая сеть, распределенная по подсетям (sic) на другие, более мелкие. Рабочая станция в большом университете по-прежнему будет иметь адрес в сети класса А, но она может быть подсетью подсети подсети всего класса А. Поэтому, естественно, маршрутизаторы не делают никаких предположений.
Алексиос

Ответы:

38

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

Например, вы можете разбить сеть класса C 200.200.200.0/255.255.255.0 на две меньшие сети (возможно, в отдельных местах) 200.200.200.0/255.255.255.128 и 200.200.200.128/255.255.255.128, предполагая, что ни для одного из них не требуется более 126 хостов. В действительности большинство компаний получают достаточно адресов IPv4 только для серверов, которые должны быть в общедоступном Интернете. Я лично видел настройки с 32, 16 и 8 адресными сетями (это были бы маски 255.255.255.224, 255.255.255.240 и 255.255.255.248 соответственно)

Наличие IP-сетей только в блоках размера класса было слишком ограниченным из-за ограниченного числа сетей, которые могли быть разрешены - 127 сетей класса А занимали половину пространства. Не говоря уже о том, что наличие сети из 24 миллиардов узлов совершенно неуправляемо. Вместо этого в 1993 году была введена бесклассовая междоменная маршрутизация (CIDR), позволяющая разделить сети.

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

shf301
источник
при использовании CIDR вы добавляете префикс к определенному количеству бит, используемых для сетевой адресации, а остальное для адресов хоста. Например, 200.200.200.0/27, то автоматически означает, что адрес хоста должен быть 63 или ниже. Опять же, IP все еще сообщает вам эту часть информации, следовательно, сохраняйте мой вопрос ...
KMC
Это все еще адрес и маска сети, когда все сказано и сделано, и это то, что базовое оборудование использует для вычисления своего сетевого блока, не так ли?
Fiasco Labs
Мой вопрос остается постоянным, поскольку IP-адрес по-прежнему содержит всю информацию, которая необходима для маски подсети. Я до сих пор не вижу причин для существования маски подсети.
KMC
1
@ KMC: Я не получаю ваш комментарий, префикс CIDR сравним с маской подсети и программным обеспечением, поэтому часто использует префикс или маску, как вкус.
Леголас
20
@KMC: /27 это маска подсети, просто написано в других обозначениях.
Хайнци
20

Первый октет уже указывает класс сети (1-127: A, 128-191: B, 192-223: C и т. Д.). A, B или C подразумевает количество октетов для сети (соответственно 255.0.0.0, 255.255.0.0, 255.255.255.0), которое автоматически сообщает, сколько хостов разрешено для каждого класса сети.

Правильно, но если бы кто-то подсетил эту сеть, вам понадобилась бы маска подсети, чтобы узнать, насколько велика ваша подсеть. Да, при классовой адресации класс сообщает вам размер сети и позволяет определить, Хост находится в той же сети, что и вы, но если эта сеть имеет подсеть без маски подсети, как вы узнаете, находится ли другой узел в той же подсети, что и вы?

Скажем, вы в сети Ethernet. Мы используем классную адресацию с подсетями. Ваш IP-адрес есть, 1.2.3.4и вы хотите достичь 1.3.1.1. Используете ли вы ARP для достижения этого адреса? Ну, это зависит от того, находятся ли 1.2.3.4и 1.3.1.1находятся в одной подсети . Даже если они находятся в одной сети, если они находятся в разных подсетях, необходимо использовать маршрутизатор. Если они находятся в одной подсети, то следует использовать ARP.

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

Я думаю, что вы путаете подсети с CIDR, на самом деле. Без CIDR, даже с подсетями, вам не нужна маска подсети между административными областями. Но вам все еще нужно это внутри сети!

Дэвид Шварц
источник
6

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

Адриан Томпсон Филлипс
источник
3

«1-й октет уже указывает класс сети (1-127: A, 128-191: B, 192-223: C и т. Д.)».

Сегодня не так много широко используемых протоколов, которые уважают это (см. Комментарий @Fiasco Labs - RIP - единственный, о котором я могу думать). Итак, это утверждение в вашем вопросе:

IP дает всю информацию, которую имеет маска подсети, и многое другое.

Это не относится к подавляющему большинству протоколов, используемых сегодня в Интернете.

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

Маршрутизаторы определяют границы (под) сетей. Все, что нужно для прохождения через маршрутизатор, находится в другой сети, и наоборот: все, что требуется для прохождения через другую сеть, должно проходить через маршрутизатор.

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

LawrenceC
источник
3

Первый октет уже указывает класс сети (1-127: A, 128-191: B, 192-223: C и т. Д.). A, B или C подразумевает количество октетов для сети (соответственно 255.0.0.0, 255.255.0.0, 255.255.255.0), которое автоматически сообщает, сколько хостов разрешено для каждого класса сети.

Хотя это было исторически правдой. Это не было правдой в течение многих лет. Несколько лет назад 24.0.0.0/8 было разослано разным провайдерам. (Я считаю, что это было в основном для кабельных провайдеров.)

Даже когда это было верно для сетевых назначений, сетевые маски были необходимы для внутренних сетей, чтобы упростить маршрутизацию. Эффективная маршрутизация сети, подобной 10.0.0.0/8, требует разделения на более мелкие сети. Это может быть простая схема, использующая подразделения / 16 и / 8, но, скорее всего, это будет бесклассовое подразделение. Большие подсети обеспечивают более эффективное использование адресного пространства (более 99% из / 24 доступно для устройств, в то время как доступно только 50% из / 30.

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

Для подсетей без многодомных хостов / 24 содержит больше адресов, чем требуется. Большинство маршрутизаторов, с которыми я работал, имеют 24, 48 или 96 портов и могут поддерживаться подсетями / 27, / 26 или / 25. Это позволяет использовать некоторые дополнительные адреса для DCHP и / или множественной адресации. Организации могут стандартизировать распределение подсетей / 24 или / 23 для маршрутизации.

Поскольку адрес IPv4 уже предоставляет информацию о сети и хосте, зачем нам все-таки нужна маска подсети?

Многие устройства используют маску по умолчанию / 24, которая во многих случаях соответствует размеру локальной подсети (localnet), назначенной маршрутизатору. Это в равной степени применимо к классам A, B и C. Если размер подсети не соответствует подсети по умолчанию, требуется маска сети.

Если адреса указаны в формате CIDR, маску сети и сеть можно рассчитать по адресу. Если нет, сеть может быть рассчитана по адресу и маске сети. Невозможно надежно рассчитать маску сети из адреса и сети.

Предоставление адреса шлюза (маршрутизатора) для подсети позволяет настроить маршрут по умолчанию, разрешив маршрутизацию на адреса вне подсети.

BillThor
источник
2

За исключением ответа @ Адриана, я не уверен, что кто-то из них на самом деле упоминает ПОЧЕМУ мы используем маску, а не какое-то более простое для понимания решение - и он лишь коснулся того факта, что маскирование БЫСТРО, я имею в виду, почему бы просто не указать, что вы интересуются адресами 192.168.1.200-192.168.1.220, или почему бы просто не использовать для этого имена типа * .my.address.com, просто присвоив имена каждому компьютеру вместо назначения номеров?

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

Подобная фильтрация происходит постоянно, и это происходит ОЧЕНЬ много. Маскирование может быть выполнено в аппаратном обеспечении, полностью устраняя необходимость тратить время на неинтересные пакеты (которые раньше составляли 99% пакетов, которые вы могли бы передать через ваш провод, теперь с коммутируемыми концентраторами вы не должны видеть ни одного, который не является обратился к вашей машине, опять же сделав ее менее актуальной).

Для решения, которое настолько просто на оборудовании, оно также очень гибкое. Одно и то же оборудование может маршрутизировать всю сеть класса A (10.xxx) или только один или два IP-адреса с одинаковой реализацией.

Это не замена для любого другого ответа, просто немного больше информации.

Билл К
источник
«почему бы просто не использовать для этого имена типа * .my.address.com, просто назвать каждый компьютер», - вы имеете в виду, например, DNS?
Писквор
@ Писквор Точно! DNS разрешается в IP-адреса, вы можете использовать DNS напрямую, но мощность процессора увеличивается. Вы можете даже разделить домены так, чтобы * .meh.com перешел на один адрес, за исключением того, что * .alt.meh.com перешел на другой ...
Bill K
Это работает, да - то есть, когда это работает (дополнительная сложность); плюс вам нужно знать, где находится DNS-сервер; проблема курицы и яйца.
Писквор
@Piskvor Я просто говорю, что есть и другие возможности, которые будут работать нормально, за исключением производительности - все еще значимой в некоторых случаях - и того факта, что для этого потребуется переписать ВСЕ. (Вы действительно думаете, что проблема с DNS-сервером будет иной, если вы переключитесь на другую схему адресации?)
Bill K
Нет, проблема действительно будет сохраняться. (и, между прочим, стремление к простому сетевому стеку не проходит - наоборот, усиливается с помощью «интернета вещей»: простое также означает меньшую потребляемую мощность и более длительное время автономной работы)
Piskvor
1

В других ответах уже многое объясняется, но не главное.

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

Лука Рамишвили
источник
1

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

  1. Вы можете указать несмежные маски, которые являются недействительными.
  2. (также относится к CIDR), они вводят возможное перекрытие - интернет-провайдеры могут выдавать один и тот же IP-адрес как часть разных подсетей. например

    клиент A: 22.132.124.121 маска подсети 255.255.255.0
    клиент B: 22.132.114.55 маска подсети 255.255.0.0

что не сразу видно, как должно быть.

https://blog.certskills.com/ccent/vlsmo_01_01/

LogicBreaker
источник
0

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

Салах Амеан
источник
1
Пожалуйста, добавьте важную информацию из ссылки здесь, добавьте ссылку в качестве источника.
avirk