Ch7.5-Protocoale de Dirijare Exterioare BGP

8
Reţele de Calculatoare Protocoale de Dirijare BGP Copyright Octavian RUSU 2 Introducere - Necesitate Necesitate: Reţeaua nu este ideală Nu toate routerele sunt identice Reţeaua este organizată ierarhic Scalabilitate: Există mai mult de 50 milioane destinaţii Acestea nu pot fi stocate în memoria unui router Transferul tabelelor de dirijare ar ocupa toate canalele de comunicaţii Autonomie administrativă Internet – reţea formată din mai multe reţele Controlul procesului de dirijare se poate face numai în anumite regiuni/zone Copyright Octavian RUSU 3 Dirijare Ierarhică Sisteme autonome Agregarea routelor pe zone Routerele din aceeaşi zonă folosesc acelaşi protocol de dirijare: Intra-AS routing – protocol de dirijare interior Routerele din diverese zone pot folosi diverse protocoale de dirijare în interiorulo zonei dar trebuie să folosească un anume protocol pentru dirijare inter-AS Gateway (Border) routers Routere speciale în interiorul unui AS Rulează protocoale intra-AS pentru a comunica cu routerele din interiorul zonei Responsabile pentru procesul de dirijare a pachetelor destinate reţelelor care nu fac parte din zonă (din afara AS) Rulează protocoale inter- AS pentru a comunica cu routerele din alte zone Copyright Octavian RUSU 4 Sisteme Autonome Autonomous System (AS) Un sistem autonom este definit (RFC 1771) astfel: Un set de routere care sunt administrate de către o singură entitate administrativă folosesc un protocol de dirijare interior (RIP, OSPF, IGRP, EIGRP) valori comune pentru metrică în vederea dirijării pachetelor în interiorul sistemului Un protocol de dirijare exterior pentru dirijarea pachetelor către alte AS-uri Furnizorii de servicii Internet folosesc deseori numai un protocol de dirijare exterior (de regulă Border Gateway Protocol - BGP) pentru dirijare atât în interior cât şi în exterior Dacă BGP este folosit pentru dirijare în interiorul unui AS se numeşte internal BGP sau IBGP Dacă BGP este folosit pentru dirijare între sisteme autonome atunci se numeşte external BGP sau BGP Pentru dirijarea în interiorul unui sistem autonom este posibil ca BGP să nu fie suficient de flexibil, ca urmare, se folosesc alte protocoale interiore Copyright Octavian RUSU 5 ASN Autonomous System Number este un număr pe 16 biţi Trebuie obţinut ca şi adresele IP de la RIPE sau de la reprezentantul local al acestuia Există o zonă de numere AS private ca şi în cazul adreselor IP care pot fi folosite dar numai pentru reţele care nu sunt conectate la reţeaua Internet Ca şi în cazul adreselor IP aceste numere AS private trebuie “mascate” (strip) Un AS este privat dacă primii şase biţi din număr sunt 1 1 1 1 1 1 1 X X X X X X X X X X 32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1 Interval numere AS private: De la 65,512 la 65,535 Copyright Octavian RUSU 6 Dirijare Intra-AS şi Inter-AS Nivel Fizic Router A.c Dirijare inter-AS, intra-AS Nivel Reţea Nivel Legătură de Date a b b a a C A B d A.a A.c C.b B.a c b c

Transcript of Ch7.5-Protocoale de Dirijare Exterioare BGP

Page 1: Ch7.5-Protocoale de Dirijare Exterioare BGP

Reţele de Calculatoare

Protocoale de DirijareBGP

Copyright Octavian RUSU 2

Introducere - NecesitateNecesitate:• Reţeaua nu este ideală

• Nu toate routerele sunt identice• Reţeaua este organizată ierarhic

• Scalabilitate:• Există mai mult de 50 milioane destinaţii

• Acestea nu pot fi stocate în memoria unui router• Transferul tabelelor de dirijare ar ocupa toate canalele de

comunicaţii

• Autonomie administrativă• Internet – reţea formată din mai multe reţele• Controlul procesului de dirijare se poate face numai în anumite

regiuni/zone

Copyright Octavian RUSU 3

Dirijare IerarhicăSisteme autonome• Agregarea routelor pe zone

Routerele din aceeaşi zonă folosesc acelaşi protocol de dirijare:• Intra-AS routing – protocol de

