
Ich richte eine Maschine ein, die ich in einem Testnetzwerk verwenden werde und auf der viele Websites gehostet werden. Ich möchte, dass dieser Host viele (etwa 20.000) IP-Adressen hat.
Ich weiß, ich könnte sie alle mit einem Skript hinzufügen, das beispielsweise
ip addr add <ip>/<mask> dev eth0
und holen Sie sie alle auf diese Weise. Tatsächlich funktioniert das einwandfrei, aber es übersteht offensichtlich einen Neustart nicht.
Wenn ich eine Änderung vornehme, /etc/sysconfig/network-scripts/ifcfg-eth0
kann ich eine statische IP zuweisen, die dauerhaft bleibt, aber ich glaube nicht, dass ich auf diese Weise mehr als eine zuweisen kann.
Gibt es eine Möglichkeit, viele statische IPs dauerhaft zuzuweisen?
Ich nehme an, dass ich im schlimmsten Fall meinen eigenen IP-Dienst erstellen und die Befehle über einen systemd-Dienst ausführen lassen könnte ip
, aber ich frage mich, ob es dafür eine allgemeingültigere Möglichkeit gibt.
Antwort1
Ich habe nicht überprüft, ob Zehntausende unterstützt werden, aber es scheint, dass Sie viele Adressen ifcfg-
direkt in der Datei angeben können, wenn Sie NetworkManager mitteilen, dass Sie dies tun möchten.
Der erste Schritt war, NetworkManager zu informieren, was ich auch tat,
nmcli con mod eth0 ipv4.method manual
Dann habe ich es /etc/sysconfig/network-scripts/eth0
so geändert, dass es
IPADDR0=<ip0>
NETMASK0=<mask0>
IPADDR1=<ip1>
NETMASK1=<mask1>
und hatte dann eth0
beide dieser Adressen (zumindest nach einem Neustart).
Update: Leider erlaubt diese Methode nur bis zu 256 Adressen pro Schnittstelle. (Falls Sie interessiert sind, können Sie die Beschränkung für Version 0.9.10, die mit Fedora 21 ausgeliefert wird, in der Quelle in Zeile 1366 von src/settings/pluginos/ifcfg-rh/reader.c sehen.)
Antwort2
Es ist einfach, wenn Sie es herausgefunden haben.
Ich kenne zwei Möglichkeiten, entweder einzelne ifcfg-eth:x
Dateien für einzelne Adressen oder ifcfg-eth0-rangex
Dateien für IP-Bereiche. Die Datei wird in /etc/sysconfig/network-scripts/
einem Ordner abgelegt.
So, erster Fall. Einfach kopieren /etc/sysconfig/network-scripts/ifcfg-eth0
nach /etc/sysconfig/network-scripts/ifcfg-eth0:0
. Öffnen Sie es in einem Editor und ändern SieGERÄTzu eth0:0 undIPADDRzu dem, was Sie wollen. Laden Sie dann Ihr Netzwerk neu ( systemctl restart network
auf CentOS 7). Wiederholen Sie den Schritt und erhöhen Sie x um eins.
Im zweiten Fall kopieren Sie /etc/sysconfig/network-scripts/ifcfg-eth0
nach /etc/sysconfig/network-scripts/ifcfg-eth0-range0
. Öffnen Sie dann die Datei in einem Editor und ersetzen SieIPADDRmitIPADDR_STARTund füge hinzuIPADDR_ENDmit den entsprechenden Start- und Stopp-IPs des Bereichs. Laden Sie das Netzwerk wie zuvor beschrieben neu und die Änderungen werden aktiv.
Antwort3
kopieren /etc/sysconfig/network-scripts/ifcfg-eth0
und /etc/sysconfig/network-scripts/ifcfg-eth0:0
bearbeiten
DEVICE="eth0:0"
BOOTPROTO="static"
IPADDR=192.168.230.252
NETWORK=192.168.230.0
NETMASK=255.255.255.0
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
Sie müssen sich im selben Netzwerk befinden.
Neustart.
Wenn ein Neustart nicht möglich ist, versuchen Sie ifconfig eth0:0 up
(diesen Teil habe ich nicht getestet)
sehenhttp://www.cyberciti.biz/faq/linux-creating-or-adding-new-network-alias-to-a-network-card-nic/