Likes Likes:  0
Resultaten 1 tot 10 van de 10
Geen
  1. #1
    DNS loadbalance/failover
    Solaris Sys*****
    1.364 Berichten
    Ingeschreven
    04/12/03

    Locatie
    Leiden

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: Nee
    KvK nummer: 28071088
    Ondernemingsnummer: NVT

    Thread Starter

    DNS loadbalance/failover

    Mij is gevraagd bij een klant mee te werken in een VoIP (Voice over IP) project wat daar al een aantal weken bezig is.

    1 van de eerste dingen die ik tegen kwam (wat niet goed werkt) is wat load balancing tussen client/server...

    De situatie is op zich niet al te complex, de client doet een request en deze dient door 1 van de 2 servers afgehandelt te worden.
    Op zich op te lossen door gewoon round-robin dns in te stellen zodat de requests de ene keer de ene server wordt bereikt, de andere keer de 2de server.
    Klant wil echter ook een fail-over hebben, dus als 1 van de servers plat ligt, alleen de over gebleven server wordt aangesproken.

    Door cisco werdt (al enige tijd geleden) een Cisco GSS 4480 aangeraden (GSS = Global Connection Switch) en deze heeft de klant ook aangeschaft.
    In de praktijk blijkt deze niet het gewenste resultaat te geven (in elk geval niet met de rest van de configuratie die de klant heeft). Ook de GSS geeft bij het niet bereikbaar zijn van een server nog doodleuk round-robin beide IP's door (hij resolved ze gewoon van een exerne dns server)...

    Dan de vraag... is er een andere oplossing ? Wat er dus wordt gezocht is *iets* dan:
    a) wat weet welke hosts er in een pool zitten (server1 + server2)
    b) indien beide servers up zijn, round-robin de ip's resolved (load balancing)
    c) indien 1 server er niet is, enkel het ip geeft van de werkende server..


    Indien van belang:
    Huidige test-dns server: simpele PC met Suse (9.1) / bind8
    Operationele dns server (in bestelling) Sun V100 met Sun Solaris 9.

  2. #2
    DNS loadbalance/failover
    Linux pro
    2.341 Berichten
    Ingeschreven
    06/07/03

    Locatie
    Sint-Niklaas (BE)

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: 0867.248.492

    Je moet round robin ip hebben.

    De loadbalancer heeft 1 ip waarop ook de domains configt worden, deze verdeelt de requests dan over de servers die up zijn.
    Simpel te doen met een LVS.

  3. #3
    DNS loadbalance/failover
    3.810 Berichten
    Ingeschreven
    16/05/04

    Locatie
    Middelburg

    Post Thanks / Like
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    130 Berichten zijn liked


    Registrar SIDN: Ja

    Je zou eens kijken gaan kijken zoals is gezegt naar LVS.

    Ik denk dat de IP-tunneling methode hier het beste uitpakt voor je.

    Zie ook: http://www.linuxvirtualserver.org/

    Ik gebruik de NAT methode voor websites te loadbalancen, echter ben ik er achter gekomen dat de IP-tunneling wat beter is.

    Daarom stap ik over op de IP-tunneling methode.

  4. #4
    DNS loadbalance/failover
    Solaris Sys*****
    1.364 Berichten
    Ingeschreven
    04/12/03

    Locatie
    Leiden

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: Nee
    KvK nummer: 28071088
    Ondernemingsnummer: NVT

    Thread Starter
    Van LVS had ik wel eens gehoord maar nooit echt in verdiept, even lopen struinen door de docs etc daarzo..

    Ik vrees dat het in deze situatie niet echt op die manier kan werken (of ik heb niet goed genoeg gekeken, even wat detail info..

    ( huidige situtie incl. de GSS )

    Gebruiker met analoge telefoon -> PBX -> isdn router -> FW -> Cisco GSS -> NameServer -> NAT-Router -> server1 + server2 -> KPN telefoon centrale (nummer centrale).

    */ edit
    De isdn router doet dus een request naar 'server' en dien uit te komen op 'server1' of op 'server2'
    /*

    ( de GSS gaat dus waarschijnlijk tussen uit)

    De load balancing dient plaats te vinden op de NameServer/GSS (de velden in bold kunnen aangepast worden, de rest dient statisch te blijven (mag ook niet wijzigen).

    De (nog te plaatsen) dns server is een Sun V100 (dus geen intel x86 bak) die ook in principe Sun Solaris dient te draaien (rest van het server-park zijn vergelijkbare systemen).
    De huidige (tijdelijke/test) name-server is dus een suse linux doosje.
    Laatst gewijzigd door royen99; 06/08/04 om 21:30.

  5. #5
    DNS loadbalance/failover
    geregistreerd gebruiker
    243 Berichten
    Ingeschreven
    08/05/04

    Locatie
    Helmond

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    KvK nummer: 171531147

    Re: DNS loadbalance/failover

    Origineel geplaatst door royen99
    Ook de GSS geeft bij het niet bereikbaar zijn van een server nog doodleuk round-robin beide IP's door (hij resolved ze gewoon van een exerne dns server)...
    Ik ben niet bekend met high performance clusters, maar als ik dit zo lees is het dan niet mogelijk om de load balancer op een snelle server te zetten, die te laten pollen of de servers nog online zijn en zo niet de DNS lokaal af te handelen en het bewuste ip uit de DNS pool te halen? En zodra de server weer online is die er weer terug te zetten met RR?

  6. #6
    DNS loadbalance/failover
    Solaris Sys*****
    1.364 Berichten
    Ingeschreven
    04/12/03

    Locatie
    Leiden

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: Nee
    KvK nummer: 28071088
    Ondernemingsnummer: NVT

    Thread Starter
    Er zuo inderdaad 1 of ander shell scriptje in de background (op de dns server) draaien die (bijv.) om de minuut beide hosts pinged/polled.
    Vervolgens de zone file aanpast als een host onbereikbaar is en de zone opnieuw reload.
    Echt 'netjes' vind ik die oplossing niet, maar ik ben bang dat er weinig andere mogenlijk heden zijn....

  7. #7
    DNS loadbalance/failover
    Linux pro
    2.341 Berichten
    Ingeschreven
    06/07/03

    Locatie
    Sint-Niklaas (BE)

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: 0867.248.492

    De enigste nette optie is dat er een loadbalancer voor server1 en server2 komt te staan die via round robin ip gewoon de request verdeelt over de beschikbare servers.

  8. #8
    DNS loadbalance/failover
    geregistreerd gebruiker
    243 Berichten
    Ingeschreven
    08/05/04

    Locatie
    Helmond

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    KvK nummer: 171531147

    dan hou je het zelfde probleem, als er een server uitvalt en de RR geeft nog wel dat ip door dan blijf je 50% van de tijd een offline site te zien krijgen. Moet je alsnog een script draaien om te pollen of de servers online zijn en dan heb je precies wat ik bedoelde.

  9. #9
    DNS loadbalance/failover
    Linux pro
    2.341 Berichten
    Ingeschreven
    06/07/03

    Locatie
    Sint-Niklaas (BE)

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: nee
    KvK nummer: nvt
    Ondernemingsnummer: 0867.248.492

    Eh dat doet een loadbalancer over het algemene wel... Anders heeft ie weinig nut

    EDIT: let wel op dat round robin ip heel wat anders is als round robin dns!

  10. #10
    DNS loadbalance/failover
    Solaris Sys*****
    1.364 Berichten
    Ingeschreven
    04/12/03

    Locatie
    Leiden

    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0 Berichten zijn liked


    Registrar SIDN: Nee
    KvK nummer: 28071088
    Ondernemingsnummer: NVT

    Thread Starter
    Het nadeel is dat beide servers (sip1 en sip2) ongewijzigd qua software/settings dienen te blijven en de klant alleen connectie maakt naar 'sip'. (en ook nog eens door een nat-router heen gaat).

    Mischien niet een al te nette manier, maar volgens mij zoiets als dit wel werken (al hou ik me aanbevolen voor iets wat meer proffesioneler is):

    ( resultaat van een uurtje tikken ):
    Code:
    #/bin/bash
    
    # Config starts here
    
    sip1_ip="10.0.0.1"              # IP address of node
    sip2_ip="10.0.0.2"              # IP address of node
    zone_file="/var/bind/xxx.com"   # DNS server zone file
    zone=xxx.com                    # temporary zone file
    
    # Config end here
    
    # we remove the tmp zone file to make sure its empty.
    if [ -f $zone ]
    then
            rm $zone
    fi
    
    # The static part of the zone (the part that should never change).
    cat > $zone << EOF
    \$ORIGIN com.
    cvo             38400   IN      SOA     dns.xxx.com. postmaster.xxx.com. (
                    993079138       32400   28800   432000  86400 )
            38400   IN      NS      dns.xxx.com.
            38400   IN      A       10.0.0.110
    \$ORIGIN xxx.com.
    gateway 38400   IN      A       10.0.0.1
    test    38400   IN      A       10.0.0.14
    gss     38400   IN      A       10.0.0.4
    EOF
    
    # the A records of the sip hosts
    sip1_zone="sip  38400   IN      A       10.0.0.1"
    sip2_zone="sip  38400   IN      A       10.0.0.2"
    
    
    # Sub routine to ping sip1
    # We give out 4 pings, wait 1 second for each ping.
    # When the exit code = 1, then it failed and we consider
    # the host to be down.
    ping_sip1()
    {
    ping -w 4 -i 1 -q $sip1_ip >/dev/null 2>&1 ; result=$?
    if [ ${result} -eq 1 ]
    then
            status1=1
    else
            status1=0
            echo $sip1_zone >> $zone
    fi
    }
    
    # Sun routine to ping sip2
    ping_sip2()
    {
    ping -w 4 -i 1 -q $sip2_ip >/dev/null 2>&1 ; result=$?
    if [ ${result} -eq 1 ]
    then
            status2=1
    else
            status2=0
            echo $sip2_zone >> $zone
    
    fi
    }
    
    
    ping_sip1
    ping_sip2
    
    # When both sips are up, we'll have a status of 0 (all is ok)
    # When one sip is down, our status changes to 1 or 2 (depending which
    # sip is down.
    if [ $status1 -eq 0 -a $status2 -eq 0 ]
    then
            status=0
    else
            if [ $status1 -eq 0 ]
            then
                    status=1
            fi
            if [ $status2 -eq 0 ]
            then
                    status=2
            fi
    fi
    
    # We compare the current status to the previous status. If its equal nothing
    # needs to be done. When status changes, we'll copy the current zone file to
    # the dns server config and reload the zone.
    if [ $status != `cat status` ]
    then
            # Status changed!
            cp $zone $zone_file
            rndc reload xxx.com
    fi
    
    # Write down the current status to file
    echo $status > status
    Bovenstaande dan bv via cron elke minuut, of in een while / do / done loopje etc..
    Werkt wel, maar fraai vindt ik het niet ...

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics