Xinetd hört auf IP-Adressen, die keiner Schnittstelle zugewiesen sind

Xinetd hört auf IP-Adressen, die keiner Schnittstelle zugewiesen sind

Ist es irgendwie möglich, Xinetd (oder eine andere Lösung) zu verwenden, um auf eingehende Pakete für eine IP-Adresse zu lauschen, die keiner Schnittstelle zugewiesen ist, und einen Daemon zu starten (wie es Xinetd tut)?

Meine Linux-Maschine ist also der Standard-GW, an den alle Pakete gesendet werden. Ich möchte bestimmte Pakete mit einer Ziel-IP erkennen, die nicht an eine Schnittstelle gebunden ist, und darauf reagieren (einen Daemon starten).

Danke!

Antwort1

Ja, aktivieren Sie eine net.ipv4.ip_nonlocal_bindEinstellung:

echo "net.ipv4.ip_nonlocal_bind = 1" > /etc/sysctl.d/enable-nolocal-bind.conf"
sysctl net.ipv4.ip_nonlocal_bind=1

(Letzteres bedeutet „Jetzt aktivieren“, die erste Zeile dient dazu, es dauerhaft zu machen.) Jetzt können Sie Daemons an jede beliebige IP-Adresse binden.

Dies funktioniert jedoch möglicherweise nicht wie erwartet. Im selben LAN verwenden Computer nicht das Standard-GW zur Kommunikation. Sie senden Pakete direkt, z. B. indem sie ARP-Abfragen durchführen, um die MAC-Adresse des Systems herauszufinden, an das ein Paket gesendet werden soll. Wenn keine Antwort erfolgt, wird nicht auf das Senden eines Pakets an ein Standard-GW zurückgegriffen. Stattdessen schlägt es mit dem Fehler fehl.

Antwort2

Unter Linux sind Routen vom Typ „local“ Loopbacks und werden an den lokalen Host übermittelt. Auch bekannt alsJeder.

Routen Sie ein Präfix mit der gewünschten Länge. Wenn Sie IPv6 verwenden, reservieren Sie vielleicht ein ganzes /64 für diesen Zweck, sagen wir 2001:db8:bdd2:c0e::/64. Routen Sie das an diesen Host (die Linux-Box) und senden Sie es in der Linux-Box an lokal.

Konfigurieren Sie xinetd so, dass es auf dem gewünschten Port lauscht.

Endergebnis: Jede IP in diesem Netz 2001:db8:bdd2:c0e::138wird beispielsweise auf dieser Box beendet und das Serverprogramm gestartet.

verwandte Informationen