Jaka jest maksymalna liczba adresów IP, które można przypisać do danego komputera?

13

Naprawdę muszę o tym wiedzieć w przypadku serwera linux, ale ponieważ dotyczy to także systemów operacyjnych klienta, pomyślałem, że należy zadać pytanie zamiast błędu serwera.

Jeremy Boyd
źródło

Odpowiedzi:

16

Zgodnie z odpowiedziami na ten post na listę mailingową linux-net ,

  • W pewnym momencie jądro Linuksa miało limit 255 aliasów na urządzenie interfejsu fizycznego.
  • Począwszy od jądra Linuksa w wersji 2.2, nie ma (praktycznego) limitu, a druga odpowiedź przytacza osobiste doświadczenia z aliasem ponad 5000 adresów na jednej karcie Ethernet.

Oczywiście, powiązanie dużej liczby aliasów z jednym urządzeniem narzuci wymagania dotyczące pamięci i może mieć wpływ na wydajność, więc jest całkiem możliwe, że twój sprzęt może ograniczyć liczbę aliasów, które możesz dodać, nawet jeśli samo jądro tego nie robi.

Dave Sherohman
źródło
W tym celu nie trzeba tworzyć aliasów; ip addr addmoże powiązać adresy z jednym urządzeniem.
Ignacio Vazquez-Abrams,
3
Tak i robi to poprzez aliasing dodatkowych adresów na tym samym urządzeniu. Niezależnie od tego, czy alias ma nazwę ( eth0:0), czy nie, nadal jest to alias. To prawda, że ​​autorzy strony ip(8)man zdecydowali się nie używać terminu „alias”, ponieważ traktuje wszystkie adresy jako równe, prawie cała reszta świata zgadza się, że przypisywanie wielu adresów do tego samego interfejsu nazywa się „aliasingiem IP”.
Dave Sherohman,
1
W pewnym momencie musiałem przypisać wiele adresów IPv6 jednemu hostowi, a kiedy osiągnąłem około 4000 adresów, nastąpiło odkrycie sąsiada. Dokładna liczba adresów potrzebnych do przerwania odkrywania sąsiadów różniła się nieco między eksperymentami, ale zawsze była zbliżona do 4000.
kasperd
6

Więcej niż kiedykolwiek możesz potrzebować. Służy ip addr adddo dodawania adresów do interfejsu.

Ignacio Vazquez-Abrams
źródło
3

Maksymalnie byłoby 4 294 967 294 adresów IP (zakładając, że mówisz o IPV4, masz wystarczającą ilość pamięci RAM, a my wyjmujemy jeden dla adresu rozgłoszeniowego i jeden dla adresu sieciowego).

Mike Scott
źródło
0

Jądro linuksa ma funkcję AnyIP, która pozwala odpowiedzieć na ciągły blok adresów IPv4 lub IPv6 za pośrednictwem interfejsu pętli zwrotnej Linuksa, przy bardzo niskim koszcie w pamięci DRAM / CPU.

Załóżmy na przykład, że chcę, aby moja maszyna z systemem Linux odpowiedziała na dowolny adres w wersji 10.7.0.0/16:

  • W systemie Linux dodaj trasę lokalną: ip -4 route add local 10.7.0.0/16 dev lo
  • Poproś inżynierów sieci, aby zareklamowali trasę dla 10.7.0.0/16, wskazując adres eth0 maszyny, z którą to zrobiliście.

Gratulacje, teraz odpowiadasz na ogromną liczbę adresów (ponad 65 000 w tym przykładzie), a zużycie pamięci RAM praktycznie nie jest z tego ćwiczenia. Pod względem skalowalności rozwiązanie to jest znacznie lepsze niż dodawanie indywidualnych aliasów interfejsów w eth0 dla wszystkich adresów IP, na które chcesz odpowiedzieć.

Nie ma limitu liczby adresów, na które możesz odpowiedzieć w ten sposób.

Mike Pennington
źródło