abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    17.5. 13:44 | Nová verze

    Byla vydána (𝕏) nová major verze 17 softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech GitLab (Wikipedie). Představení nových vlastností i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    17.5. 12:22 | Komunita

    Sovereign Tech Fund, tj. program financování otevřeného softwaru německým ministerstvem hospodářství a ochrany klimatu, podpoří vývoj FFmpeg částkou 157 580 eur. V listopadu loňského roku podpořil GNOME částkou 1 milion eur.

    Ladislav Hagara | Komentářů: 0
    17.5. 01:55 | Komunita

    24. září 2024 budou zveřejněny zdrojové kódy přehrávače Winamp.

    Ladislav Hagara | Komentářů: 10
    16.5. 23:33 | Nová verze

    Google Chrome 125 byl prohlášen za stabilní. Nejnovější stabilní verze 125.0.6422.60 přináší řadu oprav a vylepšení (YouTube). Podrobný přehled v poznámkách k vydání. Opraveno bylo 9 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 1
    16.5. 21:11 | Nová verze

    Textový editor Neovim byl vydán ve verzi 0.10 (𝕏). Přehled novinek v příspěvku na blogu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    16.5. 20:55 | Nová verze

    Byla vydána nová verze 6.3 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.15.

    Ladislav Hagara | Komentářů: 0
    16.5. 13:33 | IT novinky

    Dnes ve 12:00 byla spuštěna první aukce domén .CZ. Zatím největší zájem je o dro.cz, kachnicka.cz, octavie.cz, uvycepu.cz a vnady.cz [𝕏].

    Ladislav Hagara | Komentářů: 9
    16.5. 13:22 | Nová verze

    JackTrip byl vydán ve verzi 2.3.0. Jedná se o multiplatformní open source software umožňující hudebníkům z různých částí světa společné hraní. JackTrip lze instalovat také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    16.5. 12:22 | Pozvánky

    Patnáctý ročník ne-konference jOpenSpace se koná 4. – 6. října 2024 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytváří všichni účastníci, se skládá z desetiminutových

    … více »
    Zdenek H. | Komentářů: 0
    16.5. 03:11 | Nová verze

    Program pro generování 3D lidských postav MakeHuman (Wikipedie, GitHub) byl vydán ve verzi 1.3.0. Hlavní novinkou je výběr tvaru těla (body shapes).

    Ladislav Hagara | Komentářů: 9
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (76%)
     (5%)
     (10%)
     (8%)
    Celkem 343 hlasů
     Komentářů: 16, poslední 14.5. 11:05
    Rozcestník

    OSPF - dynamické routování - 2 (SNMP, Quagga)

    21. 3. 2007 | Dušan Hokův | Sítě | 15048×

    V předchozím díle jsme se naučili základy rozběhnutí OSPF a pochopili princip. Tentokrát osvětlím některé pokročilejší možnosti konfigurace, dohledování pomocí SNMP, posílání trapů při změně stavu linky a představím ovládací shell Quaggy. Tento článek je spíše souhrnem poznatků z praxe než návodem typu howto.

    Route-map

    Routujeme-li staticky z místa A do místa B přes několik routerů (C,D,E), je třeba, aby po celé cestě routery věděly, kam mají posílat který segment a kam vede výchozí routa. Snadno se pak může stát, že na některém routeru po cestě můžeme zapomenout přidat routu a problém je na světě. Použijeme-li ovšem dynamické routování, začneme řešit zcela opačný problém. Routery si mezi sebou "vykecají" všechno, co jim nezakážeme. Příkladem mohou být např. dohledové adresy a tunely z privátních rozsahů, které nechceme, aby se míchaly mezi ostré. Toto zajistí mechanismus route-map, kde můžeme definovat, jaké rozsahy adres, jaké routy propagovat a jaké naopak nepropagovat na sousední OSPF routery. Route-map je však mnohem mocnější nástroj, nicméně v našem dalším příkladu si ukážeme jednodušší věci.

    Příklad zaokruhování

    Schéma:
    OSPF

    Máte zákazníka, který má dvě pobočky, a vyžaduje vysokou dostupnost služeb. V jedné lokalitě již má dvě ostré adresy a ve druhé jednu. Tyto adresy jsou svázány s VPN do zahraničí, a proto si je přeje zachovat. Nejjednodušší by bylo před routery zákazníka vložit ještě další routery, které by se právě o zaokrouhlování staraly. Protože jsou ale oba routery u zákazníka ve vaší správě, můžeme přidat další rozhraní a uzavřít okruh přímo na nich. Protože se na těchto routerech původně jen prováděl NAT a spojení VPN, na některých rozhraních musí být privátní adresy. Tady se dostává ke slovu route-map, pomocí které je třeba zakázat propagaci těchto privátních adres na další OSPF routery. Na jaké rozhraní ale umístit původní ostré adresy? K tomu použijeme zařízení dummy. Je-li v jádře jako modul, nezapomeňte na:

    modprobe dummy

    Téměř všechna práce se dá udělat na dálku (tedy kromě zapojení dalšího kabelu a uzavření okruhu). Nejdříve je vhodné začít nahozením nových spojovacích adres mezi všemi třemi routery. Poté je třeba shodit výchozí routu a přesunout původní ostré adresy na zařízení dummy. Adresy nastavte v masce /32 např.:

    ip add add 177.104.252.130/32 brd + dev dummy0

    Nahozením IP adresy na dummy zařízení získáte možnost přihlášení na router nejvýhodnější možnou cestou (myšleno z pohledu topologie sítě). Když nemáte výchozí routu, musíte se logovat na routery po spojovačkách od sousedů. Nyní konfigurace OSPF na routeru u zákazníka (vybrané části):

    interface dummy0
    description dummy
    ip ospf cost 10
    !
    ! Konfigurace ospfd
    router ospf
    ! ID-routeru (napr. IP adresa)
    ospf router-id 177.104.252.130
    !
    redistribute static metric-type 1
    redistribute connected metric 100 metric-type 1 route-map zakaznik
    !
    network 177.104.252.160/28 area 21
    !
    !aclka
    access-list propaguj deny 192.168.0.0/16
    !SPOJOVACKY
    access-list propaguj permit 177.104.252.160/28
    !IP NASE
    access-list propaguj permit 177.104.252.130/32
    !
    access-list term permit 127.0.0.1/32
    access-list term deny any
    !
    route-map zakaznik permit 10
    match ip address propaguj
    !
    !propojeni se snmp
    smux peer .1.3.6.1.4.1.3317.1.2.5 quagga_ospfd

    V konfiguraci OSPF je třeba v tomto případě v sekci zažízení uvést zařízení dummy0. Dále pomocí access-list zakázat (deny) propagování privátních adres ostatním OSPF routerům. Access-list je poté třeba přidat do route-map a tu aplikovat na distribuování okolním routerům.

    redistribute connected metric 100 metric-type 1 route-map zakaznik

    V neposlední řadě nesmíme zapomenout upravit NAT privátních adres zákazníka. Protože se odchozí rozhraní bude díky možným dvěma cestám ven měnit, musí se NAT provádět jen na adresu, nesmí se uvádět rozhraní. Mohlo by to vypadat nějak takto:

    iptables -A POSTROUTING -t nat -j SNAT -s 192.168.2.0/24 \
     --to 177.104.252.130 

    Quagga a SNMP

    Stav routeru můžeme sledovat pomocí SNMP a rovněž můžeme dostávat trapy při mimořádných událostech. Pro tento případ je třeba mít spuštěný démon snmpd a v konfiguraci ospfd mít řádek:

    smux peer .1.3.6.1.4.1.3317.1.2.5 quagga_ospfd

    Základy SNMP (Simple Network Management Protocol) byly popsány v článku Monitoring pomocí nástrojů z balíku Net-SNMP, kam bych tímto rád nasměroval všechny, kteří zatím SNMP neznají a nepoužívají.

    Aby SNMP démon akceptoval propojení s quaggou je třeba v snmpd.conf mít řádek:

    smuxpeer .1.3.6.1.4.1.3317.1.2.5 quagga_ospfd

    Dále jsem zjistil, že SNMP je velmi háklivé na to, když dotaz přijde na jednu IP adresu, ale odpověď odejde jiným rozhraním a tedy i s jinou zdrojovou adresou. V tomto případě je tedy potřeba ještě SNMP démonu říct, aby poslouchal na jedné adrese:

    agentaddress 177.104.252.130

    Protože si přejeme být informováni o mimořádných událostech na routeru (nejen OSPF), je třeba v snmpd.conf nastavit, kam posílat SNMP trapy:

    trapsink XX.XX.XX.XX

    Tímto jsme v podstatě hotovi s konfigurací. Podrobnosti o možnostech SNMP a příslušné mib tabulky naleznete v repozitáři projektu quagga a konkrétní příkladech v dokumentaci.

    Quagga shell - konzole

    Po rozběhnutí OSPF okruhu a spuštění quaggy můžete v quagga shellu provádět diagnostiku, ale i kompletní konfiguraci. Výchozí chování je, že do shellu se dostaneme pouze z lokálu. Quagga shell používá analogické příkazy jako např. Cisco. Do shellu se přihlásíme pomocí:

    telnet localhost ospfd

    pro kongiguraci OSPF procesu, případně

    telnet localhost zebra

    pro konfigurace statických rout. Tady je na místě malá ukázka. Je-li například k routeru připojen další router, který routuje pouze staticky např. segment osmi adres pro jiného zákazníka, je třeba k němu těch osm adres zaroutovat staticky. To provedeme pomocí zebry. Příklad:

    user@zakaznik:~# telnet localhost zebra
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    
    Hello, this is Quagga (version 0.99.4).
    Copyright 1996-2005 Kunihiro Ishiguro, et al.
    
    User Access Verification
    
    Password: 
    r1-zak> en
    Password: 
    r1-zak# con
    r1-zak# configure 
    r1-zak# configure terminal 
    r1-zak(config)# ip route 185.121.13.0/28 166.125.13.125
    r1-zak(config)# write me
    r1-zak(config)# configuration saved to /etc/zebra.conf
    r1-zak(config)# q
    r1-zak# q
    Connection closed by foreign host.

    V příkladu vidíte, že funguje doplňování pomocí tabulátoru. Seznam příkazů naleznete v dokumentaci a můžete si je vyvolat pomocí list. Naprosto stejně se dostanete do shellu pro konfiguraci OSPF. Příklad:

    user@zakaznik:~# telnet localhost ospfd
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    
    Hello, this is Quagga (version 0.99.4).
    Copyright 1996-2005 Kunihiro Ishiguro, et al.
    
    
    User Access Verification
    
    Password: 
    r1-zak> en
    Password: 
    r1-zak# sh ip ospf neig
    r1-zak# sh ip ospf neighbor 
    
        Neighbor ID Pri State           Dead Time Address         Interface            RXmtL RqstL DBsmL
    177.104.252.129   1 Full/Backup       31.429s 177.104.252.166 eth0:177.104.252.165      0     0     0
    177.104.252.132   1 Full/Backup       31.220s 177.104.252.170 eth3:177.104.252.169      0     0     0
    r1-zak#

    Tímto například zobrazíme seznam sousedů. V tabulce vidíme router-id, prioritu, stav, čas do vypršení dead intervalu, adresu souseda, interface a podrobnosti o sousedství. Opět je vhodné doplňovat pomocí tabulátoru a rovněž pomocí otazníku, ten nám ukáže možné další pokračování. Příklad:

    r1-zak# sh ip ospf neighbor ?  
      A.B.C.D  Neighbor ID
      IFNAME   Interface name
      all      include down status neighbor
      detail   detail of all neighbors
      <cr>

    Chceme-li například změnit cenu na rozhraní, uděláme to takto:

    r1-zak# configure 
    r1-zak# configure terminal 
    r1-zak(config)# inte
    r1-zak(config)# interface et
    r1-zak(config)# interface eth
    r1-zak(config)# interface eth0
    r1-zak(config-if)# ip os
    r1-zak(config-if)# ip ospf co
    r1-zak(config-if)# ip ospf cost 120
    r1-zak(config-if)# q            
    r1-zak(config)# q
    r1-zak# write me
    

    Doporučuji dokumentaci Quaggy případně Cisco a hlavně zkoušet a nebát se.

    Load Balancing - Equal Cost Multipath

    Pokud k routeru vede více linek se stejnou cenou (cost) na jiný router a máte v kernelu i v routovacím démonu quagga podporu pro multipath(ecmp), můžete rozlévat traffic do těchto linek - mít více výchozích rout. Rozlévání trafficu funguje per connection, nikoliv per packet. To znamená, že navázané spojení jde stejnou cestou. V kernelu je třeba mít:

    CONFIG_IP_ROUTE_MULTIPATH=y

    Quaggu je potřeba kompilovat s přepínačem (N je maximální počet cest):

    --enable-multipath=N

    Pokud se vše zadaří, může výchozí routa vypsaná příkazem ip route vypadat takto:

    default  proto zebra  metric 101 
            nexthop via 181.192.159.138  dev eth0 weight 1
            nexthop via 181.192.159.134  dev eth1 weight 1

    Schéma:
    OSPF

    Pro zájemce existuje ECMP-Mini-howto v angličtině. Toto howto bylo psáno pro routovací démon zebra, ale protože quagga je fork zebry, je toto howto použitelné i s quaggou.

    Upřednostňování

    Pokud se dostanete do situace, že traffic začne zaplňovat kapacitu linky, je třeba provést upřednostňování OSPF protokolu. Může se vám snadno stát, že zahozením hello paketů mezi routery dojde k vypršení dead intervalu a tedy ke shození rout a přepočtu trasy. V detailu OSPF sousedů lze vidět, jak dlouho je navázáno spojení, případně důvod rozpadu (většinou vypršení dead intervalu). Pokud například chceme pakety protokolu OSPF značkovat DSCP značkou, uděláme to takto:

    iptables -t mangle -A OUTPUT -p 89 --jump DSCP --set-dscp 0x1a #AF31

    Více o DSCP značkách naleznete např. na http://www.cisco.com/warp/public/105/dscpvalues.html. Číslo protokolu získáme z /etc/protocols. Pak již stačí tyto pakety na základě této značky např. na aktivním prvku zpracovávat s vyšší prioritou než neoznačené pakety. Další podrobnosti o řízení trafficu na Linuxu naleznete v dokumentaci balíku iproute2 a např. na http://www.linuxguruz.com/iptables/howto/2.4routing-14.html najdete konkrétní příklad pro upřednostňování označkovaných paketů. Samozřejmě můžete namísto DSCP využít i klasický TOS field u paketů.

    Závěr

    OSPF skýtá mnoho možností konfigurace; je třeba studovat dokumentaci a zkoušet. Některé věci ale OSPF z principu neumí. A to je prostor pro BGP. Ale o tom třeba někdy příště.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

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

    Komentáře

    Vložit další komentář

    21.3.2007 07:28 pasmen | skóre: 45 | blog: glob | Praha
    Rozbalit Rozbalit vše Re: OSPF - dynamické routování - 2 (SNMP, Quagga)
    Moc pekny, diky.
    hwsoft avatar 21.3.2007 07:55 hwsoft | skóre: 19
    Rozbalit Rozbalit vše Re: OSPF - dynamické routování - 2 (SNMP, Quagga)
    Doufam, ze v tomto budes pokracovat az po BGP :). Moc pekne napsano.
    21.3.2007 10:11 PNG
    Rozbalit Rozbalit vše Re: OSPF - dynamické routování - 2 (SNMP, Quagga)
    Dusan nedavno vstoupil do nixu, takze s BGP uspesne bojuje. Takze myslim, az bude guru tak se k BGP dostane :o)
    21.3.2007 09:34 jiri.b | skóre: 30 | blog: jirib
    Rozbalit Rozbalit vše ospfd & openbsd
    pripadny zajemce o router se muze tez podivat na OpenBSD, ktere vyvinulo svuj vlastni OSPFd (sic zatim bez IPv6) - http://www.openbsd.org/cgi-bin/man.cgi?query=ospfd&apropos=0 &sektion=0&manpath=OpenBSD+Current&arch=i386&format=html
    m$ lipo $m avatar 22.3.2007 13:01 m$ lipo $m | skóre: 19 | blog: čaj o páté | Redmond
    Rozbalit Rozbalit vše Re: ospfd & openbsd
    ospf demon z openbsd nenabizi rozhodne tolik moznosti jako ten jenz je soucasti balicku quagga ale mozna je situace v obsd 4.0 lepsi to nevim
    Albuquerque, New Mexico (April 4, 1975)
    21.3.2007 12:59 alanos | skóre: 24 | blog: alanos
    Rozbalit Rozbalit vše Re: OSPF - dynamické routování - 2 (SNMP, Quagga)
    Ehm je to sice otázka k článku, nikoliv však k tématu ale k obsahu :o) . V čem kreslíš ty obrázky ?
    21.3.2007 15:41 Frank J. Tomes | skóre: 29 | Plzeň
    Rozbalit Rozbalit vše Re: OSPF - dynamické routování - 2 (SNMP, Quagga)
    Jo to by mě také zajímalo.
    [frank]$ uname -prs FreeBSD 4.11-RELEASE-p25 i386
    21.3.2007 16:42 Dušan Hokův | skóre: 43 | blog: Fedora a další...
    Rozbalit Rozbalit vše Re: OSPF - dynamické routování - 2 (SNMP, Quagga)
    dia
    Marek Bernát avatar 21.3.2007 17:21 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: OSPF - dynamické routování - 2 (SNMP, Quagga)
    Je tam pár čiar, obláčik, valec a text. Myslím, že to by zvládol aj v MS Pain(t) :-)
    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.

    Založit nové vláknoNahoru

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