Ist es möglich, einem Loopback-Gerät eine echte IP zuzuweisen?

Ist es möglich, einem Loopback-Gerät eine echte IP zuzuweisen?

Ist es möglich, einem Loopback-Gerät eine echte IP-Adresse (nicht im Bereich 127.xxx) zuzuweisen?

Antwort1

Alternativ zur Verwendung lo:0können Sie dummyin Linux auch Schnittstellen verwenden, wie in:

ifconfig dummy0 10.0.0.1/32
ifconfig dummy1 10.1.1.1/24

Zusätzlich zu den Antworten anderer:

  • Ich empfehle nicht, die übliche/offizielle Loopback-Schnittstellenadresse zu ändern, da viele Funktionen davon abhängen.
  • Sie können jedoch mehrere Loopback-/Dummy-Schnittstellen haben/erstellen – entweder lo:0 bis lo:255 oder DummyX-Schnittstellen;
  • Dabei ist zu beachten, dass es sich bei lo:0 bis lo:255 um Aliase handelt, während dummyX vollwertige Schnittstellen sind.
  • Darüber hinaus besteht eine der üblichen Taktiken in Linux zum Erstellen virtueller IPs über BGP oder OSPF darin, diese Loopback-/Dummy-Schnittstellen zuzuweisen UND über das Routing Pfade zu ihnen zu erstellen.
  • wiederum haben einige Daemons Probleme mit der Ankündigung von Adressen in Aliasnamen (z. B. quagga) – in diesen Fällen werden also dummyX-Schnittstellen empfohlen;
  • Ich möchte betonen, dass solche Adressen ohne Routing in der Infrastruktur nur auf dem betreffenden Server bekannt bzw. nutzbar sind.
  • Das Zuweisen einer privaten/öffentlichen Adresse zu einer Loopback-Schnittstelle ohne das richtige Routing kann eine Maßnahme mit geringem Rechenaufwand sein, um Kommunikationsverbindungen auf die schwarze Liste zu setzenvorübergehendmit einer IP-Adresse/einem Netzwerk.

Weitere Einzelheiten finden Sie beispielsweise in einem Tutorial zur Einrichtung von BIND-Anycast, das mit Quagga/BIRD durchgeführt wurde.

Routing-Hinweise hier:OSPF: Migration von Quagga zu BIRD

PS: Linux erstellt standardmäßig nur dummy0 und dummy1 und muss angewiesen werden, eine größere Anzahl von Dummy-Schnittstellen zu erstellen.

Antwort2

Auf dem aktuellen Linux-Kernel ipist das mit dem Utility ganz einfach:

ip addr add 10.0.1.8 dev lo

Dies kann nützlich sein, wenn Sie einen Dienst haben, der einen Port an eine Schnittstelle bindet, und ein anderes Programm auf demselben Port und Netzwerk ausführen möchten. Ich verwende es, um beides zu ermöglichen bindund dnsmasqdie Koexistenz auf demselben Server zu ermöglichen.

/etc/network/interfacesWenn Sie zur Konfiguration Ihrer Schnittstellen verwenden , aktualisieren Sie die loStrophe, um Folgendes einzuschließen:

up ip addr add 10.0.1.8 dev lo

Antwort3

Nichts verbietet es, es zu tun.

#ifconfig lo:1 10.0.0.1/8
#ifconfig lo:1
lo:1 Link encap:Lokaler Loopback  
          inet-Adresse:10.0.0.1 Maske:255.0.0.0
          UP LOOPBACK RUNNING MTU:65536 Metrik:1
#ping -c 1 10.0.0.1    
PING 10.0.0.1 (10.0.0.1) 56(84) Bytes Daten.
64 Bytes von 10.0.0.1: icmp_seq=1 ttl=64 Zeit=0,025 ms

--- 10.0.0.1 Ping-Statistiken ---
1 Pakete gesendet, 1 empfangen, 0 % Paketverlust, Zeit 0 ms
RTT min./avg./max./mdev. = 0,025/0,025/0,025/0,000 ms

Aktualisieren:

Damit diese Adresse nach einem Neustart unter Ubuntu 16.04 erhalten bleibt, können Sie Ihre /etc/network/interfacesDatei mit diesen ethtoolBefehlen ändern:

auto lo lo:1

iface lo inet loopback

iface lo:1 inet static
  address 10.0.0.1
  network 10.0.0.0
  netmask 255.0.0.0

Antwort4

Ja, aber das heißt nicht, dass es eine gute Idee ist. Wenn Sie eine IP verwenden, auf die Ihr System jemals zugreifen wird, werden alle Daten, die es dorthin zu senden versucht, stattdessen auf das lokale System umgeleitet, was zu allen möglichen merkwürdigen Netzwerkproblemen führen kann. Dies bedeutet insbesondere, dass Sie nichts außerhalb der folgenden Bereiche sicher verwenden können:

127.0.0.0/8
192.0.2.0/24
198.51.100.0/24
203.0.113.0/24
240.0.0.0/4

Mit möglicher Ausnahme des Folgenden, abhängig von der Konfiguration Ihrer anderen Netzwerkschnittstellen:

10.0.0.0/8
192.168.0.0/16
172.16.0.0/12
169.254.0.0/16

Dies ist ein Fall, in demRFC 1925Es gilt Absatz 2 Ziffer 3.

verwandte Informationen