Что такое маска подсети и разница между маской подсети 255.255.255.0 и 255.0.0.0?

142022
Torben Gundtofte-Bruun

Мой маршрутизатор DSL / WiFi, предоставленный моим провайдером, имеет внутренний IP-адрес 10.0.0.138, адреса, предоставленные DHCP, имеют формат 10.0.0.xxx.

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

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

Должен ли я использовать 255.255.255.0или в 255.0.0.0качестве маски моей подсети? В чем разница?

37
Таким образом, по существу, «маска подсети» указывает, какая часть номера IP является релевантной. Поскольку я использую только последний триплет, я бы использовал 255.255.255.0, чтобы замаскировать первые три триплета. Спасибо за ваши ответы! Torben Gundtofte-Bruun 15 лет назад 4
правильный. Для вашей частной сети это не имеет значения, хотя. Это имеет значение, только если вы хотите разделить разные части вашей сети. StampedeXV 15 лет назад 0
Он точно не «маскирует» ни один из октетов (фактически он вообще не должен предоставлять 8-битную границу). Он просто обозначает, какая часть IP является идентификатором сети, а какая - идентификатором хоста. MDMarra 15 лет назад 1
Over-simplifying a bit: Anything with the same subnet mask can talk to each other directly without going through a router (in fact, a router must NOT be used). Anything that wants to talk to a host with a different subnet mask needs to go through a router (or the IP that is the default gateway) to get to that host. LawrenceC 12 лет назад 0
Добавлен http://superuser.com/questions, который подробно объясняет подсеть IPv4. (Вопрос является копией канонического ответа на Serverfault). Hennes 8 лет назад 0

7 ответов на вопрос

26
djeidot

Ноль в маске подсети будет соответствовать xxxвашему IP-адресу. Если вам нужно более 255 разных адресов, вам придется изменить IP-адрес DHCP на 10.0.xxx.xxx (широковещательный IP-адрес 10.0.255.255) и маску подсети на 255.255.0.0.

Теоретически, 255.0.0.0 является допустимой маской подсети для адресов от 10.0.0.0 до 10.255.255.255. Эта статья в википедии показывает действительные адреса для частных сетей.

Но в вашем случае (10.0.0.xxx) вы должны использовать 255.255.255.0.

22
Josh Hunt

Скорее всего, вы после маски подсети 255.255.255.0.

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

Таким образом, если IP-адрес компьютера - 192.168.1.104, а его маска подсети - 255.255.255.0, то компьютер (и все остальные устройства, подключенные к той же сети) будет считать, что каждый IP-адрес в локальной сети этого компьютера будет иметь формат 192.168.1. ххх, причем ххх - единственная часть, которая будет меняться. Аналогично, если маска подсети 255.255.0.0, компьютер будет считать, что каждый IP-адрес в его локальной сети будет иметь формат 192.168. ххх . ххх .

Подсеть в сети не очень полезна в домашней сети, такой как ваша. Он в основном используется в больших сетях (с более чем 255 компьютерами) для уменьшения ненужной сетевой активности. MarkM предоставил это в комментариях:

Одним из самых больших преимуществ подсетей в большой сети является снижение широковещательного трафика. Если у вас есть тысячи хостов в одной подсети, ваши коммутаторы будут задыхаться от ARP, DHCP и других широковещательных рассылок. В домашней сети обычно нет особой необходимости, если только вы не хотите что-то вроде гостевой беспроводной локальной сети, у которой нет маршрутизации, доступной для вашей основной домашней сети.

Это объяснение очень грубое и схематичное, поэтому, пожалуйста, прости меня, если я допустил одну или две ошибки.

Одним из самых больших преимуществ подсетей в большой сети является снижение широковещательного трафика. Если у вас есть тысячи хостов в одной подсети, ваши коммутаторы будут задыхаться от ARP, DHCP и других широковещательных рассылок. В домашней сети обычно нет особой необходимости, если только вы не хотите что-то вроде гостевой беспроводной локальной сети, у которой нет маршрутизации, доступной для вашей основной домашней сети. MDMarra 15 лет назад 2
10
Pascal Thivent

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

Рассмотрим сеть класса A с 10.0.0.0 по 10.255.255.255 (это назначенный «частный» блок класса A, то есть пакеты, предназначенные для этих адресов, не будут маршрутизироваться). В двоичном формате адреса: от 00001010.00000000.00000000.00000000 до 00001010.11111111.11111111.11111111. Маска сети генерируется путем назначения 1 для каждого бита в этих адресах, который не меняет IE:

00001010.00000000.00000000.00000000 00001010.11111111.11111111.11111111 ----------------------------------- 11111111.00000000.00000000.00000000 

Который преобразуется в 255.0.0.0, классическая маска класса А.

* На самом деле, чтобы получить сетевой адрес с заданным IP-адресом, вы просто делаете логическое И. Например, для маски сети 255.0.0.0 и IP-адреса 10.0.0.1:

00001010.00000000.00000000.00000001 11111111.00000000.00000000.00000000 ----------------------------------- 00001010.00000000.00000000.00000000 

И 00001010.00000000.00000000.00000000 преобразуется в 10.0.0.0, который действительно является сетевым адресом.

Обратите внимание, что вам обычно не нужна сеть класса A для домашней сети (вам нужно более 255 адресов?) И, таким образом, вы можете использовать 255.255.255.0 в качестве маски сети и / или использовать сеть класса C (например, 192.168.1.0).

