Чи повинен шлюз підмережі бути "справжнім" комп'ютером?


13

Чи шлюз - це завжди справжній комп’ютер чи просто "логічний" об'єкт, який може знаходитися за будь-якою адресою, окрім широкомовного IP?


9
Сучасний і, можливо, більш правильний термін для шлюзу - це маршрутизатор . Маршрутизатори можуть існувати виключно в програмному забезпеченні, звичайні комп'ютери, такі як ПК, ноутбуки та серверні системи, можуть використовуватися як маршрутизатори, але, як правило, використовуються спеціальні апаратні пристрої
HBruijn,

2
Що ви маєте на увазі під "логічним утворенням"?
Бармар

2
@HBruijn, у більшості випадків шлюз - це маршрутизатор. Загальний термін полягає в тому, що шлюз - це хост у мережі, якому інші хости передають трафік, який він призначений для іншої мережі. Це не означає, що повинен бути маршрутизатор. Це може бути проксі, ALG і т.д. пакети між мережами.
Рон

Я б став на загрозу, що система, яка здатна приймати рішення про переадресацію на основі ip-адрес призначення, не повинна бути завершеною Turing ... так, ні, маршрутизатор не повинен бути комп'ютером (це стосується одного рівня нижче для мостів і одного високий рівень для шлюзів, хоча це можливо для різних розширень. Тим не менш, кожна така система, як правило, є пристроєм (або колекцією пристроїв), який може бути налаштований адміністративно або додатковими додатками (такими як протоколи маршрутизації) - і навіть мати можливість обробляти Конфігурація, ці речі, як правило, (спеціалізовані) комп'ютери.
Хаген фон Ейтцен

@Barmar Я маю на увазі, якщо шлюз повинен бути спеціалізованим апаратним пристроєм, таким як міст або маршрутизатор, або якщо це може бути просто інформація, наприклад, налаштування на сервері, яка є своєрідною зміною, якщо ви думаєте з точки зору мов програмування .
Semo

Відповіді:


29

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

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


6
... Або принаймні прикидатися.
Shadur

2
@Shadur Мене цікавить, як може працювати маршрутизація, якщо маршрут за замовчуванням лише прикидається фактичним маршрутом трафіку.
MadHatter

1
Сама маршрутизація не спрацює, але якщо все, що ви хочете дозволити, це перегляд, ви могли б переключити "шлюз" і запустити прозорий проксі на порти 53, 80 і 443, і зберегти саму систему максимально ізольованою.
Shadur

7
В ПОРЯДКУ. Я не погоджуюся, але це не маршрутизація. Я заперечую своє твердження, що для того, щоб маршрутизація працювала, маршрутизатор повинен насправді здійснювати маршрутизацію, і це здається, що ви не погоджуєтесь з цим.
MadHatter

1
Справедливий момент, але "шлюз", як він використовується в цьому питанні, є маршрутом за замовчуванням, тобто наступним прискоренням. Це повинно бути в змозі отримати вам не тільки якісь - або внутрішні підмережі , які не мають конкретні маршрутів, але і все інше , а .
MadHatter

15

IP-адресою шлюзу може бути будь-яка дійсна IP-адреса хоста в підмережі, тобто не сама мережева адреса, ані адреса широкомовної передачі. Ця IP-адреса не повинна належати одному комп'ютеру або маршрутизатору, це може бути "плаваюча" IP-адреса, яка використовується декількома шлюзами. Перегляньте статті Вікіпедії про HSRP , VRRP , GLBP або CARP .

Наприклад, коли підмережа становить 172.16.23.0/25, тоді:

  • мережевий адресу 172.16.23.0,
  • широкомовний адресу 172.16.23.127, і
  • діапазон дійсних адрес хоста - від 172.16.23.1 до 172.16.23.126, включно.

Шлюзом повинен бути будь-який з цих дійсних адрес хосту, наприклад, 172.16.23.65. Тоді налаштування вашого комп'ютера будуть, наприклад:

  • IP-адреса: 172.16.23.5
  • Маска підмережі: 255.255.255.128
  • Шлюз за замовчуванням: 172.16.23.65

