Failover IPv4 als Outbound IP

  • Hallo zusammen,


    ich steh irgendwie auf dem Schlauch. Entweder es geht nicht oder mir fehlt der Ansatz.


    Wir haben einen Server mit gebuchter IPv4 Failover-Adresse. Installiert ist Ubuntu 20.4 LTS - Netzwerk-Konfiguration mit netplan.

    Soweit so gut. Funktioniert auch alles soweit.


    Aber wie bekomme ich es nun hin, dass statt der Standard-IP-Adresse (im Beispiel: 1.2.3.4) die Failover-Adresse (im Beispiel: 6.7.8.9) als ausgehende IP verwendet wird?

    Also das bei Fremdservern angezeigt wird, dass die Verbindung von der Failover-IP kommt.


    Hier meine netplan-Config - weitere Netzwerk-Einstellungen sind sonst abweichend vom default nicht gesetzt:

    Code
    network:
      version: 2
      renderer: networkd
      ethernets:
        ens3:
          addresses: ["1.2.3.4/22", "4.5.8.9/32"]
          gateway4: "1.2.3.1"
          nameservers:
            addresses: [46.38.225.230, 46.38.252.230]


    Besten Dank für eure Hilfe,

    Patrick

  • google einmal nach deprecated address und lft_preferred


    Danke, der Tipp war schon gut, funktioniert nur leider nicht wie erwartet. :(


    Die netplan-Config sieht nun wie folgt aus:


    Ein "ip a" gibt dann auch folgendes aus für o.g. IPs:

    Code
    inet 6.7.8.9/32 scope global ens3
           valid_lft forever preferred_lft forever
    inet 1.2.3.4/22 brd 1.2.3.255 scope global deprecated ens3
           valid_lft forever preferred_lft forever


    Die Lifetime für die "1.2.3.4" bleibt also auf "forever", obwohl sie als deprecated gekennzeichnet ist.

    Auch ein "ip route" bestätigt, dass die falsche IP weiterhin verwendet wird:

    Code
    ip route get 8.8.8.8 | head -1 | gawk '{ print $5,$7 }'
    ens3 1.2.3.4


    Das Verhalten bleibt sowohl nach einem "netplan apply" als auch nach einem Neustart das Selbe.

    Die netplan Version ist bereits die 0.100, welches o.g. Konfiguration ermöglicht (mit 0.99 gings noch nicht). Ich habe es dennoch ebenso mit den Hooks des networkd-dispatcher versucht - vergebens.


    Weitere Ideen? :)

  • Das Verhalten bleibt sowohl nach einem "netplan apply" als auch nach einem Neustart das Selbe.

    Nur eine Frage am Rande... um welchen Dienst geht es da, wo die die falsche Quell-IP-Adresse hast? (Tip: Postfix und Co machen je nach Konfiguration ein Bind auf 0.0.0.0 oder eine spezifische Adresse.)

  • Am liebsten wäre mir, wenn die generelle Ausgangs-IP die Failover ist.


    Speziell geht es hier jedoch um Apache, nginx und PHP (FPM und CLI).

    Bei diesen Diensten hört auch alles eingehend ausschließlich auf die Failover.. aber für ausgehend hat das leider keine Wirkung.

  • Ich habe in meinem internen Wiki folgendes Snippet gefunden:

    Bash
    # Die Variablen muss man natürlich noch ersetzen!
    ip route change default via $GATEWAY src $ADDRESS

    Wie man das jetzt bei Netplan korrekt hinterlegt, müsste ich aber auch erst recherchieren.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Ich habe in meinem internen Wiki folgendes Snippet gefunden:

    Bash
    # Die Variablen muss man natürlich noch ersetzen!
    ip route change default via $GATEWAY src $ADDRESS

    Wie man das jetzt bei Netplan korrekt hinterlegt, müsste ich aber auch erst recherchieren.

    DAS hat die Lösung gebracht. Super, vielen Dank!


    Via netplan selbst hab ich es auch nicht eingestellt bekommen. Für alle die es interessiert - zumindest unter Ubuntu 20.04 mit networkd-dispatcher:


    1.) Neue Datei erstellen (Besitzer muss root sein): sudo /etc/networkd-dispatcher/routable.d/50-ifup-hooks


    Bash
    #!/bin/bash
    
    # Variablen $IFACE, $GATEWAY und $ADDRESS muss man noch ersetzen!
    ip route change default dev $IFACE via $GATEWAY src $ADDRESS

    2.) Rechte setzen: sudo chmod u+x /etc/networkd-dispatcher/routable.d/50-ifup-hooks

    3.) sudo netplan apply


    Fertig! :)



    Vielen Dank nochmal an alle die versucht haben zu helfen! :)