dirijare interior• Routerele din diverese zone

pot folosi diverse protocoale de dirijare în interiorulo zonei dar trebuie să folosească un anume protocol pentru dirijare inter-AS

Gateway (Border) routers• Routere speciale în interiorul

unui AS• Rulează protocoale intra-AS

pentru a comunica cu routereledin interiorul zonei

• Responsabile pentru procesul de dirijare a pachetelor destinate reţelelor care nu fac parte din zonă (din afara AS)• Rulează protocoale inter-

AS pentru a comunica cu routerele din alte zone

Copyright Octavian RUSU 4

Sisteme Autonome Autonomous System (AS)

Un sistem autonom este definit (RFC 1771) astfel:• Un set de routere care sunt administrate de către o singură entitate

administrativă • folosesc un protocol de dirijare interior (RIP, OSPF, IGRP, EIGRP) • valori comune pentru metrică în vederea dirijării pachetelor în interiorul sistemului• Un protocol de dirijare exterior pentru dirijarea pachetelor către alte AS-uri

Furnizorii de servicii Internet folosesc deseori numai un protocol de dirijare exterior (de regulă Border Gateway Protocol - BGP) pentru dirijare atât în interior cât şi în exterior• Dacă BGP este folosit pentru dirijare în interiorul unui AS se numeşte internal

BGP sau IBGP• Dacă BGP este folosit pentru dirijare între sisteme autonome atunci se

numeşte external BGP sau BGPPentru dirijarea în interiorul unui sistem autonom este posibil ca BGP să nu fie suficient de flexibil, ca urmare, se folosesc alte protocoale interiore

Copyright Octavian RUSU 5

ASNAutonomous System Number este un număr pe 16 biţi• Trebuie obţinut ca şi adresele IP de la RIPE sau de la reprezentantul

local al acestuia• Există o zonă de numere AS private ca şi în cazul adreselor IP care pot fi

folosite dar numai pentru reţele care nu sunt conectate la reţeaua Internet • Ca şi în cazul adreselor IP aceste numere AS private trebuie

“mascate” (strip)• Un AS este privat dacă primii şase biţi din număr sunt 1

1 1 1 1 1 1 X X X X X X X X X X

3276

8

1638

4

8192

4096

2048

1024 51

2

256

128 64 32 16

8 4 2 1

Interval numere AS private:

De la 65,512 la 65,535

Copyright Octavian RUSU 6

Dirijare Intra-AS şi Inter-AS

Nivel FizicRouter A.c

Dirijare inter-AS, intra-AS

Nivel ReţeaNivel Legătură de Date

a

b

b

aaC

A

Bd

A.aA.c

C.bB.a

cb

c

Page 2: Ch7.5-Protocoale de Dirijare Exterioare BGP

Copyright Octavian RUSU 7

Dirijare Intra-AS şi Inter-AS

Host h2

a

b

b

aaC

A

Bd c

A.aA.c

C.bB.a

cb

Hosth1

Dirijare Intra-AS în AS-ul A

Dirijare Inter-AS între AS A şi B

Dirijare Intra-AS în AS-ul B

Copyright Octavian RUSU 8

De ce Inter şi Intra AS?Politici:• Intra-AS: pentru un singur domeniu, de regulă,

politicile de control al traficului nu sunt necesare• Inter-AS: controlul asupra traficului care intră, iese

sau traversează un ASScalabilitate:• Tabele de dirijare mai mici• Trafic overhead mai mic pentru transportul inforaţiei de

dirijarePerformanţă:• Intra-AS: cel mai important factor performanţa• Inter-AS: cel mai important factor politicile de dirijare

Copyright Octavian RUSU 9

Clasificare ASReţelele reprezentate printr-un AS pot fi clasificate pornind de la numărul de conexiuni ale acestora la furnizorul de servicii Internet:• Single-homed AS – o singură ieşire la furnizorul de servicii Internet:

• Nu este necesar BGP• Se foloseşte default route pentru dirijarea traficul care nu este destinat AS-

ului (pentru interior)• Multi-homed AS – un AS cu mai multe ieşiri la furnizorii de servicii

Internet• Clasificare:

• AS non-tranzit, • AS-uri care nu permit trafic între furnizorii de servicii • Configuraţie pentru multi-homed corporate AS

• AS-uri de tranzit• Furnizori de servicii Internet• Traficul de tranzit este realizat folosind IBGP (transit routers)

Copyright Octavian RUSU 10

Când se Foloseşte BGPA• single-homed AS nu necesită BGP, default

route este suficient.B• Chiar dacă există mai multe conexiuni de la

un AS la ISP BGP nu este neapărat necesar• BGP se foloseşte pentru implementarea

politicilor de dirijare externe.C• Un An care foloseşte conexiuni redundante

la diferite POP-uri ale aceluiaşi furnizor, tot nu este neapărat nevoie de BGP

• Totuşi trebuie folosit BGP pentru a implementa politici de dirijare externe.

D• Un AS cu mai multe conexiuni la furnizori de

servicii – BGP este necesar• Dacă nu este permis traficul de tranzit

trebuie stabilite şi configurate politici de dirijare.

A

B

C

D

Customer AS

Customer AS

Customer AS

Customer AS

ISPAS 1

ISPAS 1

ISPAS 1

ISPAS 1

ISPAS 1

ISPAS 2

Copyright Octavian RUSU 11

Când se Foloseşte BGP

Când nu se foloseşte BGP• Single-homed AS• Politica de dirijare locală nu diferă de politica de

dirijare a AS-ului externCând BGP este necesar:• AS-urile de tranzit• AS-urile cu mai multe conexiuni la alte AS-uri• Traficul care intră şi iese trebuie manipulat pe

baza unor politici de trafic prestabilite

Copyright Octavian RUSU 12

Politici de DirijareBGP este un protocol de dirijare bazat pe algoritmi distance vector• Dirijare bazată pe cale şi atribute

BGP este un protocol capabil să implementeze diverse politici de dirijare:• Politicile de dirijare

• Nu fac parte din protocol, sunt implementate prin configurări specifice

• Definesc modul de control al informaţiei de dirijare de la un AS la altul

• Pot fi complexeBGP este un protocol de tip “hop-by-hop”:• Se pot publica către alte AS-uri doar

căile cunoscute din BGP sau IGP• Notă: toate protocoalele de dirijare

pot publica doar route din propria tabelă de dirijare

Un multi-homed AS nu funcţionează ca AS de tranzit:• Limitarea publicării căilor

cunoscuteUn multi-homed AS poate funcţiona ca AS de tranzit doar pentru unele AS-uri• Se publică doar căile care aparţin

AS-urilor pentru care se permite tranzitul

Un AS poate favoriza sau defavoriza unele traficul de tranzit pentru unele AS-uri

Page 3: Ch7.5-Protocoale de Dirijare Exterioare BGP

Copyright Octavian RUSU 13

Funcţionare BGPBGP foloseşte conexiuni TCP pentru comunicaţia intre routere şi pentru transmiterea traficului BGP:• Peers sau neighbors (analog adiacenţă în OSPF sau EIGRP)• Deoarece sunt folosite conexiuni TCP este permis doar tracic TCP/IP

• BGP funcţionează şi cu alte stive de protocoale (IPX/SPX) dacă traficul este încapsulat TCP/IP

Segment TCP:• BGP foloseşte port TCP 179

Antet TCP

Numar Port

Payload Segment

CR

CAntet Nivel

Legatura de Date

Payload Cadru

Antet IP Protocol

Payload Pachet

6 – TCP17 - UDP

179 – BGP23 – Telnet80 - HTTP

Copyright Octavian RUSU 14

Funcţionare BGPDupă stabilirea conexiunii TCP între doi vecini BGP (peers), fiecare va transmite mesaje OPEN pentru a negocia parametrii conexiunii BGPAceşti parametri sunt:• Versiune BGP

• Ambele routere trebuie să folosească acceaşi versiune a protocolului BGP, dacă unul este configurat pentru o versiune mai mică decât 4 (versiunea curentă) atunci se poate negocia o altă versiune

• Numărul AS• Numărul AS trimis de un vecin trebuie să fie identic cu cel la care se aşteaptă routerul,

acesta este specificat în configuraţie• Hold Time

• Timpul maxim între mesajele keepalive. Se va negocia cel mai mic timp configurat de către administrator

• BGP router ID• Router ID anunţat trebuie să coincidă cu cel configurat (aşteptat)• Se alege ca la OSPF, adresa IP cea mai mare între adresele asignate interfeţelor

Copyright Octavian RUSU 15

Funcţionare BGP - MesajeVecinii BGP folosesc patru tipuri diferite de mesaje1.OPEN – folosit pentru stabilirea conexiunii, dacă nu se

poate stabili conexiunea se trimite NOTIFICATION2.UPDATE – după schimbul iniţial de informaţii se trimit

doar mesaje UPDATE dacă apar modificări ale topologiei3.KEEPALIVE – mesaje trimise la intervale regulate de timp

(negociat la stabilirea conexiunii) pentru menţinerea legăturii între vecini

4.NOTIFICATION – mesaj de eroare care aduce conexiune în starea idle.

Copyright Octavian RUSU 16

Stări BGPStabilirea conexiunii BGP se face folosind o FSM cu şase stări distincte (RFC 1771):1. Idle: stare de aşteptare a unui eveniment

• Sistemul răspunde cu iniţializarea conexiunii TCP pentru care se setează un timer local: ConnectRetry

2. Connect: se aşteaptă realizarea conexiunii TCP• Dacă se reuşeşte sistemul trimite un mesaj OPEN şi trece în starea Open

Sent• Dacă conexiunea nu poate fi stabilită şistemul resetează timerul

ConnectRetry, trece în starea Active în care aşteaptă o conexiune de iniţializată de vecin

• Dacă expiră timer-ul ConnectRetry sistemul se resetează şi încearcă din nou stabilirea conexiunii; starea rămâne Active

• Orice alt eveniment aduce sistemul în starea Idle.3. Active: sistemul încearcă stabilirea unei conexiuni BGP prin iniţierea

conexiunii TCP• Succs, trimite un mesaj OPEN şi trece în starea Open Sent• Dacă expiră timer-ul ConnectRetry sistemul revine în starea Connect.

Copyright Octavian RUSU 17

Funcţionare BGP - Mesaje4. Open Sent: Se aşteaptă un mesaj OPEN de la vecin

• La recepţionare mesaj OPEN se verifică erorile (versiune, număr AS etc.)• Dacă se detectează eroare, se trimite NOTIFICATION şi se trece în starea

Idle.• Dacă totul este corect se negociază hold timer si se trimit mesaje

KEEPALIVES5. Open Confirm: Sistemul aşteaptă mesaj KEEPALIVE sau

NOTIFICATION• Dacă se primeşte KEEPALIVE se trece în starea Established• Dacă expiră timer-ul Hold Timer sistemul trimite un mesaj NOTIFICATION

si trece în starea Idle• Dacă se primeşte NOTIFICATION se trece în starea Idle

6. Established: Starea în care sistemul poate trimite mesaje UPDATE, KEEPALIVE şi NOTIFICATION• De fiecare dată când se primeşte UPDATE sau KEEPALIVE, se resetează

Hold Timer (dacă nu este setat la zero)• Dacă se primeşte NOTIFICATION sistemul trece în starea Idle• Un sistem trimite NOTIFICATION şi trece în starea Idle dacă:

• Expiră Hold Timer• Se detectează o eroare într-un mesaj UPDATE recepţionat

Copyright Octavian RUSU 18

Diagrama Stărilor BGP

Page 4: Ch7.5-Protocoale de Dirijare Exterioare BGP

Copyright Octavian RUSU 19

Pachetul BGPToate mesajele BGP conţin acelaşi antet:• Marker - 16 octet• Length - 2 octet• Type - 1 octet

Datele încapsulate după antet pot avea lungimea de 0 - 4077 octeţiMesajul BGP poate avea lungime maximă de 4096 octeţiAntet BGP:

0 7 15 23 31

Antet Pachet BGP

LengthSlungimea mesajului in octeti: 19 la 4096

TypeTipul mesajului din

campul de date

Marker

Poate fi folosit pentru sincronizare sau pentru autentificarea mesajelor BGP, altfel toti bitii sunt 1.

Copyright Octavian RUSU 20

Mesaj tip 1: OPENFormatul mesajului OPEN :• Toţi parametrii trebuie să fie stabiliţi (negociaţi) înainte de stabilirea conexiunii• Se pot include, opţional, parametri cum ar fi autentificarea

0 7 15 23 31

Mesajul OPEN

Versiune BGP

Numar AS propriu

