Каковы основы маски подсети?


10

Какая польза от маски подсети?

Что ниже выводится для передачи пользователю?

 Connection-specific DNS Suffix  . :
 IP Address. . . . . . . . . . . . : 192.168.1.2
 Subnet Mask . . . . . . . . . . . : 255.255.255.0
 Default Gateway . . . . . . . . . : 192.168.1.1

В основном, зачем мне маска подсети, когда у меня есть IP?


4
EA в SF ответили на это намного лучше, чем кто-либо еще, кого я когда-либо видел. serverfault.com/questions/49765/how-does-subnetting-work
MDMarra

Ответы:


23

Если вы думаете о своем IP-адресе как о номере телефона:

  • маска подсети говорит вам, сколько цифр являются частью кода города
  • остальные цифры - ваш индивидуальный номер под этим кодом города

6
Хороший краткий пример, который объясняет цель, не получая технического.
Майк Кристиансен

17

краткое

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

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

Слегка Технический

Подсеть - это 32-битная длинная битовая маска (как затронуло Manaf Abo.Rous ), обычно записываемая в виде четырех 8-битных байтов. Обратите внимание, что 255это 11111111(8 единиц) в двоичном виде.

Маска в основном означает «только те IP-адреса, которые имеют одинаковые номера в местах, определенных маской подсети, находятся в моей локальной сети» .

Таким образом, подсеть 255.255.255.0означает, что каждый IP-адрес, который совпадает с первыми тремя байтами, является вашей локальной сетью, с вашими данными числами это что-нибудь совпадает 192.168.001.###. Альтернативно, более широкая подсеть 255.255.0.0создаст вашу локальную сеть 192.168.###.###.

Более технический

Значения байтов не всегда должны быть 255, что может быть 255.255.255.240, что составляет 28 единиц и 4 нуля. Это означает, что первые 28 бит другого IP-адреса должны соответствовать вашим, чтобы быть в том же подмножестве. Маска подсети всегда должна быть определенным числом 1, за которым следуют только нули, чтобы сделать 32-битные, и поэтому она может быть представлена /28также (в данном случае, в любом случае) со значением, показывающим, сколько единиц содержит маска - это обычно используется в контексте IP, таких как192.168.1.2/28

Таким образом, если ваш IP находится 192.168.1.2с маской подсети 255.255.255.240, ваша подсеть является IP - диапазон 192.168.1.0для 192.168.1.15(хотя низкий и высокий , как правило , не используются для устройств , поскольку они имеют специальные функции). Если бы ваш IP был 192.168.1.53вашей сетью, был бы диапазон 192.168.1.48до 192.168.1.63.

Обратите внимание, как оба этих набора содержат 16 уникальных адресов? Подсеть также определила, насколько велика подсеть, потому что она определяет, сколько IP-адресов доступно.

А теперь с двоичным

Наконец, перефразируя ответ Manaf Abo.Rous , давайте посмотрим на двоичный файл.

Начнем с использования маски 255.255.255.0, здесь она в двоичном виде:

11111111 11111111 11111111 00000000

Итак, учитывая ваш IP, вы знаете, что каждый IP в локальной сети соответствует первым 24, поэтому давайте проверим ваш IP ( 192.168.1.2) в двоичном виде:

11000000 10101000 00000001 00000010 

Теперь мы только посмотрим, где находятся 1 в подсети, чтобы получить номер вашей подсети:

11000000 10101000 00000001 --------

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

Наконец, давайте посмотрим на второй пример, используя IP 192.168.1.53и подсеть 255.255.255.240:

11111111 11111111 11111111 11110000  [subnet] 
11000000 10101000 00000001 00110101  [IP]
11000000 10101000 00000001 0011----  [subnet number]

И опять же , ваши местные IP-адресов будет иметь ничего в течение последних четырех двоичных значений - которые 0000, 0001и т.д. до 1111- или в десятичной системе, 0чтобы 15- но помните , что они должны были 0011впереди , чтобы сделать полные байты, так что на самом деле IP-адреса доступны 00110000(48 ), 00110001(49) и так далее до 0011111163.


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

