TRIP Telephony Routing over IP Mr Nenad Krajnović Katedra za telekomunikacije E-mail: krajko@etf.bg.ac.yu
TRIP zašto? Protokol definisan u okviru RFC-a 3219 (status: proposed standard). Framework za postojanje TRIP-a definisan je u RFC- 2871 Namenjen je razmeni informacija, o dostupnosti odredišta, između location servera i za oglašavanje atributa tih ruta za navedena odredišta. Sličan BGP-4 protokolu na osnovu koga je i nastao. Nezavistan je od signalizacionih protokola tako da se može koristiti u kombinaciji sa bilo kojim od njih. 2
Osnovni pojmovi LS Location Server Peers Dva LS-a koji imaju uspostavljenu konekciju Ako su LS-ovi unutar istog ITAD (IP Telephony Administration Domain) onda su oni internal peers Ako su LS-ovu u različitim ITAD-ima onda su external peers TRIP odredište kombinacija skupa adresa (definisane kao tip adrese i adresni prefix) i aplikacionog protokola (SIP, H.323...) 3
Zašto TRIP? U zavisnosti od vrste komunikacije (IP<->PSTN) postavlja se pitanje izbora krajnje tačke (MGw) Teorijski, svaki MGw može da se iskoristi za prelazak na PSTN Pored tehničkih parametara (kapacitet, rastojanje do odredišta i slično), veoma su važna i administrativna pravila (da li je to vaš MGw, da li imate pravo da ga koristite...) 4
Zašto TRIP? Potreban je protokol koji bi omogućio operatorima da dinamički oglašavaju drugim operatorima svoje MGw i korisnike (brojeve telefona) kojima se može pristupiti posredstvom MGw-a Taj protokol je TRIP 5
TRIP skup funkcija: Uspostava i održavanje peering veza između provajdera. Razmena i sinhronizacija MGw routing informacija između provajdera. Sprečavanje formiranja petlje u rutiranju za IP telephony signalizacione protokole. Prosleđivanje informacija ka provajderima koje su dobijene od drugih provajdera. Definicija sintakse i semantike za podatke koji opisuju rute za telefonske MGw. 6
SIP transakcija - primer request response SIP redirect server SIP proxy 2 Location service 1 Kako LS zna gde se nalazi krajnji korisnik? UAC 7
TRIP Mesto TRIP-a a u mreži ITAD ITAD MGw TRIP MGw MGw MGC LS LS MGC MGw TRIP MGw MGw LS MGC ITAD MGw MGw MGw 8
Tri vrste ruta kod TRIP-a: Eksterne ruta primljena od eksternog LS peer-a Interne ruta primljena od internog LS peer-a Lokalna ruta lokalno ubačena u TRIP protokol (konfiguracijom ili redistribucijom iz nekog drugog protokola) 9
Formati paketa Za transport svojih poruka TRIP uspostavlja konekciju posredstvom transportnog protokola Maksimalna veličina poruke je 4096 bajtova i svi serveri moraju da budu u stanju da prihvate tako veliku poruku 10
Formati paketa zaglavlje TRIP-a Length (2) Type (1)( Zaglavlje je uvek fiksne dužine U zavisnosti od polja type, imamo različite tipove paketa: OPEN UPDATE NOTIFICATION KEEPALIVE 11
OPEN Message format Length (2) Type=1 (1)( Version (1) Reserved (1) Optional Parameters Length (2) My ITAD (4) Hold Time (2) Optional Parameters (variable) zaglavlje Ostatak TRIP paketa 12
OPEN Message format Version trenutno važeća verzija TRIP protokola je 1 Hold Time maksimalno dozvoljeno vreme koje sme da protekne između dve susedne KEEPALIVE i/ili UPDATE poruke My ITAD ITAD broj pošiljaoca paketa 13
OPEN Message format Optional Parameters Length definiše dužinu polja sa opcionim parametrima Optional parameters opcioni parametri koji se daju u sledećoj formi: Parameter Type (2) Parameter Length (2) Parameter Value (variable)... 14
OPEN Message format Tipovi opcionih parametara koji se mogu pojaviti u OPEN poruci: Capability information sadrži informacije o mogućnostima LS-a Route types supported koja vrsta ruta je podržana od strane LS-a koji šalje poruku Send receive capability (send receive, send only, receive only) u kom režimu LS može da radi za datu peering sesiju 15
UPDATE Message format Koristi se za razmenu informacija o TRIP rutama između LS-ova U jednoj poruci se istovremeno mogu nalaziti delovi koji oglašavaju TRIP rutu i povlače staru TRIP rutu Poruka se sastoji od Route Attribute-a koji se nadovezuju jedan na drugi 16
UPDATE Message format Routing attributes: Attr. Flags (1) Attr. type code Attribute Length (2) Attribute flags: Length (2) Type=2 (2) Attribute Value (variable)... Bit 0 Well-known flag nije well-known atribut (1) ili jeste (0) Bit 1 Transitive flag tranzitivni not well-known atribut (1) ili nije tranzitivni (0) Bit 2 Dependent flag zavisan tranzitivni atribut (1) ili nezavisni tranzitivni atribut (0) Bit 3 Partial flag informacija u not well-known atributu je parcijalna (1) ili kompletna (0) Bit 4 Link state encapsulation važi samo za dva tipa atributa: ReachableRoutes i WithdrawnRoutes; definiše da li je enkapsulacija link-state (1) ili standardna 17
UPDATE Message format Ako se koristi link-state enkapsulacija informacija, tada je format paketa sledeći: Attr. Flags (1) Attr. type code Attribute Length (2) Originator TRIP Identifier Sequence Number Attribute Value (variable)... Ubačena polje se koriste za detektovanje duplih i starih ruta tako da se one više ne prosleđuju drugim LS-ovima. 18
UPDATE Message format - atributi WithdrawnRoutes sadrži listu ruta koje treba povući iz upotrebe jer više nisu dostupne ReachableRoutes lista ruta koje treba dodati u grupu aktivnih ruta NextHopServer identifikuje server kome ova poruka treba da bude poslata; može da sadrži i UDP/TCP port koji će se koristiti za komunikaciju 19
UPDATE Message format - atributi AdvertisementPath isto što je AS_Path atribut kod BGP-4 protokola samo što se ovde pamte ITAD-ovi; koristi se za detekciju petlje u prosleđivanju poruka; ne utiče na saobraćaj TRIP paketa kroz mrežu 20
UPDATE Message format - atributi RoutedPath pamti putanju kroz mrežu ali samo one skokove kada dolazi promene NextHopServer atributa AtomicAggregate signalizira da se u ruti mogu nalaziti i domeni koji nisu izlistani u RoutedPath. 21
UPDATE Message format - atributi LocalPreference podatak kojim se obaveštavaju LS-ovu unutar domena o prioritetu prosleđivanja trenutno korišćene rute MultiExitDisc kada postoje dve veze između dva ITAD-a, tada se pomoću ovog protokola reguliše koji je prioritetni 22
UPDATE Message format - atributi Communities ne spada u Well-known atribute; grupiše odredišne adrese u Communities ITAD Topology intra-domain atribut koji se koristi za slanje svoje topologije drugom LS-u ConvertedRoute signalizira da je jedan od LS-ova promenio aplikativni protokol 23
KEEPALIVE Message format Keepalive poruke se razmenjunju između LS-ova da bi signalizirali vidljivost LS-ova Sastoje se samo od zaglavlja TRIP paketa 24
NOTIFICATION Message format Šalje se kada se detektuje greška. Error code (1) Error subcode Data (2) Error code Symbolic name 1 Message Header Error 2 OPEN Message Error 3 UPDATE Message Error 4 Hold Timer Expired 5 Finite State Machine Error 6 Cease 25
Generički TRIP route format Address family (2) Application protocol (2) Length (2) Address (variable) Address family tri tipa su definisana: 1 - Decimal Routing Numbers 2 - PentaDecimal Routing Numbers 3 E.164 Numbers 26
Generički TRIP route format Application Protocol definiše protokole rutiranja za koje se može koristiti TRIP: 1 SIP 2 H.323-H.225.0-Q.931 3 H.323-H.225.0-RAS 4 H.323-H.225.0-Annex-G 27
Generički TRIP route format Decimal Routing Numbers: Decimal-routing-number = *decimal-digit decimal-digit = DECIMAL-DIGIT DECIMAL-DIGIT = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" 28
Generički TRIP route format PentaDecimal Routing Numbers: PentaDecimal-routing-number =*pentadecimal-digit pentadecimal-routing-digit = PENTADECIMAL-DIGIT PENTADECIMAL-DIGIT = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "A" "B" "C" "D" "E" 29
Generički TRIP route format E.164 Numbers: E164-number = *e164-digit E164-digit = E164-DIGIT E164-DIGIT = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" 30
Generički TRIP route format - adrese Dužina mrežnog prefiksa za rutu određuje se na osnovu polja dužine za rutu. Iako Decimal Routing Numbers i E.164 imaju iste cifre, treba koristiti E.164 kad god je to moguće 31
Način rada Posmatraćemo način rada TRIP-a za dva LS-a 32
Analiza UPDATE poruke Kada stigne UPDATE poruka koja sadrži rutu, tada ta ruta mora da bude smeštena u Adj-TRIB-in (memorija gde se smeštaju sve rute koje stignu, pre nego što se prebace za upotrebu) Smeštanje nove rute ide po sledećem algoritmu: 33
Analiza UPDATE poruke 1. If its destinations are identical to those of a route currently stored in the Adj-TRIB-in, then the new route MUST replace the older route in the Adj-TRIB-in, thus implicitly withdrawing the older route from service. The LS MUST rerun its Decision Process since the older route is no longer available for use. 2. If the new route is more specific than an earlier route contained in the Adj-TRIB-in and has identical attributes, then no further actions are necessary. 3. If the new route is more specific than an earlier route contained in the Adj-TRIB-in but does not have identical attributes, then the LS MUST run its Decision Process since the more specific route has implicitly made a portion of the less specific route unavailable for use. 34
Analiza UPDATE poruke 4. If the new route has destinations that are not present in any of the routes currently stored in the Adj-TRIB-in, then the LS MUST run its Decision Process. 5. If the new route is less specific than an earlier route contained in the Adj-TRIB-In, the LS MUST run its Decision Process on the set of destinations that are described only by the less specific route. 35
Flooding proces Kada LS primi UPDATE poruku od internog peer-a, tada se aktivira flooding i nova informacija se šalje svim internim peer partnerima. Ovo se radi u cilju održavanja sinhronizacije između svih internih LSova. 36
Donošenje odluke LS mora da analizira podatke koji su u Adj-TRIB-in i da donese odluku koje rute će da prihvati. Odluka se donosi primenom administrativno definisanih pravila. Svi interni LS-ovi moraju da primenjuju ista pravila da bi se održala sinhronizacija tabela rutiranja. 37
Donošenje odluke Donošenje odluke se obavlja u tri faze: Faza 1 računanje stepena preferencije Faza 2 izbor najbolje rute od svih ponuđenih ruta i smeštanje u lokalnu bazu ruta Faza 3 slanje informacija o novoformiranoj tabeli rutiranja (TF poziva) svim eksternim peer-ovima 38
Donošenje odluke faza 1 Ako je ruta primljena od internog peer-a tada se parametar LocalPreference uzima za stepen preferencije Ako je ruta primljena od eksternog peer-a tada se stepen preferencije računa prema unapred zadatoj formuli; dobijena vrednost se upisuje i kao LocalPreference parametar i koristi se za razmenu sa ostalim internim peer LS-ovima 39
Donošenje odluke faza 2 Sastoji se iz podfaza 2a i 2b Faza 2a na osnovu podataka od eksternih peer LS-ova i lokalnih ruta donosi se odluka i te rute se smeštaju u bazu eksternih ruta Faza 2b na osnovu podataka u bazi eksternih ruta i ruta od internih peer LS-ova donosi se odluka o izboru najboljih ruta Ako NextHopServer nije dostupan tada se ta ruta uklanja iz tabele rutiranja 40
Donošenje odluke faza 2 Za svako odredište gde imamo više od jedne rute, bira se ona ruta koja: ima veći stepen preferencije ili ako više ruta ima isti stepen preferencije tada se bira ona koja je izabrana kao rezultat izvršavanja posebnih pravila (tie breaking rules) Rute koje se povlače (Withdrawn Routes) obavezno se moraju izbaciti iz tabele rutiranja 41
Donošenje odluke faza 2 Tie breaking rules: ako lokalni LS koristi MultiExitDisc atribut a to šalje susedni ITAD, onda se bira ona ruta koja ima veću vrednost za MultiExitDisc, ako je neka od ruta dobijena od internog peer LS-a, tada se bira onda ruta koja ima najmanji TRIP ID (a da je uz to i generisana od strane lokalnog LS-a), U suprotnom bira se ruta koja je došla od eksternog suseda koji ima najmanji ITAD broj. 42
Donošenje odluke preklapajuće e rute Ako u Adj-TRIB-in tabeli imamo rute koje se preklapaju (odnose se na isto odredište ali sa različitom preciznošću) tada se koristi preciznija ruta Kada primi oglašanje ruta koje se preklapaju, proces donošenja odluke o izboru rute može da postupi po jednom od pravila: 43
Donošenje odluke preklapajuće e rute 1. Install both the less and the more specific routes 2. Install the more specific route only 3. Install the non-overlapping part of the less specific route only (that implies disaggregation of the less-specific route) 4. Aggregate the two routes and install the aggregated route 5. Install the less specific route only 6. Install neither route 44
Učestanost oglašavanja avanja ruta Rute primljene od internih peer LS-ova i namenjene drugim internim peer LSovima se šalju bez bilo kakvog zadržavanja Poruke o povlačenju ruta (Withdrawn Routes) se prosleđuju bez zadržavanja Sva ostala oglašavanja se obavljaju sa pauzama definisanim parametrom MinRouteAdvertisementInterval 45
Smanjenje količine ine informacija koje se šalju Da bi se smanjio potreban komunikacioni kapacitet, LS može da: Izvrši agregaciju ruta Izvrši izbacivanje ITAD brojeva koji se pojavljuju u AP_Path atributu više od jednom tako da svaki ITAD broj ostane samo jednom 46
Način transporta Za transport TRIP poruka koristi se TCP protokol port 6069 47
TRIP topologija Nema ograničenja po pitanju intradomain topologije LS-ovi u ITAD-u mogu da se nađu u bilo kojoj topologiji (full mesh, star, ring...) 48
TRIP tajmeri preporučene ene vrednosti ConnectRetry Hold Time KeepAlive MaxPurgeTime TripDisableTime MinITADOriginationInterval MinRouteAdvertisementInterval 120 sekundi 90 sekundi 30 sekundi 10 sekundi 180 sekundi 30 sekundi 30 sekundi 49
TRIP Telephony Routing over IP Mr Nenad Krajnović Katedra za telekomunikacije E-mail: krajko@etf.bg.ac.yu