35

Поскольку 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-адреса, то что еще она содержит или что делает подсеть, что требует, чтобы мы указали ее независимо?

9 ответов9

37

Нам нужна маска подсети для адресов 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), позволяющая разделить сети.

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

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-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, маску сети и сеть можно рассчитать по адресу. Если нет, сеть может быть рассчитана по адресу и маске сети. Невозможно надежно рассчитать маску сети из адреса и сети.

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

3

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

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

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

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

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

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

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

2

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

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

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

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

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

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/

1

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

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .