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

40

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

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

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

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

Торбен Гундтофте-Бруун
источник
4
Таким образом, по существу, «маска подсети» указывает, какая часть номера IP является релевантной. Поскольку я использую только последний триплет, я бы использовал 255.255.255.0, чтобы замаскировать первые три триплета. Спасибо за ваши ответы!
Торбен Гундтофте-Брюн
правильный. Для вашей частной сети это не имеет значения, хотя. Это имеет значение, только если вы хотите разделить разные части вашей сети.
StampedeXV
1
Он точно не «маскирует» ни один из октетов (фактически он вообще не должен предоставлять 8-битную границу). Он просто обозначает, какая часть IP является идентификатором сети, а какая - идентификатором хоста.
MDMarra
Чрезмерное упрощение: все с одной и той же маской подсети может общаться друг с другом напрямую, без прохождения через маршрутизатор (фактически, маршрутизатор НЕ должен использоваться). Все, что хочет общаться с хостом с другой маской подсети, должно пройти через маршрутизатор (или IP-адрес, который является шлюзом по умолчанию), чтобы добраться до этого хоста.
LawrenceC
Добавлен superuser.com/questions, который подробно объясняет подсеть IPv4. (Вопрос является копией канонического ответа на Serverfault).
Хеннес

Ответы:

29

Ноль в маске подсети будет соответствовать 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.

djeidot
источник
22

Скорее всего, вы после маски подсети 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 и других широковещательных рассылок. В домашней сети обычно нет особой необходимости, если вы не хотите что-то вроде гостевой беспроводной локальной сети, в которой нет маршрутизации, доступной для вашей основной домашней сети.

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

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

Маска сети используется для определения того, какая часть 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! Не бинарный! Щели запястья
Джош Хант
5
На практике никто больше не использует классы. Это обычно преподается только как урок истории. Вместо этого теперь используется CIDR en.wikipedia.org/wiki/Classless_Inter-Domain_Routing
MDMarra
не знаю, что CIDR проще для понимания ... :)
Quackote Quack
2
Вы все еще можете работать на границах класса и нормально работать в сети, но она устарела. CIDR / 8/16 и / 24 представляют собой то, к чему привыкли классы A, B и C.
MDMarra
1
Это должно помочь вашей подсети вычислить страхи :) subnet-calculator.com/cidr.php
MDMarra
1

В более технических терминах маска подсети помогает машинам идентифицировать номер сети, связанный с данным 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
Хороший звонок, готово. Я, наверное, должен был выбрать более очевидный пример, это может быть немного неуловимым ...
Крис Томпсон
1

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

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

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

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

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


источник
0

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

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

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

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

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

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