Чому IP-адреси надаються кожному інтерфейсу, а не пристрою? Якими будуть наслідки цього?


12

Чому нам потрібно давати IP-адреси кожному інтерфейсу? Хіба не вистачить одного на кожен пристрій?


3
Деякі пристрої отримують лише IP для управління, оскільки він не прив’язаний до якогось конкретного інтерфейсу. Інші працюють так, як ви описали. Він залежить від пристрою, моделі та програмного забезпечення / мікропрограмного забезпечення. Крім того, вам може знадобитися призначити різні IP-адреси для кожного інтерфейсу залежно від вимог завдання.
Джессі П.

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

Немає відповіді з історичною інформацією? Розчарований :-)
Даніель В.

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

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

Відповіді:


25

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

Так само хост може мати безліч мережевих підключень і відповідно IP-адреси. Різні інтерфейси часто мають різні функції, тому важливо їх розрізняти (наприклад, внутрішня консоль, державні служби, iSCSI).

Маршрутизатори вимагають декількох IP-адрес для своїх інтерфейсів.


14

Немає.

Сказане, давайте подивимось спрощений приклад:

У мене є комп'ютер з трьома інтерфейсами: eth0(провідний Ethernet), wlan0(wifi) та vboxnet0(virtualbox). Один з інтерфейсів підключений до внутрішньої мережі, один підключений до Інтернету, а останній підключений до мережі віртуальних комп'ютерів. Скажімо, у мене є лише одна адреса, 10.1.2.3, і я хочу надіслати цілу партію пакетів до 192.168.1.2, доступних в одній з цих мереж - куди я їх надсилаю? Не можу просто надіслати їх скрізь, така поведінка за короткий час затопить усі мережі.

Але якщо в інтерфейсі eth0 є 192.168.1.3, у wlan0 є 10.1.2.3, а в vboxnet0 є 172.0.0.1, тоді таблиця маршрутизації за замовчуванням, ймовірно, скаже "надіслати ет0". (Очевидно, це може бути набагато складніше за складніших правил маршрутизації).

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


1
Чому ви не могли знати, що можна досягти на кожному інтерфейсі без тих, хто має різні IP-адреси?
Paŭlo Ebermann

Ви могли б (і справді можливо мати такі правила маршрутизації), але тоді ви переходите на нижчий рівень абстракції, замість того, щоб сказати "надіслати що-небудь невідповідне до 10.1.2.1" і зробити це з ним (шар OSI 3), тепер вам потрібно обробити "який з інтерфейсів я хочу (рівень 2)". Це теж можливо , але абстракція спрощує питання.
Пісквор вийшов з будівлі

2
І ще одна річ - IP-адреси призначені для того, щоб інші також могли з вами зв’язатися. Скажіть, що ви підключені через wifi та через Ethernet; кожен з інтерфейсів переходить в іншу мережу, але обидві мережі можуть охопити Інтернет. Тепер ви надсилаєте пакет до 1.2.3.4 з вашого 10.1.2.3 - який маршрут повернення? Wi-Fi чи провідний? Ви можете здогадатися, але якщо ви здогадаєтесь неправильно, пакет повертається через неправильний інтерфейс і може бути відкинутий. (Так, бувають випадки, коли вам потрібно кілька інтерфейсів з одним IP-адресом, або iface з більшою кількістю IP-добавників, або iface з відсутністю addr - незвично)
Piskvor вийшов з будинку

5

Випадок 1: Маршрутизатори

Теоретично це було б можливо.

Однак зазвичай пакет IP надсилається "безпосередньо" до пункту призначення, коли IP-адреса "відповідає" певній мережевій масці (наприклад, 10.0.0.0/28); інакше пакет надсилається через маршрутизатор.

Це означає:

  • Маршрутизатор з'єднує дві мережі; кожна з двох мереж має маску мережі
  • Пакети, що надсилаються з одного комп'ютера на інший в межах однієї з двох мереж, не передають маршрутизатор.

    Це означає, що IP-адреси кожного комп'ютера відповідають мережевій масці мережі, до якої вони підключені.

  • Пакети, що надсилаються маршрутизатору (це включає пакети, які маршрутизує маршрутизатор!), Не надсилаються з комп'ютера на маршрутизатор через другий маршрутизатор.

    Це означає, що IP-адреса маршрутизатора повинна відповідати мережевим маскам обох мереж.

  • IP-пакети, що надсилаються з одного комп'ютера в одній мережі на комп'ютер в іншій мережі, однак надсилаються через маршрутизатор.

    Це означає, що IP-адреси комп'ютерів в одній мережі не повинні відповідати мережевій масці іншої мережі.

Вибрати IP-адресу та дві мережеві маски майже неможливо таким чином, щоб одна IP-адреса відповідала обом мережним маскам, але багато IP-адрес відповідають лише одній мережевій масці.

Випадок 2: Різні приватні мережі

У нас може бути випадок, що комп'ютер підключений до двох приватних мереж, які не можуть обмінюватися даними між собою.

У цьому випадку комп'ютер може мати однакову IP-адресу в обох мережах.

У випадку з IPv4 більшість ОС не підтримують це, оскільки ОС використовують мережеві маски двох мереж для їх розрізнення. Мережі повинні мати різні мережеві маски ...