Argh! Не бинарный! * прорези запястья * Josh Hunt 15 лет назад 0
На практике никто больше не использует классы. Это обычно преподается только как урок истории. Вместо этого теперь используется CIDR http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing MDMarra 15 лет назад 5
не знаю, что CIDR проще для понимания ... :) quack quixote 15 лет назад 0
Неважно, проще это или нет. Классы больше не используются, а CIDR есть. MDMarra 15 лет назад 0
@josh; учить бинарный! Это просто и впечатляет людей, которые этого не понимают :) Phoshi 15 лет назад 0
На практике я использую занятия :) И это не важная часть ответа. Но спасибо за разъяснения. Pascal Thivent 15 лет назад 0
Вы все еще можете работать на границах класса и нормально работать в сети, но она устарела. CIDR / 8/16 и / 24 представляют собой то, к чему привыкли классы A, B и C. MDMarra 15 лет назад 2
@Phoshi - я знаю двоичный файл, но каждый раз, когда я вижу его, пока НЕ ​​учусь, он напоминает (и пугает) меня учиться на мой HSC ... Josh Hunt 15 лет назад 0
Это должно помочь вашей подсети вычислить страхи :) http://www.subnet-calculator.com/cidr.php MDMarra 15 лет назад 1
Есть 10 типов людей, те, которые понимают и бинарные и те, которые этого не делают. (Извините, не удержался) Martin Brown 12 лет назад 0
что такое класс А (и В и С)? n611x007 11 лет назад 0
1
Chris Thompson

В более технических терминах маска подсети помогает машинам идентифицировать номер сети, связанный с данным IP-адресом. 255 представляет все 1 для этого байта адреса, и когда вы выполняете побитовое И между адресом и маской, вы получаете номер сети обратно. То, что осталось, это номер машины

Так

IP Address 192.168.1.1 Subnet mask 255.255.255.0 Network Number 192.168.1.0 Host Number 1 Address Range 192.168.1.1 to 192.168.1.255 

С другой стороны,

IP Address 192.168.1.0 Subnet mask 255.255.254.0 Network Number 192.168.0.0 Host Number 1 Address Range 192.168.0.1 to 192.168.1.255 

Эта вторая конфигурация оставляет 9 битов для номера хоста (в случае, когда у вас будет более 255 хостов). Настройка маски подсети дает вам больше адресов хостов и меньше сетей или наоборот, в зависимости от того, добавляете ли вы или удаляете 1

Также может быть полезно показать доступные диапазоны адресов в вашем примере. 192.168.1.1-192.168.1.254 и 192.168.0.1-192.168.1.254 MDMarra 15 лет назад 0
Хороший звонок, готово. Я, наверное, должен был выбрать более очевидный пример, это может быть немного неуловимым ... Chris Thompson 15 лет назад 0
1

Поскольку интернет-провайдер torbengb дал ему маршрутизатор (или велел настроить маршрутизатор) с адресом 10.0.0.138, это заставляет меня подозревать, что клиенты этого интернет-провайдера делят адресное пространство 10.0.0.0; в противном случае большинство людей настроили бы маршрутизатор на 10.0.0.1 или 192.168.0.1 или аналогичный.

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

Если он уверен, что его маршрутизатор выполняет NAT, то он, вероятно, может использовать что угодно от / 8 до / 24.

Не зная деталей соединения и конфигурации провайдера, сложно дать однозначный ответ.

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

0
benc

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

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

Если вы предоставляете свою ОС, я уверен, что мы можем дать вам правильную команду для отображения вашей текущей маски подсети в клиентской системе DHCP.

В идеале вы должны использовать 255.0.0.0, потому что для 10.0.0.0, если бы вы использовали 255.255.255.0, у вас могло бы быть только 256 адресных пространств (не страшно, но кто знает, вы сказали, что использовали .138), ПЛЮС, он должен обеспечивать маршрутизацию к другим подсетям 10.0.0.0 (и я уверен, что это не так).

Это может иметь значение для некоторых людей с необычными конфигурациями работы из дома, такими как ssh-туннели.

Там нет никакой реальной причины использовать там 8-битную маску. В этом нет ничего плохого, но это дурной тон. Вы можете использовать 23-битную маску сети (255.255.254.0) и иметь 254 дополнительных доступных адреса. В подсети / 24 нет 256 адресов, потому что .0 и .255 зарезервированы для идентификатора сети и широковещательного адреса соответственно. MDMarra 15 лет назад 3
0
Martin Garrix

Решение этого вопроса приведено здесь: Что означает адрес 10.0.0.1/24 моего компьютера (команда ip addr -)?

Но все равно просто повторить это. Вот что я хотел сказать:

/ 32 означает один адрес. Таким образом, 10.0.0.0/32 означает только один адрес 10.0.0.0. Но адрес, заканчивающийся на .0, является широковещательным, верно? По сути, этот единственный адрес означает любой адрес в диапазоне 10.0.0.1 - 10.0.0.255.

/ 24 означает 255 адресов. Таким образом, 10.0.0.1/24 означает любой адрес в диапазоне 10.0.0.1 - 10.0.0.255. (Я не использую 10.0.0.0/24 здесь, потому что это включает "0" расширение, которое мы получили выше, и я пытаюсь контрастировать с этим.

Похожие вопросы