Чому я можу спілкуватися з машинами в локальній підмережі без запису в таблиці маршрутів для локальної підмережі?


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).


Яку команду ви використовуєте для отримання цієї таблиці маршрутів? А ви впевнені, що не знаходитесь у контейнері типу OpenVZ?
Девід Шварц

Це схоже на вихід route -n. Що дає ip routeурожай?
VL-80,

Так, вихід був з route -n. ip routeвихід просто показує те саме у власному форматі. Однозначно не всередині контейнера - це було безпосередньо на моїй фізичній машині Ubuntu.
KittenOverflow

Відповіді:


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-підмережі.

Більше інформації

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.