1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Carp Interface manuell switchen

Dieses Thema im Forum "FreeBSD - Netzwerk" wurde erstellt von no-pain-no-gain, 11 Januar 2018.

  1. no-pain-no-gain

    no-pain-no-gain New Member

    Registriert seit:
    19 Dezember 2017
    Beiträge:
    2
    Ich bin gerade dabei eine HA Lösung für HAProxy zu basteln. Prinzipiell funktioniert das schon fast so wie ich möchte.
    Derzeit habe ich 2 ( virtuelle ) Server die wie folgt konfiguriert sind.

    MASTER:
    Code:
    ifconfig_vmx0="inet 192.168.203.11 netmask 255.255.255.0"
    ifconfig_vmx0_alias0="inet vhid 20 advskew 100 pass blablabla alias 192.168.203.220/32"
    BACKUP:
    Code:
    ifconfig_vmx0="inet 192.168.203.12 netmask 255.255.255.0"
    ifconfig_vmx0_alias0="inet vhid 20 advskew 200 pass blablabla alias 192.168.203.220/32"
    HAProxy lauscht auf der virtuellen IP.
    Fällt der Master aus dann übernimmt der BACKUP. Kommt der Master back switcht die IP wieder auf den Master. net.inet.carp.preempt=1 ist auf beiden Maschinen gesetzt.

    Mein Frage ist nur wie kann ich manuell einen Switch auslösen ?
    Hintergrund der Frage:

    Ich benötige noch eine Überwachung für das HAProxy Service. Ist das Service ausgefallen, soll die virtuelle IP auf den Backup wandern.
     
  2. mark05

    mark05 Member

    Registriert seit:
    19 November 2003
    Beiträge:
    810
    Ort:
    Bergisch Gladbach
    hi

    ifconfig carpX carpdemote 100 sollte das sein was du suchst

    bitte man ifconfig zu rate ziehen

    holger
     
  3. mapet

    mapet Active OpenBSD User

    Registriert seit:
    5 Januar 2007
    Beiträge:
    1.476
    Ort:
    /Germany/Neuss
    Das ist FreeBSD, das kennt kein carpdemote, oder?
    Auf dem Backup:
    Code:
    ifconfig vmx0 alias vhid 20 advskew 90
    Der Master wird durch die advskew bestimmt. Der niedrigere Wert sendet die advertisements öfter und veranlasst den switch. Ist bei mehreren Interfaces leider etwas unhandlich.
     
    no-pain-no-gain gefällt das.
  4. mark05

    mark05 Member

    Registriert seit:
    19 November 2003
    Beiträge:
    810
    Ort:
    Bergisch Gladbach
    hi

    ups , ich uebersah das es sich um freebsd pf handelt

    sorry

    holger
     
  5. Yamagi

    Yamagi Possessed With Psi Powers Mitarbeiter

    Registriert seit:
    14 April 2004
    Beiträge:
    8.974
    Ort:
    Schleswig-Holstein
    Das geht mit dem "state" Parameter:
    Code:
    ifconfig vmx0 vhid 20 state SLAVE
    
    Oder so ähnlich, ich habe das lange nicht mehr gemacht. :)
     
  6. no-pain-no-gain

    no-pain-no-gain New Member

    Registriert seit:
    19 Dezember 2017
    Beiträge:
    2
    DANKE !

    Der Tipp mit dem verändern der advskew war der Schlüssel zum Erfolg. Ich hab das jetzt folgendermaßen gelöst.
    Ifstated kontrolliert alle 5 Sekunden ob der HAProxy läuft. Wenn nicht wird das CARP Interface via advskew so erhöht das es zum Backup wird, und auf den zweiten Host wandert.

    Code:
    haproxy_check = '( "service haproxy status" every 5 )'
    
    state main {
            if !$haproxy_check {
                    run "ifconfig vmx0 alias vhid 20 advskew 201"
                    set-state demoted
                    }
    }
    
    state demoted {
            if $haproxy_check {
                    run "ifconfig vmx0 alias vhid 20 advskew 100"
                    set-state main
                    }
    }