У випадку IPv6 (з використанням "link-local" адреси) комп'ютер може мати однакову (локальну) локальну IP-адресу в двох різних мережах - і тому дві мережеві карти можуть мати однакову IP-адресу!


В одному конкретному випадку специфікації TSN для ethernet дозволяють отримати декілька інтерфейсів з однаковими IP-адресами, масками та MAC-адресою , щоб підтримувати безшовні надлишкові шляхи для детермінованої Ethernet (802.1cb). Надлишок обробляється на рівні MAC (виявлення дублювання упакованих даних та ігнорування надлишкової інформації), тому з точки зору хостів це один інтерфейс.
катастрофа

4

Пристрій, який має IP-адресу, існує в мережі.

Маршрутизатор - це пристрій, основне призначення якого - передавати трафік між мережами .

Щоб маршрутизатор міг передавати пакети між двома мережами, він повинен існувати в обох мережах.

Маршрутизатор матиме "руку" всередині кожної мережі - або, як ми її називаємо, інтерфейс . І спосіб існування інтерфейсу в мережі полягає в призначенні йому IP-адреси в межах мережі.

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

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


1
Приємна і лаконічна відповідь, дуже чіткий спосіб пояснення чому .
Stilez

3

Мені було цікаво, чому нам потрібно давати IP-адреси кожному інтерфейсу? Не давали б кожному пристрою достатньо?

Дозвольте розпочати, оскаржуючи ваше припущення. Чому ти кажеш, що це не так, як поводяться машини? Скажіть, я присвоюю 192.168.1.1/24 et1 та 192.168.2.1/24 et2. Окрім встановлення маршруту для 192.168.1.0/24 з eth1 та 192.168.2.0/24 з et2 та визначення бажаної вихідної IP-адреси для пакетів, що надсилаються по цьому маршруту, наскільки насправді важливо, до якого інтерфейсу я призначаю IP-адресу? Що насправді змінюється? У якому сенсі машина не поводиться так, як ніби всі IP-адреси, призначені для інтерфейсів машини, належать машині?

Використовуються обидва підходи. Найпоширеніший підхід - це фактично гібрид цих двох підходів.

У крайньому випадку "надати пристрою IP-адресу" ви можете уявити собі пристрій, який веде себе так, ніби всі його інтерфейси підключені до фільтруючого мосту з однією IP-адресою, призначеною для моста.

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

На практиці більшість машин працюють десь між ними. Вони діють так, ніби всі IP-адреси належать машині. Присвоєння IP-адресу певному пристрою насправді не означає все, крім того, щоб ОС не встановила маршрут за замовчуванням із цього інтерфейсу та встановила IP-адресу джерела за замовчуванням для пакетів, що надсилаються в той інтерфейс, де IP-адреса джерела не є ' t змушений.

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


2

У загальному випадку вам потрібен один IP в локальній мережі, до якої ви підключаєтесь, і саме так було визначено TCP / IP: кожен хост у даній локальній мережі має IP-адресу, яка дозволяє:

  • спрямовувати трафік у відповідну локальну мережу на основі IP-адреси призначення
  • направити трафік на відповідний пристрій у цій локальній мережі (наприклад, після пошуку ARP у локальних мережах 802.x).

Поки у вас є локальні мережі з декількома пристроями, підключеними до неї (більшість локальних мереж 802.x, включаючи Ethernet, Wi-Fi), обійти це досить важко, якщо ви принципово не зміните спосіб роботи TCP / IP.

Однак насправді цього можна уникнути, хоча це досить специфічно.

Розглянемо мережу, яка має лише точкові зв’язки (точка-точка-Ethernet між двома пристроями без комутатора чи концентратора, посилання DSL, посилання SONET / SDH, Frame Relay або ATM VC ...).

Звичайна умова - використовувати a / 30 для кожного посилання, тому пристрій на кожному кінці має IP-адресу на цьому посиланні.

Але ви можете використовувати "IP без нумерації", а не пов'язувати IP-адреси з цими посиланнями. Тепер ви призначаєте IP-адресу інтерфейсу зворотного зв'язку (будь-який інтерфейс дійсно, але зворотний зв'язок є найпростішим для цієї мети), і ви використовуєте динамічний протокол маршрутизації (IS-IS, OSPF, EIGRP ...). Цей протокол маршрутизації рекламує спосіб маршрутизації трафіку до цієї IP-адреси через різні ненумеровані посилання.


0

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

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

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

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


0

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

В інших відповідях вже згадується випадок маршрутизатора. В одному з них згадується virtualbox, що стосується віртуальних машин: ви можете працювати на одному фізичному пристрої декількома віртуальними. Інший випадок - це VLAN, можливо, ви насправді були підключені до однієї мережевої карти, декількох різних віртуальних локальних мереж з різними IP-адресами. І ви навіть можете з якихось причин мати інтерфейс з декількома IP-адресами, наприклад, тому що ви хочете запустити кілька веб-серверів на порту TCP 80. Така конфігурація не є рідкістю для серверів, обладнання, яке ви орендуєте, може мати єдину мережеву інтерфейсну карту , але у вас буде налаштовано кілька IP-адрес.

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