Як IP-пакет знає, який шлюз взяти?


11

Припустимо, в одній мережі існують два шлюзи. Якщо я правильно розумію, таблиця маршрутизації IP на комп'ютері відправника вирішує, які пакети будуть спрямовані через шлюз.

Таблиці маршрутизації IP містять IP-адресу шлюзу.

Як ця IP-адреса шлюзу використовується при надсиланні IP-пакетів?


1
Пакет не "знає", маршрутизатор вирішує, до якого шлюзу надіслати його, незалежно від того, яка би існує зв'язок між маршрутизатором і обраним шлюзом. (Як зазначається у відповідях, ethernet - це добре відомий і поширений рівень 2 для IP-трафіку.)
Пітер Кордес,

Відповіді:


14

TL; DR: адреса шлюзу зберігається лише в кадрі Ethernet, який містить цей пакет TCP / IP

Сервер-> комутатор-> трафік маршрутизатора, а також сервер-> комутатор-> трафік сервера - це те, де ІР-адресація насправді не відіграє значної ролі. Це світ основного протоколу, швидше за все, Ethernet. Отже, це світ, який працює на MAC-адресації.

Тож вам потрібно лише вирішити плутанину, що шлюз за замовчуванням - це IP-адреса. Це, начебто ... при запуску ... але цей IP-параметр шлюзу потрібен лише для одного, тобто запитати: у кого тут 192.168.1.1? Відповідь приходить, що шлюз MAC 88: 99: aa: bb: cc: dd: ee: ff. (Це запит / відповідь ARP, перекладач між двома світами.) Пакет переходить до цього MAC на рівні Ethernet, незважаючи на те, що він може мати інше призначення на рівні IP.

Таким чином, пакет позначений, щоб перейти до обраного шлюзу, кодуючи його в полі "MAC призначення" кадру Ethernet. Поле визначає, який шлюз у цій мережі отримає його, якщо є кілька шлюзів. ("Кадр" - це нижня капсула, яка містить пакет або частину пакета.)


2
Я б пішов далі і сказав, що це єдина відповідь, яка насправді відповідає на питання.
Пітер Грін

3
Також це стосується не лише шлюзу за замовчуванням, до якого він відноситься, він застосовується до адреси "наступного переходу" для будь-якого запису в таблиці маршрутизації.
Пітер Грін

2
Звичайно, є й інші протоколи шару 1/2, ніж ethernet, які використовуються. У протоколах IEEE LAN є MAC адреси, але інші протоколи використовують щось або нічого іншого.
Рон Мопін

6

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

Тут може бути статична інформація про маршрут або його підмережу, а для решти використовується шлюз за замовчуванням . Зазвичай це стосується локальної мережі: може бути статична маршрутизація до інших локальних мереж та шлюз за замовчуванням для решти, тобто Інтернету. У випадку декількох шлюзів за замовчуванням, тобто маршрутів до 0.0.0.0або ::, активний вибирається за його значенням « Параметри» або « Метрика» .

Речі ускладнюються, коли між пунктами призначення є декілька маршрутів, як і між Інтернет-провайдерами на рівні Інтернету. Існує кілька методів обміну інформацією між маршрутизаторами: протокол інформації про маршрутизацію (RIP), відкритий перший коротший шлях першим (OSPF) та протокол граничного шлюзу (BGP). Незалежно від того, як поділяється ця інформація, таблиця маршрутизації знає наступний перехід, а IP-пакет знає лише про своє кінцеве призначення.


1
Також варто згадати маршрутизацію на основі політики, коли різні таблиці маршрутизації можна вибирати на основі різних критеріїв, таких як джерело ip або мітка брандмауера.
Братчлі

Не забудьте пояснити, що найдовший збіг префіксів має перевагу над усім іншим, коли є два можливі збіги.
Рон Моупін

Питання полягає не в тому, як маршрутизатор пересилає пакет, а в тому, як відправник відправляє його в правильний маршрутизатор в першу чергу.
Бармар

@Barmar: Оригінальну версію цього питання можна було трактувати двома способами, а ця відповіла іншою. Процес вибору маршрутизатора на основі таблиці маршрутів однаковий для машини-початківця. Тому я все ще вважаю цю відповідь корисною, поки інший опускається на один шар. Вони доповнюють один одного.
Еса Йокінен

Я щойно перевірив історію редагування. Я не бачу відповідної різниці в оригінальній версії. Питання полягає в тому, як пакет потрапляє на маршрутизатор, який визначається з таблиці маршрутизації.
Бармар

2

Одна з можливостей полягає в тому, що мережа налаштована за допомогою першого протоколу надмірного надмірності (FRHP), такого як VRRP або HSRP. FHRP має віртуальну адресу шлюзу, яку використовують хости, а трафік, направлений на віртуальну адресу, приймає один з фізичних маршрутизаторів, який потім пересилає трафік. Якщо основний маршрутизатор не працює, вторинний маршрутизатор може визначити це і взяти на себе переадресацію пакетів.


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

Маршрутизатори вивчають маршрути трьома способами:

  1. Прямо підключені мережі
  2. Статично налаштовані маршрути
  3. Через протокол динамічної маршрутизації

2

Короткий і простий відповідь: він не кодується в пакеті, або це цільова адреса Ethernet, залежно від того, як ви дивитесь на нього. Стек IP / Ethernet розглядає, яким шлюзом обробляється IP-адреса призначення, надсилає ARP-запит на IP-адресу шлюзу, щоб отримати його MAC-адресу, потім він відправляє пакет на MAC-адресу шлюзу. Потім шлюз пересилає пакет і робить те ж саме знову. Це передбачає мережу Ethernet.

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


0

Звичайно, одна деталь, яку дивиться, - чи відповідає маршрут. Якщо я надсилаю на 192.0.2.55/24 і маршрут доступний для руху до 10.55.0.0/16, то цей маршрут ігнорується, оскільки він не застосовується.

Наступним критерієм, який зазвичай розглядається, є те, щоб більш конкретні маршрути мали пріоритет над більш загальними маршрутами. Під "конкретним" маршрутом я маю на увазі менші підмережі. Іншими словами, більша кількість при використанні нотацій / CIDR та більше маски підмережі при використанні позначення "маска підмережі". Іншими словами, мережі призначення з меншою кількістю можливих адрес.

Отже, "шлюз за замовчуванням", також відомий як "шлюз в крайньому випадку", як правило, визначає призначення для всього трафіку до мережі 0.0.0.0/0. Будь-який маршрут для меншої мережі буде "більш конкретним", ніж цей, і матиме пріоритет. Отже, 192.0.2.0/24 матиме більше пріоритету.

По-третє, маршрути зазвичай мають інше поле, яке називається "показник", або іноді інше ім'я, наприклад "пріоритет". Якщо у вас кілька мереж однакового розміру, це може мати вплив.

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

Де інформація про шлюз, який слід кодувати всередині IP-пакетів, що надсилаються?

IP-пакети не містять ніякої інформації про маршрутизацію, за винятком зазначення IP-адреси призначення. Деталі маршрутів визначаються обладнанням, яке обробляє маршрутизацію, і такі деталі зазвичай не розміщуються в IP-пакеті. (Тому обладнання не шукає такої деталі, оскільки його немає. Оскільки обладнання не шукає такої інформації, було б безглуздо намагатися включити таку інформацію.)

RFC 791 на сторінці 11 показана таблиця стилів "ASCII ART" інформації, що знаходиться в IP-пакеті. Після цієї таблиці в цьому документі відображаються деталі (наприклад, розділ "Параметри" описаний на сторінці 15).

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