Ух ты. Увидев откровенно превосходный пост SF, на который MarkM ссылался из комментариев к этому вопросу, мой ответ на самом деле выглядит небольшим по сравнению ... что вызывает беспокойство ...
DMA57361

5

Маска подсети используется для определения IP-адреса вашей сети.

Применение логической операции « И» к вашему IP-адресу и маске подсети выведет ваш сетевой IP-адрес.

в приведенном выше примере

IP-адрес: 11000000 10101000 00000001 00000010 = 192.168.1.2

Маска подсети: 11111111 11111111 11111111 00000000 = 255.255.255.0

AND Результат: 11000000 10101000 00000001 00000000 = 192.168.1.0 = Ваш сетевой адрес

Больше информации здесь


Хорошее техническое объяснение: P Не слишком много информации
Майк Кристиансен

+1 это реальный ответ того, как аппаратное обеспечение получает информацию о сети
KMC

1

Маска подсети используется для маршрутизации IP-пакетов.

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

Например, вот один мой вывод из netstat -nrv:

Destination      Netmask          Gateway         Interface
192.168.182.0    255.255.255.0    192.168.182.1   192.168.182.1

Это означает, что любой IP-адрес формы 192.168.182.xбудет маршрутизироваться на основе этого правила, потому что любой адрес этого формата, когда and-ed с 255.255.255.0(маска сети) даст 192.168.182.0(пункт назначения).

Точно так же маршрут по умолчанию будет:

Destination      Netmask          Gateway         Interface
0.0.0.0          0.0.0.0          9.185.149.1     9.185.149.52

Поскольку любой адрес- andс 0.0.0.0дает 0.0.0.0.


что здесь?
JavaUser

and-ed: это означает выполнение поразрядно и между двумя числами ( en.wikipedia.org/wiki/Bitwise_operations#AND )
Майк Кристиансен,

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

1
@Java - прошедшее время логической операции "а"
MDMarra

1

Маска подсети разделяет IP на две части: сетевую (или подсетевую) часть и часть хоста. Предыдущие комментарии прекрасно это иллюстрируют.

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

Если у вас было 4 компьютера с этими масками IP / подсети:

host_11 - 192.168.2.1/255.255.255.0

host_12 - 192.168.2.2/255.255.255.0

gateway - 192.168.2.3/255.255.255.0

host_21 - 192.168.3.5/255.255.255.0

только первые 3 могли общаться. Четвертый не ответил бы, потому что он не находится в той же подсети.

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

Следуя нашему примеру:

host_11 - 192.168.2.1/255.255.255.0; default gateway 192.168.2.3

host_12 - 192.168.2.2/255.255.255.0; default gateway 192.168.2.3

gateway - 192.168.2.3/255.255.255.0

host_21 - 192.168.3.5/255.255.255.0; default gateway 192.168.2.3

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

Итак, на самом деле, это действительно выглядит так:

host_11 - 192.168.2.1/255.255.255.0; default gateway 192.168.2.3

host_12 - 192.168.2.2/255.255.255.0; default gateway 192.168.2.3

gateway - first IP 192.168.2.3/255.255.255.0, second IP 192.168.3.1/255.255.255.0

host_21 - 192.168.3.5/255.255.255.0; default gateway 192.168.3.1

Теперь сети 192.168.2.X и 192.168.3.X могут общаться друг с другом. Конечно, они не могут общаться ни с какой другой сетью или Интернетом. Шлюзу потребуется третий IP-адрес, подключенный к интернет-провайдеру, и он должен быть установлен в качестве шлюза по умолчанию. Затем шлюз получает трафик не из той же сети из 192.168.2.X и 192.168.3.X.

Вы можете установить правила маршрутизации для ситуаций, когда шлюз не может выяснить все самостоятельно. В этом примере нам это не нужно, поскольку все сети подключены к маршрутизатору. Однако в ситуациях, когда у вас есть сеть с несколькими маршрутизаторами (шлюзами по умолчанию) или «сетями за сетями», необходимо указать правила маршрутизации. Это входит в некоторые продвинутые вещи. Я надеюсь, что это было полезно.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.