Понимание маршрутизации и подсетей

298
Q-bertsuit

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

Это из статьи, которую я нашел:

enter image description here

Когда кто-то по адресу 130.103.2.1 отправляет электронную почту на адрес 130.103.2.4, маршрутизатор достаточно умен, чтобы видеть, что сообщение находится в той же подсети. Нет необходимости исследовать какие-либо маршруты в другую подсеть или в Интернет. Когда 130.103.2.1 отправляет электронную почту на 130.103.1.4, маршрутизатор пересылает сообщение в другую подсеть. Когда кто-то из интранета отправляет сообщение за пределы интрасети 130.103, маршрутизатор пересылает сообщение в Интернет.

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

Мои вопросы:

  • Если маршрутизатор достаточно умен, чтобы видеть, что сообщение находится в одной подсети, почему каждому хосту важно знать свою собственную маску подсети?
  • При каких обстоятельствах сообщение не сможет достичь назначенного пункта назначения из-за отдельных подсетей / сетей?
1
Просто чтобы подчеркнуть мое последнее редактирование: цитируемая статья ** весьма обманчива **, когда подразумевается, что только маршрутизатор принимает эти решения. Это может, но на практике пакеты той же подсети _не никогда достигают_ маршрутизатора в первую очередь. grawity 5 лет назад 0

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

2
grawity

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

Просто: находясь в подсети, хосты могут обмениваться данными без использования маршрутизатора.

Статья, которую вы нашли, вводит в заблуждение, подразумевая, что маршрутизатор всегда используется. На практике это обычно не так: узлы Ethernet реализуют одну и ту же логику «подсети», поэтому трафик из одной подсети даже не достигает маршрутизатора. (Он входит в коммутатор Ethernet с хоста A и выходит прямо на хост B.)

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

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

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

Например: на современном 24-портовом коммутаторе 1 Гбит / с общая теоретическая емкость составляет 48 Гбит / с (дуплексный режим). У вас могут быть хосты A и B, обращающиеся к хранилищу NAS, хосты C / D / E, обменивающиеся одноранговыми обновлениями Windows, хосты F / G / H, транслирующие игру Steam In-Home, хост XXX с просмотром 4K на YouTube и все еще достаточно коммутационной способности.

С другой стороны, если бы один маршрутизатор был в центре всего, проталкивание всего через порт этого маршрутизатора (и обратно!) Ограничило бы всю сеть до 1 Гбит / с.

При каких обстоятельствах сообщение не сможет достичь назначенного пункта назначения из-за отдельных подсетей / сетей?

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

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

Я многому научился из этого ответа. Спасибо! Q-bertsuit 5 лет назад 0
Таким образом, маска подсети, которую я использовал, чтобы сказать нам, находится ли IP внутри нашей собственной подсети, и если мы хотим отправить что-то на IP, который находится за пределами подсети, он должен пройти через шлюз (обычно маршрутизатор), но если он внутри мы можем отправить его непосредственно на конкретный хост? Q-bertsuit 5 лет назад 1
Да. Он сообщает хостам, существует ли возможность прямой связи. grawity 5 лет назад 1
Это должно быть первое предложение любой статьи о подсетях. Еще раз спасибо Q-bertsuit 5 лет назад 0
0
Seth

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

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

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

A <R1> B <R2> C 

Если вы не настроите маршрут, который скажет R1, что он может достичь хостов с идентификатором сети от C до R2, он не будет знать, что делать, если он получит пакет, который должен быть отправлен в сеть C.

0
harrymc

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

Маска подсети IPv4 - это 32-разрядное число, которое маскирует IP-адрес и делит IP-адрес на сетевой адрес и адрес хоста. Это делается путем установки битов сети на все «1» и установки битов хоста на все «0».

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

IP-адрес внутри подсети состоит из двух компонентов: сетевой адрес и адрес хоста. Маска подсети разделяет IP-адрес на сеть и адреса хоста в подсети ( <network><host>).

Биты «1» в маске также называются префиксом сети, и часто IP-адрес подсети определяется с использованием их номера, например 1.2.3.0/24, когда сетевая маска подразумевает наличие 24 битов «1».

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