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

Почему общедоступные IP-адреса не всегда отображаются с маской подсети?

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

однако, большую часть времени я вижу ip-адреса (DNS, findmyip.com etc.) речь идет только об ip без номера cidr. Например, я накормил сайте только IP-адрес и он дал мне правильное доменное имя.

Что мне не хватает ? Я предполагаю, что есть некоторые другие протоколы, которые могут работать только с ip-адресами, но я еще не слышал о них.

Если мой вопрос показывает отсутствие базового понимания того, как работают сети, ресурсы очень ценятся. Я разработчик, обучающий себя всему этому, и, кроме 5-минутных учебников или 1000 + неясных книг (Hi TCP Illustrated), я не могу найти материал, который я ищу.

5
задан Radioreve
источник

3 ответов

маска подсети полезна для самого хоста и для оборудования маршрутизации.

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

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

3
отвечен jcbermu 2017-10-05 07:41:39
источник

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

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

Сеть Назначения / Шлюз / Маска Подсети Назначения / Метрика

вот моя текущая таблица маршрутизации:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    100    0        0 eth2
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 eth2
172.16.160.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8
192.168.2.0     0.0.0.0         255.255.255.0   U     100    0        0 eth2
192.168.87.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet1

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

все эти сетевые адаптеры "подключены напрямую" - поэтому вы видите 0.0.0.0 для gateway. Это означает, что если система хочет отправить что-то 192.168.2.80, например, он может просто отправить его непосредственно 192.168.2.80 через интерфейс eth2.

однако, из-за маски подсети, 192.168.87.80 не будет выходить через Для eth2, он будет выходить через vmnet1 адресацию.

если IP-адрес умещается в две записи, используется та, у которой маска подсети CIDR больше ("более конкретная"). Если есть два с той же маской подсети, метрика используется для разрыва связи, и если это время, система может выбрать один и придерживаться его или баланса нагрузки между ними.

например

192.168.2.0     0.0.0.0         255.255.255.0   U     100    0        0 eth2
192.168.2.0     0.0.0.0         255.255.255.240 U     100    0        0 ethX

255.255.255.240-это CIDR / 28, а 255.255.255.0-CIDR /24. Так что если две записи существовало, что-то выходит на 192.168.2.1 будет выходить из ethxбыл интерфейс, но что-то выходить, чтобы 192.168.2.241 будет выходить из Для eth2 интерфейс.

что делать, если ничего не совпадает? Затем используется шлюз по умолчанию. Заметьте, он имеет "низкой" маска подсети 0.0.0.0 (что это Слэш /0).

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

вне этих ситуаций маска подсети не требуется. В принципе, это не нужно мимо уровня сетевой маршрутизации. HTTP-это уровень приложения.

2
отвечен LawrenceC 2017-10-04 10:45:16
источник

оба вышеуказанных ответа верны - вот более подробный нетехнический -

компьютер только должен знать, если IP-адрес принадлежит компьютеру, который подключается непосредственно к нему - и компьютеры, проходящие через концентратор / коммутатор / wifi в той же" локальной сети") считаются подключенными напрямую.

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

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

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

0
отвечен davidgo 2017-10-04 15:35:37
источник

Другие вопросы ip ip-address netmask networking subnet