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 20:22 | Nová verze

    Byla vydána nová verze 4.6 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Využíván je Free Pascal Compiler (FPC) 3.2.2.

    Ladislav Hagara | Komentářů: 0
    dnes 18:00 | Nová verze

    Byla vydána nová verze 3.23.0 FreeRDP, tj. svobodné implementace protokolu RDP (Remote Desktop Protocol). Opravuje 11 bezpečnostních chyb.

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

    Španělský softwarový inženýr oznámil, že se mu podařilo na dálku ovládat sedm tisíc robotických vysavačů po celém světě. Upozornil tak na slabé kybernetické zabezpečení těchto technologií a jejich možné a snadné zneužití. Nesnažil se hacknout všechny robotické vysavače po světě, ale pouze propojil svůj nový DJI Romo vysavač se zařízením Playstation. Aplikace podle něj ihned začala komunikovat se všemi sedmi tisíci spotřebiči a on je

    … více »
    Ladislav Hagara | Komentářů: 2
    dnes 03:33 | Humor

    Momo je fenka cavapoo, která svými náhodnými stisky kláves bezdrátové klávesnice vytváří jednoduché počítačové hry. Technicky to funguje tak, že Raspberry Pi s připojenou bluetooth klávesnicí posílá text do Claude Code, který pak v Godotu píše hry a sám je i testuje pomocí screenshotů a jednoduchých simulovaných vstupů. Za stisky kláves je Momo automaticky odměňována pamlsky. Klíčový je pro projekt prompt, který instruuje AI, aby i

    … více »
    NUKE GAZA! 🎆 | Komentářů: 24
    dnes 02:22 | Nová verze

    GNU awk (gawk), implementace specializovaného programovacího jazyka pro zpracování textu, byl vydán ve verzi 5.4.0. Jedná se o větší vydání po více než dvou letech. Mezi četnými změnami figuruje např. MinRX nově jako výchozí implementace pro regulární výrazy.

    |🇵🇸 | Komentářů: 0
    včera 16:22 | IT novinky

    Internetový prohlížeč Ladybird ohlásil tranzici z programovacího jazyka C++ do Rustu. Přechod bude probíhat postupně a nové komponenty budou dočasně koexistovat se stávajícím C++ kódem. Pro urychlení práce bude použita umělá inteligence, při portování první komponenty prohlížeče, JavaScriptového enginu LibJS, bylo během dvou týdnů pomocí nástrojů Claude Code a Codex vygenerováno kolem 25 000 řádků kódu. Nejedná se o čistě autonomní vývoj pomocí agentů.

    NUKE GAZA! 🎆 | Komentářů: 6
    včera 15:55 | Nová verze

    Byl vydán Mozilla Firefox 148.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Nově lze snadno povolit nebo zakázat jednotlivé AI funkce. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 148 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 2
    včera 12:44 | Nová verze

    Byla vydána nová verze 22.1.0, tj. první stabilní verze z nové řady 22.1.x, překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, LLD, Extra Clang Tools a Libc++.

    Ladislav Hagara | Komentářů: 0
    včera 12:22 | Humor

    X86CSS je experimentální webový emulátor instrukční sady x86 napsaný výhradně v CSS, tedy bez JavaScriptu nebo dalších dynamických prvků. Stránka 'spouští' assemblerovový program mikroprocesoru 8086 a názorně tak demonstruje, že i prosté CSS může fungovat jako Turingovsky kompletní jazyk. Zdrojový kód projektu je na GitHubu.

    NUKE GAZA! 🎆 | Komentářů: 6
    včera 12:11 | Nová verze

    Po šesti letech byla vydána nová verze 1.3 webového rozhraní ke gitovým repozitářům CGit.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (18%)
     (6%)
     (0%)
     (11%)
     (27%)
     (2%)
     (5%)
     (2%)
     (12%)
     (26%)
    Celkem 956 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    BGP – dynamické routování – 3 (pokročilá konfigurace)

    20. 5. 2009 | Dušan Hokův | Sítě | 8131×

    Nyní nastal čas nahodit druhý peer a vylepšit konfiguraci routeru. Je také třeba provést další administrativu na RIPE.

    Delegace reverzních DNS

    Protože již běží první peer a vaše nové IP adresy jsou již dostupné ze světa, je třeba vydelegovat reverzní DNS zóny vašeho adresního rozsahu. Jakmile budete mít připraveny reverzní zóny v konfiguraci vašich nameserverů, je třeba zajistit přes RIPE vydelegování do světa. K tomuto účelu je vhodné použít web delegation checker.

    Záznam v RIPE databázi pro reverzní zónu 232.112.62.in-addr.arpa (256 adres) může vypadat nějak takto:

    domain:          232.112.62.in-addr.arpa
    descr:           MY Network
    admin-c:         IP5941-RIPE
    tech-c:          IP5941-RIPE
    zone-c:          IP5941-RIPE
    mnt-by:          MY-CZ-MNT
    changed:         mujmail@mojedomena.cz
    source:          RIPE
    nserver:         ns2.mojesit.net
    nserver:         ns1.mojesit.net
    

    Navázání dalšího peeru

    Abyste mohli splnit svůj cíl nezávislosti na jednom poskytovateli, je třeba navázat další peer po samostatné lince a odděleném rozhraní k dalšímu poskytovateli. Od něj rovněž dostanete tranzitní síť (/30) a dohodnete se na peeringu. Je dobré si promyslet, jak budete chtít dva uplinky využívat, což samozřejmě závisí i na velikosti poskytované konektivity od obou poskytovatelů. Můžete například nakonfigurovat, že veškerý traffic poteče přes prvního providera, druhý bude sloužit jen jako záloha a v normálním stavu zde poteče jen vzájemný provoz mezi oběma autonomními systémy, případně i autonomní systémy, které mají kratší as-path přes tento autonomní systém nebo jsou přímo a jen za ním. Můžete (musíte) rovněž rozvažovat traffic rovnoměrně mezi oběma peery, abyste například na jedné straně nepřetěžovali jednu linku a druhou nenechali ladem. BGP protokol umožňuje řídit, kudy poteče traffic jak příchozí, tak odchozí. Pro tyto účely existuje několik bgp atributů a metod.

    Pro nakonfigurování druhého peeru nejprve připravíme route-mapy a filtry přímo z konzole Quaggy, protože nám již jeden peer běží a nechceme způsobit žádný výpadek. Nakonec nakonfigurujeme druhý peer a aplikujeme na něj vytvořená pravidla.

    my-bgp# configure terminal 
    my-bgp(config)# route-map prov2-out permit 10
    my-bgp(config-route-map)# match as-path  my-as
    my-bgp(config-route-map)# set as-path prepend 57131 57131 57131
    my-bgp(config-route-map)#      
    

    Tím připravíme route mapu pro odchozí směr k druhému providerovi a nastavíme prepend, čímž uměle prodloužíme cestu vlastního AS přes tohoto providera. Výsledkem bude, že as-path přes prvního providera bude ve většině případů kratší a tím tedy příchozí traffic do vašeho AS půjde primárně přes prvního providera. Prepend tedy ovládá příchozí směr do vašeho AS.

    K ovládání odchozího trafficu slouží například atribut local-preference.

    route-map prov-in permit 10
     set metric 0
     set local-preference 90
    
    route-map prov2-in permit 10
     set metric 0
     set local-preference 80
    

    Vyšší hodnota tohoto bgp atributu znamená vyšší preferenci a tedy upřednostněný směr. Výchozí hodnota pro tento atribut je rovna 100.

    Nyní je je potřeba nadefinovat novou peer-group pro druhého providera a přiřadit vytvořené route-mapy a filtry.

    my-bgp# configure terminal 
    my-bgp(config)# router bgp 57131
    my-bgp(config-router)# neighbor PROVIDER2 peer-group
    my-bgp(config-router)# neighbor PROVIDER2 description Provider2
    my-bgp(config-router)# neighbor PROVIDER2 route-map prov2-in in
    my-bgp(config-router)# neighbor PROVIDER2 route-map prov2-out out
    my-bgp(config-router)# neighbor PROVIDER2 filter-list my-as out
    my-bgp(config-router)# neighbor PROVIDER2 soft-reconfiguration inbound
    my-bgp(config-router)# neighbor 77.124.15.2 remote-as 29113
    my-bgp(config-router)# neighbor 77.124.15.2 peer-group PROVIDER2
    

    Po změnách v route mapách je potřeba resetovat peer(y).

    clear ip bgp 177.104.215.242 soft

    To soft na konci je důležité; pokud by tam nebylo, jednalo by se o tvrdý reset BGP session a za každý tento reset dostává náš router penalty a pokud je to velmi často, router na druhé straně s vaším na nějakou dobu může přestat úplně komunikovat. Router dále dostává penalty i za flapování rout. Tomu, jak se má router zachovat, se říká BGP Dampening. Quagga zatím umí pouze bgp dampening <penalty>.

    Další možností pro řízení příchozího trafficu je atribut MED (Multi-Exit Discriminator). MED je jeden z mála parametrů přenášejících se mezi ebgp peery a umožňujících řídit routovací politiku mezi sousedními AS (kromě "oblíbeného" prodlužování as-path; sousedních proto, že jde o netranzitivní atribut). Nastavuje se v route-map pomocí set metric. Menší vítězí; v případě, že není nastaveno, bere se metric = 0 (a je konfigurovatelné, zda je to v takovém případě nejlepší, či nejhorší metrika). Match pravidly v route-map určíte, pro co konkrétně (pokud není match, aplikuje se route-mapa na všechny prefixy; matchovat je možné různé parametry jako as-path, prefix). Route-map se aplikuje na peer, případně na peer-group (pro MED typicky na out).

    route-map zzz permit 10
     match as-path neco
     set metric 200
    

    BGP atributy

    • 1 - ORIGIN - známý povinný
    • 2 - AS_PATH - známý povinný
    • 3 - NEXT_HOP - známý povinný
    • 4 - MULTI_EXIT_DISC - volitelný netranzitivní
    • 5 - LOCAL_PREF - známý volitelný
    • 6 - ATOMIC_AGGREGATE - známý volitelný
    • 7 - AGGREGATOR - známý volitelný
    • 8 - COMMUNITY - volitelný tranzitivní (Cisco)
    • 9 - ORIGINATOR_ID - volitelný netranzitivní (Cisco)
    • 10 - Cluster List - volitelný netranzitivní (Cisco)
    • ...
    • 255 - Rezervováno

    Využívají se i další atributy, například ve vztahu k 32bitovým číslům AS. Úplný výčet se nachází na iana.org.

    Pořadí, váha atributů

    Je-li více cest ven z vašeho AS, do routovací tabulky se umístí ta nejvhodnější. O výběru rozhodují následující atributy v uvedeném pořadí (rozhoduje se podle prvního atributu, podle kterého se dá jednoznačně rozhodnout, jinak se zkouší následující):

    1. vyšší hodnota atributu WEIGHT - parametr lokální pro router, kde je nakonfigurováno
    2. vyšší hodnota atributu LOCAL_PREFERENCE - parametr přenášený mezi peery v rámci téhož AS
    3. preference cesty generovaná routerem samotným (a pocházející z jeho AS) - získaná např. redistribucí z IGP nebo z network/aggregate deklarací
    4. menší délka AS_PATH (menší počet čísel AS v hodnotě AS_PATH)
    5. preferovanější hodnota atributu ORIGIN (nejpreferovanější IGP, následuje EGP a INCOMPLETE)
    6. nižší hodnota atributu MED
      • porovnává se pouze u cest z téhož sousedního AS
      • pomocí bgp always-compare-med v sekci router bgp docílíme porovnávání i v případech, kdy máme stejné cesty z různých sousedních AS
    7. cesty získané z EBGP preferovány před cestami z IBGP
    8. next_hop dostupný přes kratší cestu vnitřkem AS (např. nižší metrika v OSPF)
    9. preferována cesta, která se naučila dříve (starší)
    10. preferována cesta z routeru s nižším ROUTER_ID
    11. preferována cesta přijatá z peeru s nejnižší IP

    Regulární výrazy pro as-path filtry

    Občas potřebujeme vědět, kudy se můžeme dostat do určitého AS, nebo které routy jsou z daného AS. Abyste nemuseli procházet celý výpis show ip bgp, je vhodné použít regulární výrazy. Tyto regulární výrazy se navíc hodí při vytváření filtrů. Můžete použít všechny regulární výrazy dle POSIX, napíši zde alespoň základní:

    • . jeden znak
    • * žádný nebo více výskytů vzorku
    • + jeden nebo více výskytů vzorku
    • ? žádný nebo jeden výskyt vzorku
    • ^ začátek řádky
    • $ konec řádky
    • _ speciální znak pro as-path - vzorku vyhovuje mezera, čárka, oddělovač as-setu, oddělovač konfederací a také odpovídá začátku i konci řádky

    Chcete-li tedy zobrazit např. routy pocházející z AS 7520, použijte:

    show ip bgp regexp _7520$

    Filtry

    Při EBGP peeru je dobré mít u sousedů zakázanou propagaci privátních AS (64512-65535). Toho dosáhnete pomocí řádku:

    neighbor POSKYTOVATEL remove-private-AS

    Dalším dobrým nápadem je zákaz exportu/importu privátních prefixů, default routy a multicastů. Toho dosáhnete např. pomocí následující sady filtrů:

     ip prefix-list transit-in seq 5 deny 0.0.0.0/0
     ip prefix-list transit-in seq 10 deny 10.0.0.0/8 le 32
     ip prefix-list transit-in seq 15 deny 127.0.0.0/8 le 32
     ip prefix-list transit-in seq 20 deny 169.254.0.0/16 le 32
     ip prefix-list transit-in seq 25 deny 172.16.0.0/12 le 32
     ip prefix-list transit-in seq 30 deny 192.168.0.0/16 le 32
     ip prefix-list transit-in seq 35 deny 224.0.0.0/3 le 32
     ip prefix-list transit-in seq 99 permit 0.0.0.0/0 le 24
    

    a nezapomeňte aplikovat na neighbora (případně na peer-group).

    Nedávné problémy s příliš dlouhým as-path

    Omezení délky AS path na 30 ASNs:

     ip as-path access-list maxas-path deny ( [0-9]+){30}$
     ip as-path access-list maxas-path permit .*
    

    Aplikujeme na příchozí prefixy:

     neighbor POSKYTOVATEL filter-list maxas-path in
    

    Příště

    Komunity, IBGP, NIX a IPv6.

           

    Hodnocení: 82 %

            š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ář

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