Ich möchte den Amazon EC2-Metadatendienst auf meinem lokalen System zum Testen emulieren. In EC2 läuft dies auf 169.254.169.254
. Ich verstehe, dass dies derfestgelegtBereich für pseudozufällige lokale Adressen bei DHCP-Fehlern, aber Amazon verwendet ihn in seiner Weisheit auch für diesen Zweck, also muss ich dasselbe tun.
Ich verwende F19 Alpha. In früheren Fedora-Versionen konnte ich einfach eine virtuelle Schnittstelle auf dem Loopback-Gerät erstellen lo:0
und dieser mithilfe der normalen Skripte eine statische Adresse zuweisen ifcfg-
. Das schlägt nun mit „Fehler: Verbindungsaktivierung fehlgeschlagen: Gerät wird nicht von NetworkManager verwaltet oder ist nicht verfügbar".
(Ich verwende NetworkManager, aber vorher habe ich dies darunter gemacht.)
Ist es der richtige Ansatz, einen Weg zu finden, mit dem, was ich getan habe, fortzufahren lo:0
(und wenn ja, wie?), oder gibt es einen besseren Weg?
Antwort1
Um Ihre spezifische Frage zu beantworten, können Sie verwendeniproute2So weisen Sie die IP-Adresse zu:
sudo ip addr add 169.254.169.254/16 dev lo
Es wird einfach eine neue IP zur Schnittstelle hinzugefügt, ein Aliasing mit :0, :1 usw. ist nicht erforderlich. Beachten Sie, dass dies nach einem Neustart verloren geht.
Und um den Metadatendienst schnell zu emulieren, können Sie verwendenNetzkatzeso was:
while true; do sudo nc -l 169.254.169.254 80 <<< '"region" : "eu-west-1"'; test $? != 0 && break; done
Dadurch erhalten Sie die Region, wenn Sie folgendermaßen fragen:
curl -s http://169.254.169.254/latest/dynamic/instance-identity/document
NOTIZ:Entsprechenddie aktuelle Version dieser Dokumentationsseite von AWSDie Metadatendienst-IP ist eine Link-Local-Adresse und verweist auf dieWikipedia-Artikel darüber. Diese Seite verweist wiederum aufRFC3927Dort heißt es:
Zu diesem Zweck ist das IPv4-Präfix 169.254/16 bei der IANA registriert.
Antwort2
Ich habe Fedora eine Weile nicht verwendet, aber es sollte CentOS immer noch sehr ähnlich sein. Ich habe dies auf CentOS 6 gemacht.
Kopieren /etc/sysconfig/network-scripts/ifcfg-lo
nach/etc/sysconfig/network-scripts/ifcfg-lo:1
Ihre neue Konfiguration sollte folgendermaßen aussehen:
DEVICE=lo:1
IPADDR=169.254.169.254
NETMASK=255.0.0.0
ONBOOT=yes
NAME=loopback1
Starten Sie den Netzwerkdienst neu service network restart
.
Gute Chance, mein Freund!