Ch7.5-Protocoale de Dirijare Exterioare BGP
-
Upload
mihai000000 -
Category
Documents
-
view
13 -
download
1
Transcript of 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
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
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
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
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
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
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
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