Як маршрутизуються запити на зовнішні мережі?


1

Коли я хочу потрапити в якусь зовнішню мережу, скажімо 1.1.1.1 з мого ПК, підключеного до мережі класу C, який з цих двох сценаріїв дійсно станеться?

  1. ОС мого комп'ютера (NIC) знає, що я хочу отримати доступ до адреси зі своєї внутрішньої мережі, і відправляє пакети до шлюзу за замовчуванням безпосередньо.

    або

  2. Мій комп'ютер обробляє цей запит, як і будь-який інший, надсилаючи його моєму комутатору, який знає адресу призначення, тому він пересилає їх на всі підключені пристрої. Оскільки з них є маршрутизатором, він, ніж пересилає пакети поза.

Або я повністю помиляюся?


1
1 є хорошим описом того, що відбувається на рівні IP. 2 є досить хорошим описом того, що відбувається на рівні Ethernet, за винятком того, що комутатор, напевно, знає апаратну адресу маршрутизатора, і тому не потрібно надсилати їх на всі підключені пристрої. Пакет, який ваш комп'ютер посилає, має IP-адресу призначення 1.1.1.1 і адресу призначення апаратного обладнання Ethernet-апаратної адреси вашого маршрутизатора.
David Schwartz

Відповіді:


4

Обидва, у певному сенсі. На Рівень IP , Ваш комп'ютер знає, що він переходить на зовнішню адресу, і відправляє його безпосередньо на маршрутизатор, оскільки він знає, що маршрутизатор діє як шлюз для чогось не на локальному підмережі (який він визначає за допомогою Маска підмережі ).

Однак комутатори і концентратори працюють на один рівень нижче IP рівень Ethernet (конкретно, канальний рівень, з мережею IEEE 802 для дротових пристроїв Ethernet і WiFi). Він не знає, що таке IP-адреса або що вони означають. Однак він розуміє щось, що називається MAC-адресою. Коли комп'ютер розсилає пакет, він також включає в себе MAC-адреса наступного пристрою в мережі, який повинен обробляти цей пакет. У цьому випадку маршрутизатор.

Коли a концентратор отримує пакет, він робить саме те, що ви описали - він дублює пакет і відправляє його по всіх лініях, сподіваючись отримати його до місця призначення. Будь-які пристрої, які отримують пакет, але не одержувач, просто відкидають його.

A перемикач З іншого боку, це трохи розумніше. Він фактично зберігає таблицю MAC-адрес і пов'язує їх з кожним портом на основі вхідного трафіку. Таким чином, коли він повинен надіслати пакет на певну MAC-адресу, він знає, на який порт потрібно відправити. Це допомагає зменшити перевантаження мережі.


0

Припускаючи, що маска мережі на nic є 255.255.255.0, запит буде відправлений до шлюзу за замовчуванням. Якщо маска мережі була встановлена ​​таким чином, щоб потрібна мережа знаходилася в діапазоні, ПК міг би обробити запит.


0

Ваш комп'ютер використовує маску підмережі, щоб визначити, чи адреса IPv4 призначення вимкнена. Якщо це так, то ваш комп'ютер планує звернутися до заголовків Ethernet-шару до адреси Ethernet (MAC) вашого маршрутизатора. Якщо він не знає MAC-адреси вашого маршрутизатора, він використовує ARP, щоб дізнатися.

Таким чином, на рівні Ethernet пакет адресований вашому маршрутизатору, але на рівні IP пакет все ще адресований до вихідної IP-адреси призначення.


0

IP-стек операційної системи працює там, де його слід надсилати наступним чином.

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

Для IPv4 у вас є мережева адреса та адреса хоста. Таким чином, для адреси 192.168.1.10 з маскою підмережі 255.255.255.0 у вас є перші 3 байти, що використовуються для адреси мережі. частина 255.255.255. 0 біт в кінці представляє хостову частину адреси. Насправді ви також можете мати маски підмережі 255.255.255.240. Але для того, щоб це було просто, я просто скажу, що ці цифри використовуються для визначення того, як 4 байти або октети, які складають адресу, розділяються між мережею та хостами.

У випадку маски підмережі 255.255.255.0, частина 0 в кінці означає, що ми можемо мати 255 вузлів.

Тепер для частини маршрутизації.

Якщо ми надсилаємо пакет до 192.168.1.11, то стек IP буде знати, що це локальна адреса, і відправити його безпосередньо на адресу 192.168.1.11, оскільки перші 3 октети відповідають моїй локальної мережі. Однак, якщо я повинен був відправити пакет до 1.1.1.1, то він буде відправлений у будь-який спосіб, визначений як маршрут за замовчуванням в моїй операційній системі. Маршрут за замовчуванням - це маршрутизатор, який буде обробляти "Я хочу відправити пакет до 1.1.1.1 для мене". Так що все, що не є локальним, що не починається з 192.168.1, буде надіслано маршрутизатору за замовчуванням. Як маршрутизатор знає, як досягти 1.1.1.1 є те, що протоколи маршрутизації все о. Але ви просто запитали, як пакети отримують "поза мережею", так що я сподіваюся, що ця відповідь пояснює це досить добре для вас.


0

2) легко відповісти:
Ваш комп'ютер не передає свої пакети комутатору, оскільки він не знає, що він є.

Ваш комп'ютер (а точніше, мережний стек) має таблицю маршрутизації. На основі інформації в цій таблиці він може:

  • Повернути інформацію до себе (власний IP або локальний хост)
  • Звертайтеся до NIC в локальній мережі (відомо через власну IP-адресу та власну підмережу)
  • Знайте, що він не є локальним і відправляйте його через когось, хто, сподіваюся, знає, куди він повинен піти (так званий шлюз за замовчуванням).

Я намагаюся придумати набагато довшу і детальну відповідь, і через тиждень або близько того я, можливо, щось надішлю про мережу на моїй домашній сторінці. Тим часом я хотів би направити вас до дуже довгої та обширної відповіді на цей сайт на сайті: serverfault робота з підмережами ?

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