Ist es möglich, 127.0.0.1-Datenverkehr an eth0 zu senden und gleichzeitig diese IP in der Loopback-Schnittstelle beizubehalten? (Linux)

Ist es möglich, 127.0.0.1-Datenverkehr an eth0 zu senden und gleichzeitig diese IP in der Loopback-Schnittstelle beizubehalten? (Linux)

Die Frage ist, wie im Titel angegeben, ziemlich unkompliziert, aber fast jeder, dem ich sie stelle, versucht, mich davon zu überzeugen, dass ich verrückt oder dumm bin. Ich werde hier erklären, warum ich das brauche, und ich begrüße andere Lösungen, um diese Aufgabe zu erfüllen, aber ich wäre trotzdem sehr dankbar, wenn Sie mir eine Antwort auf die Frage geben könnten (insbesondere, wenn sie nicht „nein“ lautet :)).

Ich habe also einen Pool von Maschinen im selben Netzwerk (sagen wir 10.0.0.1/24), ihre IPs sind 10.0.0.1, 10.0.0.2, ..., 10.0.0.10

Sie haben auch eine öffentliche Internet-IP (sagen wir 8.8.8.8), die auf ihrer Loopback-Schnittstelle (d. h. lo:dsr) konfiguriert ist [Moment, nennen Sie mich noch nicht verrückt]

Zusätzlich zu diesem Pool habe ich einen Direct Server Return Load Balancer. Wenn Sie nicht wissen, wie dieser funktioniert, sehen Sie sich das hier an:http://www.weirdnet.nl/images/natvsdsr.png

Soweit so gut, das funktioniert einwandfrei.

Jetzt kommt das Problem. Auf diesen Maschinen läuft nicht nur ein einziger Dienst. Sie führen drei verschiedene Dienste auf den Ports 8080, 8081 und 8082 aus und kommunizieren untereinander (über das Netzwerk).

Wenn also Dienst 8080 auf Maschine A versucht, Dienst 8081 zu kontaktieren (über die Load Balancer-IP 8.8.8.8), ist Linux „intelligent genug“, um zu erkennen, dass Maschine A die IP 8.8.8.8 besitzt, und stattdessen dieses Paket an die Loopback-Schnittstelle zu senden.

Normalerweise stellt dies kein Problem dar. Da es sich jedoch um ein hochverfügbares System handelt, kann es zu einem Problem kommen, wenn aus irgendeinem Grund (beispielsweise aufgrund einer Lieferung) der Dienst B auf Maschine A gestoppt wird.

verwandte Informationen