Тепер додаючи в один із протоколів надмірності перших скачок, фактичні шлюзи (маршрутизатори) можуть мати IP-адреси 172.16.23.1 та 172.16.23.2, але використовувати віртуальну IP-адресу 172.16.23.65, щоб представити себе шлюзом за замовчуванням для підмережі .


9

"Логічна сутність" у вашому використанні - це крихітна заплутаність. Але я спробую відповісти на це найкращим чином.

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

Як ви можете знати, метою, якою служить шлюз за замовчуванням, є функція переадресації для всіх запитів, які: a) комп’ютер ще не має своєї таблиці маршрутизації або має запис, що вказує системі пересилати запит на IP, що трапляється як шлюз та / або b.), Які знаходяться за межами домену широкомовної передачі. Шлюз за замовчуванням ніколи не використовується в ситуаціях, коли два хости знаходяться в одному домені широкомовної передачі (тобто мережева топологія, створена комутатором), оскільки система може використовувати адресу широкомовної мережі підмережі для пошуку MAC-адреси системи, що володіє певною IP-адресою.

Коротше кажучи, щоб відповісти на запитання технічно, ви можете встановити шлюз за замовчуванням як будь-яку IP-адресу в підключеній мережі. Windows або більшість інших ОС з цього питання не зупинять вас, оскільки вони часто не проводять перевірку даних TCP / IP. Якщо ви встановлюєте це, ви, швидше за все, досить технічно підковані, щоб зрозуміти відмінність. Однак якщо це IP-адреса пристрою, яка не в змозі переслати, це призведе до помилок у програмах, які залежать від маршрутизації (тобто веб-браузера), оскільки пристрій не буде підготовлений із таблицею маршрутизації або службою маршрутизації. щоб переслати запит.

Хтось набагато досвідченіший, ніж я, однак повинен вміти мене легко виправити, якщо я помиляюся.

TL; DR - фізичний пристрій, швидше за все.


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

@PeterGreen Так, є багато випадкових випадків. Наприклад, скажімо, 192.168.0.0/24 та 10.0.0.0/24 знаходяться на одній фізичній локальній локальній мережі з шлюзом, оскільки обидва є тим самим фізичним маршрутизатором на 192.168.0.1 та 10.0.0.1 відповідно. Якщо 192.168.0.100 пінгує 10.0.0.100, перша поїздка буде ретрансльована через шлюз. Шлюз може також надсилати перенаправлення ICMP кожному хосту, повідомляючи їм, що вони перебувають в одній локальній мережі. Якщо так, кожен хост потім надсилатиме ARP-запити, щоб отримати MAC-адреси свого однолітка, і все подальше спілкування буде здійснюватися безпосередньо між одноранговими (не через шлюз).
Алекс Хайнал

Зауважте, що у наведеному вище прикладі хости повинні бути продані (через переадресацію ICMP), щоб транслювати запит ARP для MAC-адреси однорангової мережі в іноземній мережі. Відсутність хостів переадресації не надсилатиме ARP-запити в іноземній мережі.
Алекс Хайнал

5

Записи таблиці маршрутизації вирішують підмережу або до шлюзу, або до мережного адаптера.

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

0.0.0.0/0 via 192.168.0.1
192.168.0.0/24 dev eth0

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

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

Отже, для пакету до 1.1.1.1, місце призначення шукається в таблиці маршрутів, повертаючи маршрут за замовчуванням, який має шлюз. Шлюз знову переглядають, повертаючи інтерфейс Ethernet.

У Ethernet є MAC-адреси, тому пошук адреси ARP робиться для адреси шлюзу, а MAC-адреса шлюзу використовується для вихідного пакету (який все ще використовує належну адресу призначення у своєму IP-заголовку).

Інші транспорти нижчого рівня працюють по-різному, наприклад, PPP-посилання мають "рівну адресу", тому їх маршрут пристрою використовує мережну маску / 32, і вони пропускають роздільну здатність ARP і просто надсилають пакети як "трансляція" по каналу PPP.

Деякі стеки IP вимагають створення вручну маршруту пристрою, що робить це трохи більш очевидним:

ifconfig eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255 up
route add -net 192.168.0.0 netmask 255.255.255.0 dev eth0
route add default via 192.168.0.1
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.