Wie viele IPs können einem bestimmten Computer maximal zugewiesen werden?

13

Ich muss das wirklich für einen Linux-Server wissen, aber da es auch für Client-Betriebssysteme gilt, dachte ich, dass die Frage hier gestellt werden sollte, anstatt dass ein Serverfehler vorliegt.

Jeremy Boyd
quelle

Antworten:

16

Nach den Antworten zu diesem Beitrag zur Linux-net Mailingliste ,

  • Zu einem bestimmten Zeitpunkt gab es im Linux-Kernel ein Limit von 255 Aliasen pro physischem Schnittstellengerät.
  • Ab der Linux-Kernel-Version 2.2 gibt es keine (praktische) Beschränkung. In der zweiten Antwort wird auf die persönliche Erfahrung verwiesen, mehr als 5.000 Adressen auf eine einzelne Ethernet-Karte verteilt zu haben.

Das Binden einer großen Anzahl von Aliasen an ein einzelnes Gerät ist mit Speicheranforderungen verbunden und kann Auswirkungen auf die Leistung haben. Daher ist es durchaus möglich, dass Ihre Hardware die Anzahl der Aliase einschränkt, die Sie hinzufügen können, selbst wenn der Kernel dies nicht tut.

Dave Sherohman
quelle
Hierfür müssen keine Aliase erstellt werden. ip addr addkann die Adressen an ein einzelnes Gerät binden.
Ignacio Vazquez-Abrams
3
Ja, und zwar durch Aliasing zusätzlicher Adressen auf dasselbe Gerät. Unabhängig davon, ob der Aliasname ( eth0:0) lautet oder nicht, handelt es sich weiterhin um einen Aliasnamen. Zugegeben, die Autoren der ip(8)Manpage verwenden den Begriff "Alias" nicht, da er alle Adressen als gleich behandelt. Der Rest der Welt ist sich einig, dass das Zuweisen mehrerer Adressen zu derselben Schnittstelle als "IP-Aliasing" bezeichnet wird.
Dave Sherohman
1
Irgendwann musste ich einem einzelnen Host viele IPv6-Adressen zuweisen, und als ich ungefähr 4000 Adressen erreichte, brach die Nachbarerkennung ab. Die genaue Anzahl der Adressen, die
erforderlich waren
6

Mehr als Sie jemals brauchen könnten. Dient ip addr addzum Hinzufügen von Adressen zu einer Schnittstelle.

Ignacio Vazquez-Abrams
quelle
3

Das Maximum wären 4.294.967.294 IP-Adressen (vorausgesetzt, Sie sprechen von IPV4, Sie haben genügend RAM und wir entfernen eine für die Broadcast-Adresse und eine für die Netzwerkadresse).

Mike Scott
quelle
0

Der Linux-Kernel verfügt über eine Funktion namens AnyIP , mit der Sie einen zusammenhängenden Block von IPv4- oder IPv6-Adressen über Ihre Linux-Loopback-Schnittstelle zu sehr geringen Kosten in DRAM / CPU beantworten können.

Angenommen, ich möchte, dass mein Linux-Computer für eine beliebige Adresse in 10.7.0.0/16 antwortet:

  • Fügen Sie auf dem Linux-System eine lokale Route hinzu: ip -4 route add local 10.7.0.0/16 dev lo
  • Bitten Sie Ihre Netzwerktechniker, eine Route für 10.7.0.0/16 anzugeben, die auf die eth0-Adresse des Computers verweist, mit dem Sie dies getan haben.

Herzlichen Glückwunsch, Sie antworten jetzt auf eine enorme Anzahl von Adressen (über 65.000 in diesem Beispiel), und Ihr RAM-Verbrauch ist praktisch nichts von dieser Übung. In Bezug auf die Skalierbarkeit ist diese Lösung weitaus besser als das Hinzufügen einzelner Schnittstellen-Aliase auf eth0 für alle IP-Adressen, für die Sie eine Antwort geben möchten.

Es gibt keine Begrenzung für die Anzahl der Adressen, für die Sie so antworten können.

Mike Pennington
quelle