1

Работает Ubuntu Linux 16.04, подключенный по Ethernet как 192.168.11.22 с маской подсети /24. Маршрутизатор находится на 192.168.11.1.

Я ожидал, что таблица маршрутов будет выглядеть так:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.11.1    0.0.0.0         UG    100    0        0 enx50
192.168.11.0    0.0.0.0         255.255.255.0   U     1000   0        0 enx50

Но он пропускает маршрут для локальной подсети и выглядит так:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.11.1    0.0.0.0         UG    100    0        0 enx50

Но я все еще могу общаться с хостами в подсети. Как это возможно?

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

1 ответ1

0

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

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

Вот что происходит, когда один компьютер хочет начать разговор с другим узлом в той же локальной сети:

  1. Узел A с IP 10.0.0.1 хочет отправить файл на узел B в 10.0.0.2.
  2. Узел A просматривает свой собственный IP-адрес и маску подсети (255.255.255.0) и понимает, что IP-адрес 10.0.0.2 находится в локальной подсети IP. Поэтому необходимо отправить данные непосредственно на это устройство вместо шлюза по умолчанию.
  3. Узел A использует протокол ARP для получения MAC-адреса компьютера в локальной сети с IP-адресом 10.0.0.2 и отправляет данные на этот узел.

Сравните это с тем, когда компьютеру необходимо взаимодействовать с узлом в другой подсети IP:

  1. Узел A с IP 10.0.0.1 хочет отправить файл узлу B на 172.25.0.2.
  2. Узел A просматривает свой собственный IP-адрес и маску подсети (255.255.255.0) и понимает, что IP-адрес 172.25.0.2 не находится в локальной подсети IP. Поэтому он должен отправить пакет на свой шлюз по умолчанию (10.0.0.254).
  3. Узел A использует протокол ARP для получения MAC-адреса устройства в локальной сети с IP-адресом 10.0.0.254 (шлюз по умолчанию) и отправляет данные этому устройству.
  4. Шлюз по умолчанию (т. Е. Маршрутизатор) использует свою таблицу маршрутизации, чтобы решить, куда отправить данные дальше. Этот процесс повторяется до тех пор, пока данные не достигнут сети назначения. В этот момент описанный выше процесс заканчивается, так как два устройства будут находиться в одной подсети IP.

Дополнительная информация

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .