Dlaczego adresy IP są przypisywane do każdego interfejsu, a nie urządzenia? Jakie byłyby tego konsekwencje?


12

Dlaczego musimy podawać adresy IP każdemu interfejsowi? Czy nie wystarczyłoby po jednym dla każdego urządzenia?


3
Niektóre urządzenia otrzymują tylko adresy IP do zarządzania, które nie są powiązane z żadnym konkretnym interfejsem. Inne działają w sposób opisany przez Ciebie. Różni się w zależności od urządzenia, modelu i oprogramowania / oprogramowania układowego. Ponadto może być konieczne przypisanie innego adresu IP dla interfejsu w zależności od wymagań zadania.
Jesse P.

3
Krótka odpowiedź - aby umożliwić routery. Router to tylko komputer (obecnie najprawdopodobniej Linux), który musi łączyć się z różnymi sieciami - dlatego musi mieć możliwość posiadania wielu adresów IP. Wiele adresów IP na urządzenie pojawiło się mniej więcej w tym samym czasie, co wynalazek routera.
slebetman

Brak odpowiedzi z informacjami historycznymi? Rozczarowany :-)
Daniel W.

To pytanie nie ma sensu lub nie jest konkretnym ani kompletnym logicznym stwierdzeniem. To tylko kombinacja słów. Adres IP to liczba całkowita używana w protokole internetowym zdefiniowanym w różnych zapytaniach o komentarze. Nie wierzę, by kiedykolwiek zdefiniowano pojęcie „urządzenia” lub „interfejsu”
marszałkowiec

Na przykład dwie aplikacje systemu Windows działające na tym samym komputerze fizycznym mogą korzystać z sieci, która używa protokołu IP do komunikacji. Są plusy i minusy tego. To powiedziawszy, znowu protokół ip jest abstrakcyjną logiczną rzeczą, która działa na wierzchnich warstwach, które same mogą być abstrakcyjne tak samo jak IP.
marszałkowiec

Odpowiedzi:


25

Podłączenie interfejsu do sieci czyni z niego część tej sieci. Dlatego adres IP jest własnością połączenia, a nie hosta.

Podobnie host może mieć wiele połączeń sieciowych i odpowiednio adresy IP. Różne interfejsy często mają różne funkcje, dlatego ważne jest ich rozróżnienie (np. Konsola wewnętrzna, usługi publiczne, iSCSI).

Routery wymagają wielu adresów IP do swoich interfejsów.


14

Nie.

To powiedziawszy, zobaczmy uproszczony przykład:

Mam komputer z trzema interfejsami: eth0(przewodowy Ethernet), wlan0(wifi) i vboxnet0(virtualbox). Jeden z interfejsów jest podłączony do sieci wewnętrznej, jeden do Internetu, a ostatni do sieci komputerów wirtualnych. Powiedzmy, że mam tylko jeden adres, 10.1.2.3, i chcę wysłać dużo pakietów do 192.168.1.2, dostępnych w jednej z tych sieci - dokąd mam je wysłać? Nie można ich po prostu wysłać Wszędzie, takie zachowanie zalałoby wszystkie sieci w krótkim czasie.

Ale jeśli interfejs eth0 ma 192.168.1.3, wlan0 ma 10.1.2.3, a vboxnet0 ma 172.0.0.1, wówczas domyślna tabela routingu prawdopodobnie powie „wyślij go eth0”. (To może oczywiście stać się znacznie bardziej skomplikowane w przypadku bardziej złożonych reguł routingu).

I odwrotnie, mogę chcieć uruchomić usługę tylko na interfejsie otwartym dla sieci prywatnej - więc kiedy przychodzi żądanie na innym interfejsie, nie jest ono w ogóle obsługiwane.


1
Dlaczego nie mogłeś wiedzieć, co jest osiągalne na każdym interfejsie bez tych, które mają różne adresy IP?
Paŭlo Ebermann

Mógłbyś (i rzeczywiście można mieć takie reguły routingu), ale wtedy przejdziesz na niższy poziom abstrakcji, zamiast mówić „wyślij coś, co nie pasuje do 10.1.2.1” i gotowe (warstwa OSI) 3), teraz musisz obsłużyć „który z interfejsów chcę (warstwa 2)”. Jest to również możliwe , ale abstrakcja upraszcza sprawy.
Piskvor opuścił budynek

2
I jeszcze jedno - adresy IP są przydzielane również innym osobom, z którymi można się skontaktować. Powiedz, że masz połączenie przez Wi-Fi i Ethernet; każdy interfejs wchodzi w inną sieć, ale obie sieci mogą łączyć się z Internetem. Teraz wysyłasz pakiet do 1.2.3.4 ze swojego 10.1.2.3 - jaka jest droga powrotna? Wi-Fi czy przewodowy? Możesz zgadywać, ale jeśli pomylisz się, pakiet wraca przez niewłaściwy interfejs i może zostać odrzucony. (Tak, zdarzają się przypadki, gdy chcesz mieć wiele interfejsów z tym samym adresem IP lub iface z większą liczbą adresów IP lub iface bez żadnego adresu - nietypowe)
Piskvor opuścił budynek

5

Przypadek 1: routery

Teoretycznie byłoby to możliwe.

Jednak zwykle pakiet IP jest wysyłany „bezpośrednio” do miejsca docelowego, gdy adres IP „pasuje” do określonej maski sieci (np. 10.0.0.0/28); w przeciwnym razie pakiet zostanie wysłany przez router.

To znaczy:

  • Router łączy dwie sieci; każda z dwóch sieci ma maskę sieci
  • Pakiety wysyłane z jednego komputera do drugiego w jednej z dwóch sieci nie przechodzą przez router.

    Oznacza to, że adresy IP każdego komputera pasują do maski sieci w sieci, do której są podłączeni.

  • Pakiety wysyłane do routera (w tym pakiety routowane przez router!) Nie są wysyłane z komputera do routera przez drugi router.

    Oznacza to, że adres IP routera musi być zgodny z maskami sieci obu sieci.

  • Pakiety IP wysyłane z jednego komputera w jednej sieci do komputera w drugiej sieci są jednak przesyłane przez router.

    Oznacza to, że adresy IP komputerów w jednej sieci nie mogą być zgodne z maską sieci drugiej sieci.

Jest prawie niemożliwe wybranie adresu IP i dwóch masek sieciowych w taki sposób, aby jeden adres IP pasował do obu masek sieciowych, ale wiele adresów IP pasuje tylko do jednej maski sieci.

Przypadek 2: Różne sieci prywatne

Moglibyśmy mieć przypadek, że komputer jest podłączony do dwóch prywatnych sieci, które nie mogą wymieniać danych między sobą.

W takim przypadku komputer może mieć ten sam adres IP w obu sieciach.

W przypadku IPv4 większość systemów operacyjnych nie obsługuje tego, ponieważ systemy operacyjne używają masek sieciowych obu sieci do rozróżnienia między nimi. Sieci muszą mieć różne maski sieciowe ...

W przypadku IPv6 (przy użyciu adresów „link-local”) komputer może mieć ten sam (link-local) adres IP w dwóch różnych sieciach - dlatego dwie karty sieciowe mogą mieć ten sam adres IP!


W jednym konkretnym przypadku specyfikacje TSN dla Ethernetu zezwalają na wiele interfejsów z tym samym adresem IP, maską i adresem MAC w celu obsługi płynnych redundantnych ścieżek dla deterministycznego Ethernetu (802.1cb). Nadmiarowość jest obsługiwana na poziomie MAC (wykrywanie duplikatów spakowanych i ignorowanie nadmiarowych informacji), więc z perspektywy hosta jest to jeden interfejs.
poważny

4

Urządzenie, które ma adres IP istnieje w zasięgu sieci.

Router to urządzenie, którego głównym celem jest przekazywanie ruchu między sieciami .

Aby router mógł przekazywać pakiety między dwiema sieciami, musi istnieć w obu sieciach.

Router będzie miał „uzbrojenie” w każdej sieci - lub, jak to nazywamy, interfejs . A interfejs istnieje w sieci, przypisując mu adres IP w sieci.

Stąd, podczas konfigurowania routera, każdy interfejs otrzymuje adres IP do identyfikacji sieci, które to Router należy zasięgu .

Oświadczenie: powyższy link prowadzi do mojego bloga. Mój blog nie zarabia. Nie czerpię zysku z lektury. Podaję link dla Twojej korzyści (i każdego innego czytelnika).


1
Ładna i zwięzła odpowiedź, bardzo jasny sposób wyjaśnienia dlaczego .
Stilez

3

Zastanawiałem się, dlaczego musimy podawać adresy IP każdemu interfejsowi? Czy nie dałbyś każdemu urządzeniu wystarczającej ilości?

Zacznę od podważenia twojego założenia. Dlaczego mówisz, że nie tak zachowują się maszyny? Powiedzmy, że przypisuję 192.168.1.1/24 do eth1 i 192.168.2.1/24 do eth2. Poza instalowaniem trasy dla 192.168.1.0/24 poza eth1 i 192.168.2.0/24 poza eth2 i określaniem preferowanego źródłowego adresu IP dla pakietów wysyłanych wzdłuż tej trasy, jakie znaczenie ma to, do którego interfejsu przypisuję adres IP? Co naprawdę się zmienia? W jakim sensie maszyna nie zachowuje się tak, jakby wszystkie adresy IP przypisane do interfejsów na maszynie należały do ​​maszyny?

Stosowane są oba podejścia. Najpopularniejszym podejściem jest w rzeczywistości hybryda tych dwóch podejść.

Na skraju „podaj urządzeniu adres IP” można sobie wyobrazić urządzenie, które zachowywałoby się tak, jakby wszystkie jego interfejsy były podłączone do mostka filtrującego z jednym adresem IP przypisanym do mostu.

Na skraju „nadaj każdemu interfejsowi adres IP” możesz wyobrazić sobie urządzenie, które zachowywałoby się tak, jakby każdy interfejs miał jak oddzielną maszynę. (Zobacz tutaj, jeśli uważasz, że tak właśnie działają obecnie urządzenia, lub pomyśl o osobie, która łączy się z adresem IP przypisanym do jednego interfejsu, ale pakiety przychodzą i są wysyłane z innego).

W praktyce większość maszyn działa gdzieś pomiędzy. Działają tak, jakby wszystkie adresy IP były własnością maszyny. Przypisanie adresu IP do konkretnego urządzenia tak naprawdę nie robi nic więcej poza informowaniem systemu operacyjnego o zainstalowaniu domyślnej trasy przez ten interfejs i ustawieniu domyślnego źródłowego adresu IP dla pakietów wysyłanych z tego interfejsu, w którym źródłowy adres IP nie jest zmuszony.

W przeciwnym razie zachowują się tak, jakby wszystkie adresy IP należały do ​​urządzenia. Sposób przetwarzania pakietu nie zależy w dużej mierze od tego, w którym interfejsie jest odbierany - pakiety z źródłowym adresem IP przypisanym do jednego interfejsu otrzymanego w innym są rutynowe. Który interfejs ma przypisany adres, nie ma bezpośredniego wpływu na to, który interfejs wysyłany jest pakiet, określa to tabela routingu.


2

W ogólnym przypadku potrzebujesz jednego adresu IP na sieć lokalną, z którą się łączysz, i tak właśnie zdefiniowano protokół TCP / IP: każdy host w danej sieci lokalnej ma adres IP, który pozwala:

  • kierować ruch do odpowiedniej sieci lokalnej na podstawie docelowego adresu IP
  • do kierowania ruchu do odpowiedniego urządzenia w tej sieci lokalnej (na przykład po wyszukiwaniu ARP w sieciach lokalnych 802.x).

Tak długo, jak masz sieci lokalne z wieloma podłączonymi urządzeniami (większość sieci lokalnych 802.x, w tym Ethernet, Wi-Fi), dość trudno jest obejść ten problem, chyba że zasadniczo zmienisz sposób działania protokołu TCP / IP.

Można jednak tego uniknąć, chociaż jest to dość specyficzne.

Rozważ sieć, która ma tylko łącza punkt-punkt (Ethernet typu punkt-punkt między dwoma urządzeniami bez przełącznika lub koncentratora, łącza DSL, łącza SONET / SDH, Frame Relay lub ATM VC ...).

Zwykłą konwencją jest użycie / 30 dla każdego łącza, więc urządzenie na każdym końcu ma adres IP na tym łączu.

Możesz jednak użyć opcji „Numer IP nienumerowany” i nie przypisywać żadnych adresów IP do tych łączy. Teraz przypisujesz adres IP interfejsowi sprzężenia zwrotnego urządzenia (tak naprawdę każdy interfejs, ale do tego celu jest najłatwiejszy) i używasz protokołu routingu dynamicznego (IS-IS, OSPF, EIGRP ...). Ten protokół routingu będzie reklamował sposób kierowania ruchu do tego adresu IP za pomocą różnych nienumerowanych łączy.


0

Adresy IP zawierają informacje o routingu. Adres IP jest podzielony na dwa składniki, numer sieci i numer hosta , w oparciu o przypisaną długość prefiksu (która pierwotnie została wyrażona jako maska ​​sieci, i tak często jest wewnętrznie implementowana w stosach sieciowych).

Aby routing działał poprawnie, wszystkie urządzenia podłączone do określonej sieci muszą mieć adresy o tym samym numerze sieci. Nadawcy określają, czy odbiorca jest w tej samej, czy innej sieci, porównując własny numer sieci z adresem odbiorcy. Jeśli są w tej samej sieci, wysyłają bezpośrednio; w przeciwnym razie wysyłają do routera, którego zadaniem jest przybliżenie wiadomości do miejsca docelowego.

Jeśli więc urządzenie jest podłączone do wielu sieci, potrzebuje adresu w każdej z tych sieci, aby można było do niego dotrzeć z urządzeń w tej sieci.

To powiedziawszy, tak naprawdę nie jest konieczne przypisywanie adresów konkretnym interfejsom sieciowym. Urządzenie może mieć po prostu listę wszystkich posiadanych adresów IP w jednej tabeli. Ale interfejsy nadal potrzebują informacji o sieci, z którą są połączone. Przypisując adres IP i maskę sieci do każdego interfejsu, umieszczamy te informacje w jednym miejscu, co upraszcza projektowanie. Nie ma potrzeby stosowania dodatkowego kodu, aby lista adresów IP była spójna z listą sieci, do których podłączone są interfejsy.


0

Może wystarczyć posiadanie jednego adresu IP w standardowym przypadku, ale jak podkreślają inne odpowiedzi, istnieje wiele przypadków, w których tak nie jest.

Inne odpowiedzi wspominały już o przypadku routera. Wspomina się o virtualbox, tak jak w przypadku maszyn wirtualnych: może być uruchomionych na jednym urządzeniu fizycznym kilka wirtualnych. Innym przypadkiem są sieci VLAN, być może faktycznie podłączone do jednej karty sieciowej, kilku różnych wirtualnych sieci LAN z różnymi adresami IP. I nawet z niektórych powodów możesz mieć interfejs z wieloma adresami IP, na przykład dlatego, że chcesz uruchomić kilka serwerów WWW na porcie TCP 80. Taka konfiguracja nie jest rzadkością dla serwerów, wypożyczany sprzęt może mieć pojedynczą kartę interfejsu sieciowego , ale skonfigurowanych zostanie kilka adresów IP.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.