Qual è il numero massimo di IP che è possibile assegnare a un determinato computer?


13

Ho davvero bisogno di sapere questo per un server Linux, ma poiché si applica anche ai sistemi operativi client, ho pensato che la domanda dovesse essere posta qui invece di un errore del server.

Risposte:


16

Secondo le risposte a questo post nella mailing list linux-net ,

  • A un certo punto, il kernel Linux aveva un limite di 255 alias per dispositivo di interfaccia fisica.
  • A partire dalla versione 2.2 del kernel Linux, non esiste un limite (pratico), con la seconda risposta che cita l'esperienza personale con aliasing di oltre 5.000 indirizzi su una singola scheda Ethernet.

Naturalmente, l'associazione di un gran numero di alias a un singolo dispositivo imporrà requisiti di memoria e potrebbe avere conseguenze sulle prestazioni, quindi è del tutto possibile che l'hardware possa limitare il numero di alias che è possibile aggiungere, anche se il kernel stesso non lo fa.


Non è necessario creare alias per questo; ip addr addpuò associare gli indirizzi a un singolo dispositivo.
Ignacio Vazquez-Abrams,

3
Sì, e lo fa aliasando indirizzi aggiuntivi sullo stesso dispositivo. Sia che l'alias sia chiamato ( eth0:0) o meno, è ancora un alias. Certo, gli autori della ip(8)pagina man scelgono di non usare il termine "alias" perché tratta tutti gli indirizzi come uguali, praticamente tutto il resto del mondo concorda sul fatto che l'assegnazione di più indirizzi alla stessa interfaccia è chiamata "aliasing IP".
Dave Sherohman,

1
Ad un certo punto ho avuto la necessità di assegnare un sacco di indirizzi IPv6 a un singolo host, e una volta raggiunti i circa 4000 indirizzi si è rotta la scoperta del vicino. Il numero esatto di indirizzi necessari per interrompere la scoperta del vicino variava un po 'tra gli esperimenti, ma era sempre abbastanza vicino ai 4000.
Kasperd,


3

Il massimo sarebbe 4.294.967.294 indirizzi IP (supponendo che tu stia parlando di IPV4, hai abbastanza RAM e ne prendiamo uno per l'indirizzo di trasmissione e uno per l'indirizzo di rete).


0

Il kernel di Linux ha una funzione chiamata AnyIP che ti permette di rispondere per un blocco contiguo di indirizzi IPv4 o IPv6 tramite l'interfaccia di loopback di Linux per un costo molto basso in DRAM / CPU.

Ad esempio, supponiamo che io voglia che la mia macchina Linux risponda a qualsiasi indirizzo in 10.7.0.0/16:

  • Sul sistema Linux aggiungere una route locale: ip -4 route add local 10.7.0.0/16 dev lo
  • Chiedi ai tuoi ingegneri di rete di pubblicizzare un percorso per 10.7.0.0/16 che punta all'indirizzo eth0 della macchina con cui hai fatto questo.

Congratulazioni, ora rispondi per un numero enorme di indirizzi (oltre 65.000 in questo esempio) e il tuo consumo di RAM non è praticamente nulla da questo esercizio. In termini di scalabilità, questa soluzione è molto meglio dell'aggiunta di singoli alias di interfaccia su eth0 per tutti gli IP a cui vuoi rispondere.

Non c'è limite al numero di indirizzi a cui puoi rispondere in questo modo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.