abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 16:33 | Komunita

    42 svobodných a otevřených projektů získalo finanční podporu od NLnet Foundation (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    dnes 12:22 | IT novinky

    Americký výrobce čipů Intel plánuje propustit více než 20 procent zaměstnanců. Cílem tohoto kroku je zjednodušit organizační strukturu ve firmě, která se potýká s problémy.

    Ladislav Hagara | Komentářů: 4
    dnes 05:22 | Nová verze

    Byla vydána OpenMandriva Lx 6.0 s kódovým názvem Vanadium. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 01:44 | Zajímavý článek

    CSIRT.CZ, český národní CERT provozovaný na základě veřejnoprávní správní smlouvy společností CZ.NIC, shrnuje patnáct let svého fungování pod tímto sdružením: CSIRT.CZ – 15 let ve sdružení CZ.NIC.

    Ladislav Hagara | Komentářů: 7
    včera 22:22 | Nová verze

    Commodore OS Vision (Wikipedie) byl vydán v nové verzi 3.0. Jedná se o linuxovou distribuci určenou pro fanoušky značky Commodore. Předinstalována je na počítačích Commodore 64x.

    Ladislav Hagara | Komentářů: 6
    včera 16:22 | Pozvánky

    Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 208. brněnský sraz, který proběhne v pátek 25. dubna od 18:00 ve studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | Zajímavý článek

    Ve svém článku Getting Forked by Microsoft popisuje autor programu Spegel svoji nepříjemnou zkušenost s firmou Microsoft. Firma ho kontaktovala a zpočátku to vypadalo, že by mohlo jít o oboustranně prospěšnou spolupráci, autor tedy ochotně odpovídal na jejich otázky ohledně architektury programu a pomáhal jim ho zprovoznit. Následně komunikace ze strany Microsoftu utichla. Autor předpokládal, že zřejmě došlo ke změně priorit a firma

    … více »
    xkucf03 | Komentářů: 17
    včera 01:33 | IT novinky

    Společnost Notion Labs stojící za softwarovou platformou pro spolupráci Notion (Wikipedia) oficiálně představila (YouTube) poštovního klienta Notion Mail. Aktuálně funguje pouze nad Gmailem.

    Ladislav Hagara | Komentářů: 4
    21.4. 12:44 | Nová verze

    Byla vydána nová verze 9.12 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    20.4. 03:55 | Nová verze

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    Jaký filesystém primárně používáte?
     (58%)
     (1%)
     (10%)
     (21%)
     (4%)
     (1%)
     (2%)
     (0%)
     (1%)
     (2%)
    Celkem 426 hlasů
     Komentářů: 18, poslední 17.4. 12:41
    Rozcestník

    Dotaz: Pomoc se scriptem - hlídání připojení k internetu

    Petr Maleček avatar 28.9.2013 03:22 Petr Maleček | skóre: 29 | Plzeň - Bolevec
    Pomoc se scriptem - hlídání připojení k internetu
    Přečteno: 628×
    Ahoj,

    potřeboval bych pomoct s následujícícm scriptem. Cílem je, aby v případě výpadku hlavního netu došlo k nastavení nižší priority (metriky) a upřednostnilo se záložní připojení. Ve chvíli, kdy se původní připojení obnoví, tak se metrika opět nastaví na nulu a bude jako hlavní:
    
    #!/bin/bash
    
    ip=/sbin/ip
    ping=/bin/ping
    route=/sbin/route
    
    CS_IP="172.16.26.1"
    CS_IF="eth2"
    
    CS_METRIC=(`$ip route | grep $CS_IP | awk '{print $7}'`)
    CS_PING=(`$ping -w 1 -c 1 -I $CS_IF 8.8.8.8`)
    
    while [ true ]; do
    
      ## Pokud havni pripojeni nefunguje, prepneme na zalozni.
      if [[ "$CS_METRIC" -ne "10" && ! "$CS_PING" ]];
        then
            $route del default gw $CS_IP
            $route add default gw $CS_IP metric 10
            echo "Nefunguje"
    
      fi
    
    
      ## Pokud pripojeni opet zacne fungovat, tak mu zvysime prioritu (hlavni)
      if [[ "$CS_METRIC" -eq "10" && "$CS_PING" ]];
        then
    
            $route del default gw $CS_IP
            $route add default gw $CS_IP metric 0
            echo "Opet funguje"
    
      fi
    
    sleep 5
    done
    
    
    Zdá se mi, že nefunguje právě to ověření PINGu, jakoby to nevracelo false, nebo možná očekávám něco jiného, než to vrací.

    Můžete prosím poradit? :-) Díky.
    LinMuck, WinFuck :-P

    Řešení dotazu:


    Odpovědi

    28.9.2013 10:15 NN
    Rozbalit Rozbalit vše Re: Pomoc se scriptem - hlídání připojení k internetu
    Proc tak slozite, nestacilo by ten 'failover' nakonfigurovat rovnou?
    Petr Maleček avatar 29.9.2013 12:04 Petr Maleček | skóre: 29 | Plzeň - Bolevec
    Rozbalit Rozbalit vše Re: Pomoc se scriptem - hlídání připojení k internetu
    Jasně a nějaká rada jak na to? Já mám nastavené toto:
    
    # vytvoreni routovacich tabulek (CS, PF) a rout
        $ip route add 172.16.26.0 dev eth2 src 172.16.26.62 table T1
        $ip route add default via 172.16.26.1 table T1
        $ip route add 10.109.13.128 dev eth1 src 10.109.13.146 table T2
        $ip route add default via 10.109.13.129 table T2
    
        # nastaveni rout
        $ip route add 172.16.26.0 dev eth2 src 172.16.26.62
        $ip route add 10.109.13.128 dev eth1 src 10.109.13.146
    
        # nasteveni defaultni routy
        $ip route add default via 172.16.26.1
    
        # nasteveni smerovacich rout (aby slo dovnitr a ven to, jakym interfacem to prislo)
        $ip rule add from 172.16.26.62 table T1
        $ip rule add from 10.109.13.146 table T2
    
        # prirazeni konexi do tabulek
        $ip route add 192.168.1.0 dev eth0 table T1
        $ip route add 10.109.13.128 dev eth1 table T1
        $ip route add 127.0.0.0/8 dev lo table T1
        $ip route add 192.168.1.0 dev eth0 table T2
        $ip route add 172.16.26.0 dev eth2 table T2
        $ip route add 127.0.0.0/8 dev lo table T2
    
        # nastaveni nexthopu (volba odchozi GW je na kernelu)
        $ip route add default scope global nexthop via 172.16.26.1 dev eth2 weight 1 nexthop via 10.109.13.129 dev eth1 weight 2
    
    Tak co doplnit?
    LinMuck, WinFuck :-P
    Jashin© avatar 28.9.2013 19:48 Jashin© | skóre: 8 | Keyboard/Home
    Rozbalit Rozbalit vše Re: Pomoc se scriptem - hlídání připojení k internetu
    .

    muzes zkusit IFovat budto navratovou hodnou pingu nebo pocet prijatych packetu:
    ping_gw0=$(ping -c 1 ${gw0})
    if [ $? == 0 ]; then
    #brana funguje
    else
    #brana nejde
    fi



    ping_gw0=$(ping -c 10 ${gw0} | grep received | awk '{print $4 }')
    if [ ${ping_gw0} -ge 8 ]; then
    #brana funguje
    else
    #brana nejde
    fi

    With liberty and metal for all
    28.9.2013 20:58 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: Pomoc se scriptem - hlídání připojení k internetu

    Na received.com ti to uz fungovat nebude :P a grep nie je nuten.

    gw0=
    ping_gw0=$(ping -c 10 "$gw0" | awk "/--- $gw0 ping statistics ---/"'{ getline; print $4 }')
    if [ "${ping_gw0}" -ge 8 ]; then 
    #brana funguje 
    else
    #brana nejde 
    fi
    29.9.2013 16:25 hermelin | skóre: 21
    Rozbalit Rozbalit vše Re: Pomoc se scriptem - hlídání připojení k internetu
    Nezabyvej se vymyslenim neceho co uz vymyslel a odladil nekdo jiny :-)

    https://code.google.com/p/wanfailoverscript/

    Pouzivam k maximalni spokojenosti
    Petr Maleček avatar 29.9.2013 18:59 Petr Maleček | skóre: 29 | Plzeň - Bolevec
    Rozbalit Rozbalit vše Re: Pomoc se scriptem - hlídání připojení k internetu
    Nohy líbám!!!
    LinMuck, WinFuck :-P
    29.9.2013 19:38 hermelin | skóre: 21
    Rozbalit Rozbalit vše Re: Pomoc se scriptem - hlídání připojení k internetu
    To nemusis :-)

    Resil jsem podobny problem pred par lety - dokonce se tremi pripojenimi

    $ip route add default scope global nexthop via 172.16.26.1 dev eth2 weight 1 nexthop via 10.109.13.129 dev eth1 weight 2

    To mi vubec nefungovalo. Nevim proc kdyz je to vsude uvadene jako prave failover nastaveni. Mozna na to ma vliv to jestli je za tim pripojene jeste nejake zarizeni (napr. AP) ktere i v pripade vypadku linky nejake pakety IN/OUT na port sitove karty posila.
    29.9.2013 20:13 NN
    Rozbalit Rozbalit vše Re: Pomoc se scriptem - hlídání připojení k internetu
    To je to na co jsem narazel, to by melo jako failover zafungovat samo o sobe, bez nutnosti testovani protistrany. Nicmene tipuju, ze to funguje jen kdyz vypadek shodi rozhrani. Osobne bych problem resil implementaci jednoho ze sady NHRP protokolu, ve spolupraci s ISP.
    Petr Maleček avatar 29.9.2013 21:35 Petr Maleček | skóre: 29 | Plzeň - Bolevec
    Rozbalit Rozbalit vše Re: Pomoc se scriptem - hlídání připojení k internetu
    Mě to právě nefunguje v žádné situaci. Schválně jsem mezi to připojil ještě jeden hloupý switch od kterého jsem pak jedno připojení odpojil (fyzicky ale k serveru stále byl připojen kabel) a nic se nepřeplo, prostě net nefungoval. A i když jsem odpojil celý switch (čili rozhraní se odpojilo), tak taky nic.

    Tenhle script který jsi mi poradil a za který moc děkuji funguje přesně jak potřebuji až na jeden drobný detail a to - i když je nastaveno ping -w 1 -c 2 8.8.8.8, tak nevím proč, ale on prostě čeká třeba minutu, než mu dojde, že ten ping neprošel. Jako by čekal na nevím co, když jsem mu jasně parametrem řekl, že má na odpověď počkat vteřinu. To úplně ignoruje. Takže teď třeba přepnutí z hlavní linky na záložní trvá tak 3 minuty.
    LinMuck, WinFuck :-P
    Petr Maleček avatar 29.9.2013 21:39 Petr Maleček | skóre: 29 | Plzeň - Bolevec
    Rozbalit Rozbalit vše Re: Pomoc se scriptem - hlídání připojení k internetu
    Upřesním - tři minuty pro to, že cca minutu čeká než zjistí, že ping neprošel a má na to 3 pokusy. Server jsem dal do testování zatím jen jeden. Až tohle vyřeším, tak dám dva. Asi nějaké public DNS servery. Jeden GOOGLu a jeden NICu.
    LinMuck, WinFuck :-P
    29.9.2013 21:46 hermelin | skóre: 21
    Rozbalit Rozbalit vše Re: Pomoc se scriptem - hlídání připojení k internetu
    mrkni sem https://code.google.com/p/wanfailoverscript/source/browse/trunk/README

    polozky INTERVAL, TESTCOUNT, TRESHOLD
    Petr Maleček avatar 29.9.2013 21:48 Petr Maleček | skóre: 29 | Plzeň - Bolevec
    Rozbalit Rozbalit vše Re: Pomoc se scriptem - hlídání připojení k internetu
    Já jsem readme četl. To mám nastavené zatím dost "ostře" aby to reagovalo okamžitě a stejně nic. Nebo ne?
    
    #
    # WFS - Wan Failover Script
    # Configuration file
    #
    TARGETS_FILE=/etc/wfs/targets.txt
    PRIMARY_GW=172.16.26.1
    SECONDARY_GW=10.109.13.129
    MAX_LATENCY=50
    INTERVAL=5
    TEST_COUNT=2
    THRESHOLD=3
    COOLDOWNDELAY01=5
    COOLDOWNDELAY02=5
    MAIL_TARGET="mail@(muj).cz"
    DAEMON=1
    QUIET=1
    PIDFILE=/var/run/wfs.pid
    PRIMARY_CMD=""
    SECONDARY_CMD=""
    DEBUG=1
    
    
    LinMuck, WinFuck :-P
    29.9.2013 21:52 hermelin | skóre: 21
    Rozbalit Rozbalit vše Re: Pomoc se scriptem - hlídání připojení k internetu
    a co to pise v logu ?
    Petr Maleček avatar 29.9.2013 21:57 Petr Maleček | skóre: 29 | Plzeň - Bolevec
    Rozbalit Rozbalit vše Re: Pomoc se scriptem - hlídání připojení k internetu
    Příloha:
    Píše to přesně to co má, jen mu trvá děsně dlouho, než zjistí, že prostě připojení (ping) neprošel. Viz příloha, všimněte si těch časů.
    LinMuck, WinFuck :-P
    29.9.2013 22:05 hermelin | skóre: 21
    Rozbalit Rozbalit vše Re: Pomoc se scriptem - hlídání připojení k internetu
    Navrhuju tykani :-)

    a proc mas MAX_LATENCY=50 ? Zkus dat 2.

    Pripadne prubni starsi verzi - v te posledni to vypada ze se prave delalo dost zmen ohledne casu.

    Ja aktualne pouzivam 2.01 a tam to funguje presne podle nastaveni.
    Petr Maleček avatar 29.9.2013 22:13 Petr Maleček | skóre: 29 | Plzeň - Bolevec
    Rozbalit Rozbalit vše Re: Pomoc se scriptem - hlídání připojení k internetu
    Díky, ach jo, já jsem kus v*la. Já měl za to, že je to latence v milisekundách a ono je to v sekundách. A ještě ke všemu jsem si myslel že to je braný jakože i když ping projde, ale jeho latence je větší než 50ms, tak že to bere jako podnět k přepnutí na zálohu. OMG, já jsem takovej v*l.

    No, tak se omlouvám za zbytečný spamování, teď už mi to funguje. Sypu si popel na hlavu.
    LinMuck, WinFuck :-P
    Petr Maleček avatar 29.9.2013 22:49 Petr Maleček | skóre: 29 | Plzeň - Bolevec
    Rozbalit Rozbalit vše Re: Pomoc se scriptem - hlídání připojení k internetu
    Jinak teď se mi to chová přesně takhle (moje nahrávka) - YouTube odkaz. Takže super! :-)
    LinMuck, WinFuck :-P
    29.9.2013 22:53 hermelin | skóre: 21
    Rozbalit Rozbalit vše Re: Pomoc se scriptem - hlídání připojení k internetu
    Online forever :-)
    Petr Maleček avatar 29.9.2013 23:44 Petr Maleček | skóre: 29 | Plzeň - Bolevec
    Rozbalit Rozbalit vše Re: Pomoc se scriptem - hlídání připojení k internetu
    No, díky bohu za to. Teď nebudu muset jezdit 2x - 3x do týdne do kanceláře, abych vyřešil výpadek internetu. Povedlo se mi zajistit ještě jednu záložní linku, takže v případě výpadku se to přepne samo a nemsím nikam. Uff. To bude úleva :-))
    LinMuck, WinFuck :-P
    Petr Maleček avatar 29.9.2013 22:00 Petr Maleček | skóre: 29 | Plzeň - Bolevec
    Rozbalit Rozbalit vše Re: Pomoc se scriptem - hlídání připojení k internetu
    Skoro 2 minuty od prvního testování pingu. 2 minuty, než zjistil, že ping neprošel. Ačkoli timeout je nastaven na 1s.
    LinMuck, WinFuck :-P

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.