Hold TimeTrebuie s[ fie yero sau, cel putin 3 secunde

Identificator BGP (BGP Identifier)Adresa IP ( acceasi semnificatie ca router ID in OSPF)

Lungimea parametrilor

optionali

Parametri Optionali

Copyright Octavian RUSU 21

Mesaj tip 2: UPDATELungimea minimă este de 23 octeţi• 19 octeţi antet BGP• 2 octeti pentru Unfeasible Routes Length• 2 octeti pentru Total Path Attributes Length

Unfeasible Routes Length specifică lungimea în octeţi a routelor retrase (Withdrawn Routes):• Routele sunt trimise în formatul lungime/prefix:

• CIDR• Exemplu 10.1.1.0/24 se va transmite ca lungime 24 şi

prefix 10.1.1.0Total Path Attributes Length specifică lungimea în octeţi pentru atributele de cale Path Attributes• Atribute de cale – atributele routei• ORIGIN, PATH, Metric

Network Layer Reachability Information (NLRI), lista de prefixe (adrese IP de reţea) la care se poate ajunge prin routerul care trimite mesajul UPDATE• Se exprimă ca şi Withdrawn Routes

0 7 15

Path Attributes(Lungime variabila)

Network LayerReachability Information

(Lungime variabila)

Mesaj UPDATE

Unfeasible Routes Length(2 octeti)

Withdrawn Routes(Lungime variabila)

Total Path Attributes Length(2 OCteti)

Copyright Octavian RUSU 22

Mesaj tip 3: NOTIFICATIONMesajul NOTIFICATION se trimite atunci când apare o eraoare după acre se închide conexiunea BGP• Câmpul Error Code precizează tipul mesajului NOTIFICATION iar

câmpul Subcode precizează eroarea:• Ex. Eraoare 2 subcod 2 = Bad AS

0 7 15 23 31

Mesaj NOTIFICATION

Error Code Error SubcodeData

(Lungime totala - 19 octeti antet - 2 octeti campuri cod eroare )

Copyright Octavian RUSU 23

Mesaj tip 4: KEEPALIVEFormatul mesajului KEEPALIVE:• Numai antetul BGP de 19 octeţi• Mesajul KEEPALIVE nu conţine date• Mesajele KEEPALIVE se trimit, de regulă, la fiecare 60

secunde• Pentru routerele Cisco:

• Hold Timer = 3 x interval KEEPALIVE

• Mesajele KEEPALIVE se trimit între vecini după stabilirea conexiunii şi transferul informaţiei pentru dirijare

• Un mesaj UPDATE va reseta Hold Timer deci va înlocui un mesaj KEEPALIVE

Copyright Octavian RUSU 24

Atribute de CaleMesajele UPDATE conţin o listă de atribute pentru căile specificate în câmpul NLRI• Câmpul Total Path Attributes Length precizează lungimea în octeţi a câmpului Path

Attributes• Câmpul Path Attributes conţine:

• Primii 3 biţi (MSB) tipul atributului:• well-known mandatory, • well-known discretionary, • optional transitive, • optional non-transitive

• Următorii 4 biţi lungimea câmpului Attribute Code. • Biţii care rămân sunt 0• Există 7 coduri pentru atribute cunoscute de toate implementările BGP şi 3 atribute specifice

Cisco

0 7 15

Campul Path Attributes

Attribute Flags Attribute Type

Page 5: Ch7.5-Protocoale de Dirijare Exterioare BGP

Copyright Octavian RUSU 25

Categorii de Atribute de CaleExistă 4 categorii de atribute de cale• Well-known Mandatory

• Atribute care trebuie incluse în toate implementările BGP în toate mesajele UPDATE, dacă lipsesc atunci se trimite mesaj de eroare NOTIFICATION

• Well-know Discretionary• Atribute recunoscute de toate implementările BGP dar care nu sunt

obligatorii în mesajele BGP de tip UPDATE• Optional Transitive

• Atribute care nu trebuie neapărat să fie recunoscute de toate implementările BGP dar care trebuie trimise la vecinii BGP

• Optional Non-transitive• Atribute care nu trebuie neapărat să fie recunoscute de toate

implementările BGP dar care nu trebuie trimise la vecinii BGP. Dacă nu sunt recunoscute nu sunt trimise.

Copyright Octavian RUSU 26

AtributeCod Tip Atribut Categorie Atribut Descriere Atribut

1 Well-known mandatory ORIGIN

2 Well-known mandatory AS_PATH

3 Well-known mandatory NEXT_HOP

4 Option non-transitive MULTI_EXIT_DISC

5 Well-known discretionary LOCAL_PREF

6 Well-known discretionary ATOMIC_AGGREGATE

7 Optional transitive AGGREGATOR

8 Optional transitive (Cisco defined) COMMUNITY

9 Optional non-transitive (Cisco defined) ORIGINATOR_ID

10 Optional non-transitive (Cisco defined) CLUSTER_LIST

Copyright Octavian RUSU 27

Atribut: ORIGINORIGIN este atribut well-known mandatory şi precizează modul în care routerul a “învăţat” calea din câmpul NLRI• BGP foloseşte atributul ORIGIN, se preferă căile cu cea mai mică valoare

pentru atributul ORIGIN• IGP mai bun ca EGP; EGP mai bun ca Incomplete

• Atributul ORIGIN are lungimea de 1 octet

Valoare Semnificatie

0 IGP - calea a provine din IGP

1 EGP - calea provinne din EGP

2 Incomplete - origine necunoscuta

Copyright Octavian RUSU 28

Atribut: AS_PATHAS_PATH este un atribut well-known mandatory compus dintr-o listă de numere AS• AS_PATH este împărţit în trei părţi:

• Path Segment Type (1 octet)• 1 = AS_SET: Path Segment Value conţine o secvenţă

neordonată de AS-uri pe care le traversează calea către NLRI • 2 = AS_SEQUENCE: Path Segment Value conţine o secvenţă

ordonată de AS-uri pe care le traversează calea către NLRI• Path Segment Length (1 octet)

• Numărul de AS-uri listate în Path Segment Value• Path Segment Value

• 2 octeţi pentru fiecare AS traversat pe calea către NLRI• Un AS sete un număr pe 16 biţi

• AS_PATH este similar cu Hop Count• Toate atributele fiind egale, BGP va alege cel mai scurt AS_PATH

Copyright Octavian RUSU 29

Atribut: NEXT_HOP

NEXT_HOP este un atribut well-known mandatory care specifică adresa IP a routerului care trebuie folosit ca next hop• Pentru sesiuni EBGP atributul NEXT_HOP va fi

adresa routerului care trimite mesajul UPDATE• Pentru sesiuni IBGP atributul NEXT_HOP al unui

router EBGP care a publicat informaţia în interiorul AS-ului (atributul NEXT_HOP nu se modifică)• Rezultă că routerele IBGP trebuie să cunoască calea

către routerul EBGP din IGPsau static

Copyright Octavian RUSU 30

Exemplu NEXT_HOPAtributul NEXT_HOP pentru schema de mai jos va fi tratat astfel:• Routerele A şi C au stabilit o sesiune EBGP

• Atributul NEXT_HOP attribute este setat la adresa routerului vecin:• A: atributul NEXT_HOP pentru 150.10.0.0 este10.10.20.2• C: atributul NEXT_HOP pentru 170.10.50.0 este 10.10.20.1

• Routerele A şi B au stabilit o sesiune IBGP• B: atributul NEXT_HOP pentru 150.10.0.0 nu se schimbă adică

rămâne 10.10.20.2• B Trebuie să poată ajunge la reţeaua 10.10.20.0, altfel pachetele

pentru 150.10.0.0 sunt aruncate

AS 100

150.10.0.010.10.20.110.10.20.2

AS 200 EBGP

IBGP

170.10.50.0

AB C

Page 6: Ch7.5-Protocoale de Dirijare Exterioare BGP

Copyright Octavian RUSU 31

Atribut: MULTI_EXIT_DISCMulti-Exit Discriminator (MED) este un atribut optional non-transitive care specifică calea preferată pe care ar trebui s-o ia în considerare AS-urile externe în AS-ul localSe foloseşte pentru a separa un AS single-homed• Routerul care primeşte MED nu va propaga acest atribut la vecini, va

reseta atributul la zero• Poate fi folosit de un AS pentru a influenţa decizia privind traficul de

ieşire a altui AS• Valorile mici ale MED conduc la cai preferate• De regulă, se compară doar valorile MED care se primesc de la

acelaşi AS• Acest comportament se poate modifica

În BGP v4 MED se defineşte ca metric

Copyright Octavian RUSU 32

Atribut: LOCAL_PREFAtributul LOCAL_PREF este un atribut de tip well-known discretionary folosit de un routerBGP pentru a informa un router IBGP (din acelaşi AS) cu privire la preference pentru ruta publicată• Se foloseşte pentru a forţa IBGP să folosească un

punct de ieşire specific pentru o destinaţie anume• LOCAL_PREF mare conduce la rute preferate

(MED mic)• LOCAL_PREF nu este trimis vecinilor BGP

(EBGP)

Copyright Octavian RUSU 33

Atribut: ATOMIC_AGGREGATEAtributul ATOMIC_AGGREGATE este un atribut well-known discretionary folosit de un router BGP care a grupat mai multe destinaţii într-un singur update• Sintaxă:

•Router(config-router)#aggregate-address address mask [as-set] [summary-only]

• Dacă nu există alte opţiuni atunci se va publica adresa supernet şi rutele mai specifice

• Dacă se foloseşte opţiunea [as-set], routerul va publica adresa supernet, rutele mai specifice si AS_PATH pentru fiecare rută

• Dacă se foloseşte opţiunea [summary-only], routerul va publica doar adresa supernet

Copyright Octavian RUSU 34

Atribut: AGGREGATOR

Atributul AGGREGATOR este un atribut optional transitive• Folosind AGGREGATOR se poate include router

ID şi AS-ul local odată cu ruta pentru supernet• Atributul permite determinarea routerului

responsabil pentru o anume agregare• Identificarea routerului care a făcut agregarea

este, deseori, necesară

Copyright Octavian RUSU 35

Atribute Definite de Cisco• COMMUNITY – atribut opţional tranzitiv

• Se foloseşte pentru aplicarea unei politici pentru toate destinaţiile care aparţin comunităţii

• ORIGINATOR_ID – atribut opţional tranzitiv• Este folosit de Route Reflectors pentru identificarea originator-ului

unei rute şi eliminarea buclelor• CLUSTER_LIST – atribut opţional tranzitiv

• Se foloseşte pentru a spicifia un identificator de cluster atunci când se folosesc mai multe Route Reflectors (pentru redundanţă)

• WEIGHT - acesta este local, pentru un router şi nu este propagat deci nu are Attribute Type Code• Este similar cu LOCAL_PREF, routerul va alege calea cu WEIGHT mare• Valoarea atributului se reprezintă pe 16 biţi

• Căile care au origine pe router au WEIGHT=32768, toate restul au 0

Copyright Octavian RUSU 36

Atribute şi Decizii de Dirijare BGPToate atributele sunt folosite în procesul de dirijareCum se stabileşte calea de urmat pentru un pachet atunci când se foloseşte BGP ca protocol de dirijare?• În general:

• Atunci când există mai multe căi către o destinaţie BGP alege una singură

• Dacă se recepţionează mai multe rute către aceeaşi destinaţie cu acelaşi atribut de cale, BGP va alege cea mai bună rută pe baza unei medii a tuturor atributelor

• Dacă pentru două rute către aceeaşi destinaţie nu sunt specificate aceleaşi atribute:• Nu este posibil să se aleagă o metrică compusă• Atributele sunt evaluate într-o anumită ordine

Page 7: Ch7.5-Protocoale de Dirijare Exterioare BGP

Copyright Octavian RUSU 37

Procesul de Alegere a Rutei1. Dacă o rută internă nu este sincronizată şi este activată sincronizarea

atunci această rută nu este luată în considerare

2. Dacă nu se poate ajunge la adresa IP specificată de NEXT_HOP atunci ruta nu este luată în considerare

3. Se evaluează valoarea atributului WEIGHT şi se alege ruta cu valoarea cea mai mare pentru WEIGHT (numai Cisco)

4. Dacă WEIGHT este egal se alege ruta cu cea mai mare valoare pentru LOCAL_PREF

5. Dacă şi LOCAL_PREF este egal se alege ruta care este generată (ORIGIN) de routerul local

6. Dacă nici o ruta nu este generată de routerul local se alege ruta cu cel mai scurt AS_PATH (cel mai mic număr de hop-uri)

Copyright Octavian RUSU 38

Procesul de Alegere a Rutei (cont.)7. Dacă rutele au şi acelaşi AS_PATH, se alege ruta după atributul

ORIGIN: IGP în favoarea EGP, EGP în favoarea Incomplete8. Dacă rutele au şi acelaşi atribut ORIGIN, se alege calea cu MED

cel mai mic9. Dacă MED este acelaşi sau nu este relevant atunci se alege ruta

care se cunoaşte prin EBGP în favoarea celei cunoscute prin IGBP.

10. Dacă ruta nu se cunoaşte prin EBGP, se alege calea cu metrica IGP cea mai mică către următorul hop BGP

11. Dacă rămân doar rute EBGP, atunci se foloseşte load-balancing12. Dacă nu este configurat load-balancing se alege ruta prin

routerul care are cel mai mic router ID

Copyright Octavian RUSU 39

Diagrama Alegere Rută BGP

Rute sincronizate?

Nu se ia în

considerare

Nu

Se poate ajunge la Next

Hop?

Da WEIGHT mai mare?

Da

Nu

LOCAL_PREFcel mai mare?

Instalare Rută

Da

Nu

Generată pe routerul local?

Da

Nu

AS_PATH cel mai mic?

Da

Nu

ORIGIN cel mai mic?

Da

Nu

MED cel mai mic?

Da

Nu

Cale EBGP?

Da

Nu

Load Balanceactivat?

LowestIGP Metric

Da

Nu

Cel mai micRouter ID BGP

Da

Nu

Copyright Octavian RUSU 40

Configurare BGPComenzile pentru configurarea de bază a BGP:

Router(config)#router bgp AS#Router(config-router)#network network-number [mask network-mask]

Router(config-router)#neighbor ip-address remote-as AS#

• Comanda network precizeză adresele de reţea anunţate de către routerul local• Reţelele trebuie să existe în tabela de dirijare, altfel nu vor fi anunţate• Comada mask se foloseşte pentru CIDR

• Comanda neighbor precizează routerul BGP cu care se va stabili o sesiune BGP• Trebuie să existe o rută către vecin în tabela de dirijare• Dacă remote-AS este local-AS se va iniţia o conexiune IBGP altfel o

conexiune EBGP

Copyright Octavian RUSU 41

Sesiuni EBGP şi IBGPO sesiune EBGP se stabileşte între doi vecini care sunt conectaţi la nivel 2 OSI• Se poate stabili o conexiune

EBGP chiar dacă nu există conexiune directă între vecini, dar este nevoie ca ruta către vecin să existe în tabela de dirijare înainte de stabilirea sesiunii BGP

• Comanda de configurare a unei sesiuni multihop:neighbor ip-address ebgp-multihop [hops]

O sesiune IBGP se poate stabili între două routere din acelaşi AS dacă există conectivitate între acestea pe rute cunoscute din IGP

Copyright Octavian RUSU 42

SincronizareRegula sincronizării:• Un router BGP nu poate anunţa o rută care se cunoaşte de la alt router IBGP

decât dacă aceasta este cunoscută şi printr-un protocol IGP• Exemplu:

• Routerul B va trimite traficul pentru reţeaua 10.10.10.0 la routerul C, dar routerul C nu poate dirija traficul spre routerul A deoarece nu are ruta spre 10.10.10.0 din IGP, o cunoaşte numai din IBGP (black hole)

• Routerul C poate învăţa ruta astfel:• Direct conectată (nu e cazul în exemplu)• Ruta statică• Folosind un protocol IGP

AS 300

150.10.0.0

AS 200 EBGP

IBGP

170.10.50.0

B

CNon-BGP Router

AS 100

10.10.10.0A

EBGP

Page 8: Ch7.5-Protocoale de Dirijare Exterioare BGP

Copyright Octavian RUSU 43

Sincronizare

Sincronizarea este utilă în unele situaţiiDe multe ori sincronizarea trebuie oprită• În cazul în care routerele IBGP sunt conectate în

reţea fully meshed IBGP• AS-ul este un AS non-tranzit

Se foloseşte comanda (Cisco): •no synchronization

Copyright Octavian RUSU 44

Bucla Locală – Router IDConfigurarea unei bucle locale este folositoare (ca în OSPF)• Flexibilitate• Dacă nu se configurează loopback atunci se va folosi

adresa interfeţei direct conectate în relaţia de peer-ing• Comanda prin care se foloseşte adresa de loopback:Router(config-router)#neighbor ip-addressupdate-source lo0

• Trebuie folosită această adresă în configurarea sesiunii BGP pe routerul vecin