все системы, использующие 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-это уровень приложения.