www.SAMURAJ-cz.com 

02.05.2024 Zikmund Translate to English by Google     VÍTEJTE V MÉM SVĚTĚ

Články

Cisco Routing 5 - BGP - Border Gateway Protocol

Sobota, 18.04.2009 13:50 | Samuraj - Petr Bouška |
Pátý díl o routování se zaměřením na konfigurace Cisco zařízení se věnuje routovacímu protokolu, který je určený pro routování mezi AS a používá se pro celý internet, jedná se o Border Gateway Protocol (BGP).

Celý tento seriál o routingu vznikl, když jsem se připravoval na Cisco test 642-901 BSCI, jako moje poznámky. Následně jsem provedl pouze jednoduchou úpravu a text publikoval. Pokud myslíte, že něco podstatného chybí, něco není správně popsáno nebo není úplně jasné, tak uvítám vaše informace v komentářích.

Vlastnosti BGP

  • současná BGP verze 4 je definována v RFC 4271
  • používá se pro routování mezi AS (mezi IGP jako je OSPF)
  • posílají se periodické keepalive (60s) pro ověření konektivity
  • každé dva routery, které mají navázané TCP BGP spojení (tedy spolehlivé), se nazývají sousedi (neighbors) nebo peers
  • každý router s BGP se nazývá BGP speaker
  • updaty se posílají pomocí TCP port 179 (jako jediný používá TCP, RIP je UDP 520, OSPF vůbec nepoužívá Layer 3), takže musí existovat TCP spojení mezi routery, aby mohli být sousedy
  • v updatech se zasílá Network Layer Reachability Information (NLRI) - cílový prefix, délka, cesta, next hop
  • routovací tabulka může obsahovat více jak 100 000 záznamů, díky tomu je internet decentralizovaný systém
  • podporuje CIDR/VLSM a route aggregation
  • nepoužívá tradiční metriky, ale rozhoduje se podle cesty, politik a pravidel
  • EBGP - External BGP - mezi routery z různých AS
  • IBGP - Internal BGP - v rámci stejného AS
  • stabilní iBGP - není závislá na stavu interface (použije se loopback - nikdy nejde dolu) - vytváří se vztah (peer) mezi loopbacky na routerech, nezávisí na fyzické topologii, nemusí být přímo propojený, ale musí být full-mesh
  • routery na hranicích AS se nazývají border nebo edge
  • statické routy se mohou použít k navázání sousedství v EBGP
  • routy naučené z IBGP se neposílají ostatním IBGP sousedům -> aby se naučili všechny routy, tak musí být propojeny do full-mesh, ale mesh nemusí být fyzický, ale logický (všichni spolu musí přímo komunikovat po IP)
  • EBGP multi-hop není defaultně povoleno, takže EBGP peer musí být přímo spojený, aby se navázalo sousedství s lokálním routerem
  • Route Reflector - tento router propaguje routy naučené z IBGP (ale i z EBGP jako každý jiný IBGP router) do ostatních IBGP, snižuje množství potřebných BGP sousedů v AS (není třeba full mesh) - mají sousedství pouze s reflektorem a ne každý s každým
  • Confederation - druhá metoda, jak obejít full-mesh, AS se rozdělí na menší lépe upravovatelné podskupiny
  • Peer group - sousedé se stejnou update policy (dědí ji, ale mohou i přepsat) se mohou seskupovat pro zjednodušení konfigurace a efektivnější výpočty, jméno skupiny je lokální
  • Synchronizace - pokud je zapnutá, prefix naučený z IBGP je platný, pouze pokud existuje non-BGP (IGP) routa pro tento prefix, jinak řečeno, router nepoužívá a nezveřejňuje routu, která je naučená z IBGP, pokud není lokální nebo nepochází z IGP, může být vypnutá, pokud všechny routery v AS používají full-mesh IBGP

Stavy routeru v BGP - z pohledu komunikace

  • Idle - odmítá spojení, připravuje se na vysílání, přejde do Connect, nastavuje se ručně nebo sem padá po chybě
  • Connect - vytváří spojení se sousedem, odešle BGP OPEN, přejde do OpenSent
  • Active -  přišlo spojení od souseda (BGP OPEN) , přejde do OpenSent
  • OpenSent - čeká na OPEN od souseda, tu analyzuje určuje jestli patří do stejné AS a jestli je validní, po přijetí odešle KEEPALIVE
  • OpenConfirm - čeká na KEEPALIVE od souseda
  • Established - bylo vytvořeno obousměrné spojení, začne posílat UPDATE a KEEPALIVE
Stavy protokolu BGP

Tabulky v BGP

  • atribute (atributy) - hodnoty jednotlivých atributů (viz další kapitola)
  • topology (topologie) - spojuje routy a atributy

BGP atributy

  • Weight (váha) - povinný atribut, který je lokální (neposílá se sousedům), vyšší váha znamená vyšší preferenci cesty, Cisco proprietální, řeší různé cesty do stejného cíle
  • AS_Path -  (well-known mandatory) série AS čísel přes které vede routa k cíli, každý router doplní na začátek svoje AS a pošle EBGP sousedovi, slouží k zabránění smyčkám (pokud již je v seznamu, tak cestu odmítne), kratší cesta lepší
  • next hop - (mandatory) v IGP (RIP.) a také v EBGP je to IP adresa routeru, který oznámil routu, v IBGP, pokud routa pochází ze stejného AS, je to stejné, pokud je z jiného AS (doručená z EBGP), tak je to adresa EBGP routeru, který oznámil routu
  • origin - (mandatory) - IGP < EGP < Incomplete
  • local preference - (discretionary) - pro výběr exit cesty z AS, default 100
  • atomic aggregate - (discretionary)
  • aggregator - (optional transitive)
  • communities -  (optional transitive) - taggujeme routy - default ne, každá síť je členem jedné nebo více, komunita je skupina cílů se stejnou vlastností
  • Multiple Exit Discriminator (MED) -   (optional non-transitive) - informuje externí sousedy o preferované cestě do AS, které má více vstupních cest, nižší = lepší, nastavení pomocí route-map a set metric

Pořadí vyhodnocování atributů (best path algorithm)

  1. větší Weight
  2. větší Local_pref
  3. originate - upřednostňujeme lokální cesty, agregované a redistribuované
  4. kratší AS_path
  5. nižší MED
  6. radši EBGP než IBGP
  7. nejnižší IGP metrika pro next hop // tady se většinou končí
  8. kontrolujeme, zda musíme použít více cest
  9. starší cesta
  10. pochází z nižšího Router ID
  11. min cluster list length (pro reflector)
  12. menší sousední adresa

Příkazy Cisco IOSu pro konfiguraci BGP

ROUTER(config)#router bgp 300             // aktivuje BGP, 300 je číslo AS

ROUTER(config-router)#neighbor 170.10.20.1 remote-as 1005 //určí sousedy, s kterými se vytvoří spojení, v daném AS
ROUTER(config-router)#neighbor 170.10.20.1 next-hop-self  // nastaví danou adresu jako next hop
ROUTER(config-router)#neighbor 170.10.20.1 send-community // odešle community atributy sousedovi
ROUTER(config-router)#neighbor 170.10.20.1 update-source loopback 1 // jako zdrojový interface nastavíme loopback, pro IBGP můžeme chtít, aby spojení stále běželo a nezáleží přes který interface, tak použijeme adresu loopbacku (ten nikdy nejde down)
ROUTER(config-router)#neighbor 170.10.20.1 route-reflector-client   // nastaví, že tento router je reflector, a určí jeho klienta
ROUTER(config-router)#no synchronization     // vypne synchronizaci 
ROUTER(config-router)#bgp always-compare-med // donutí router porovnávat metriky cest z jiných AS

ROUTER#clear ip bgp *    // vymaže BGP tabulky a session, * znamená všechny, jinak se zadá IP

Zařazení prefix do routovacího procesu

ROUTER(config-router)#redistribute static   // vloží prefixy statických route, zahrne je do BGP 
ROUTER(config-router)#network 164.67.36.0 mask 255.255.255.0 // které lokálně naučené sítě (musí existovat v routovací tabulce) má zveřejnit

Sumarizace adres v BGP

ROUTER(config-router)#aggregate-address 200.52.0.0 255.255.0.0 summary-only  // vloží do routovací tabulky sumární routu, pokud se nepoužije summary-only, tak se zveřejňují i ty podsítě, z kterých se sumarizace vytvořila
ROUTER(config)#ip route 198.10.0.0 255.255.0.0 null0   // pouze kvůli sumarizaci, opatrně, pokud by neexistovaly přesnější routy, tak se použije tato 
ROUTER(config-router)#redistribute static              // druhá možnost agregace 
ROUTER(config-router)#network 198.10.0.0 mask 255.255.255.0 // třetí možnost agregace (také dohromady s ip route) 
ROUTER(config-router)#no auto-summary                  // poslední možnost by byla autosumarizace na classful, ale tu je třeba skoro vždy vypnout

Route filtering  pomocí prefix-listu

ROUTER(config)#ip prefix-list test deny 0.0.0.0/0                // zakáže defaultní routu 0.0.0.0 
ROUTER(config)#ip prefix-list abc permit 192.0.0.0/8 ge 8 le 24  // bere všechny prefixy > /8 a </24
ROUTER(config-router)#neighbor 170.10.20.1 prefix-list test in   // aplikace filtrování na soused (příchozí nebo odchozí pakety)

Show příkazy - kontrola konfigurace

ROUTER#show ip bgp         // zobrazí routy, nejlepší je označena > 
ROUTER#show ip bgp summary // souhrn všech spojení (seznam BGP sousedů)
ROUTER#show ip bgp path    // všechny cesty v DB
ROUTER#show bgp neighbor   // sousedi i s infem o reflectoru
ROUTER#show ip prefix-list // zobrazí prefix list
zobrazeno: 42829krát | Komentáře [4]

Autor:

Související články:

Routing - směrování

Směrování paketů mezi jednotlivými počítačovými sítěmi (LAN) se provádí technikou zvanou routing. Používají se k tomu různé routovací protokoly. Routing je jedna ze základních částí komunikace v internetu.

Cisco IOS

Velký seriál o operačním systému aktivních prvků firmy Cisco.

Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže.

Komentáře

  1. [1] Hobit

    Predevsim diky za clanky, v cestine jich je opravdu malo.

    Jen drobnost: ve vyberu cesty podle me chybi bod 5. origin.

    Prefer the path with the lowest origin type.

    Note: IGP is lower than Exterior Gateway Protocol (EGP), and EGP is lower than INCOMPLETE.

    www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080094431.shtml

    Čtvrtek, 01.04.2010 12:30 | odpovědět
  2. [2] :-);-)

    :-);-):-(:-O[em][/em][strong][/strong][link][/link]

    Pondělí, 28.11.2016 10:28 | odpovědět
  3. [3] Martin

    U pořadí vyhodnocování patří mezi body 4 (kratší AS path) a 5 (MED) ještě jeden bod a to Prefer lowest origin code (IGP < EGP), jak psal Hobit už dříve. EGP se už nepoužívá, takže se patrně už nikde neobjevuje.

    Indicates the origin of the entry. The origin code is placed at the end of each line in the table. It can be one of the following values:

    i—Entry originated from an Interior Gateway Protocol (IGP) and was advertised with a network router configuration command.

    e—Entry originated from an Exterior Gateway Protocol (EGP)

    ?—Origin of the path is not clear. Usually, this is a router that is redistributed into BGP from an IGP.

    K bodu 9 - starší cesta vyhrává jen doplním, že stáří cest je vidět v příkazu show ip bgp. Cesty jsou seřazeny od nejmladších po nejstarší.

    Středa, 02.08.2017 12:25 | odpovědět
  4. [4] Franta

    ROUTER(config-router)#neighbor 170.10.20.1 next-hop-self // nastaví danou adresu jako next hop

    Výše uvedený komentář není správně (nebo mu nerozumím). O co jde: směrovač ASBR přijme od EBGP souseda údaj o síti včetně next hopu k ní (to je ten soused). Pokud směrovač ale ASBR provozuje rovněž IBGP, předá IBGP sousedovi údaj o oné externí síti včetně původního hopu, tj adresy EBGP souseda, ke které ale IBGP sosed nemusí znát cestu (je to spoj mezi dvěma AS)! Parametr "next-hop-self" řekne, že odesílající IBGP směrovač vloží jako next hop svoji adresu.

    Čtvrtek, 22.06.2023 12:16 | odpovědět
Přidat komentář

Vložit tag: strong em link

Vložit smajlík: :-) ;-) :-( :-O

Nápověda:
  • maximální délka komentáře je 2000 znaků
  • HTML tagy nejsou povoleny (budou odstraněny), použít se mohou pouze speciální tagy (jsou uvedeny nad vstupním polem)
  • nový řádek (ENTER) ukončí odstavec a začne nový
  • pokud odpovídáte na jiný komentář, vložte na začátek odstavce (řádku) číslo komentáře v hranatých závorkách