DIAMETER

Innen informasjonsteknologi og telekommunikasjon er Diameter en AAA ( Authentication , Authorization and Accounting )-protokoll som følger RADIUS , selv om den ikke er direkte bakoverkompatibel . RADIUS er en klient-server AAA-protokoll mellom en Network Access Server ( NAS ) og en sentralisert RADIUS - server , basert på TCP - transportlagprotokollen ; Diameter er en peer-to-peer AAA-protokoll og består av en kjerneprotokoll (spesifisert i RFC 3588 ) og et sett med utvidelser kalt Diameter-applikasjoner . Den grunnleggende protokollen kan ikke brukes alene, men alltid assosiert med en spesifikk Diameter-applikasjon av tjenesten som skal tilbys ( Mobil IP , NASREQ , Strong Security, etc.). Den er basert på TCP- eller SCTP- transportprotokollene , og krever obligatorisk bruk av IPsec .

Fødsel

Hovedårsakene til å definere en ny protokoll var RADIUS -problemene som er oppført nedenfor.

Struktur

Diameter er definert i form av en grunnleggende protokoll og et sett med applikasjoner. Denne utformingen gjør at protokollen kan utvides til nye tilgangsteknologier. Grunnprotokollen gir grunnleggende mekanismer for pålitelig transport, meldingslevering og feilhåndtering, og må brukes sammen med en Diameter-applikasjon. Hver applikasjon er avhengig av grunnleggende protokolltjenester for å støtte en bestemt type nettverkstilgang. De to hovedapplikasjonene er Mobile IPv4 og NASREQ (Network Access Server Requirements). NASREQ-applikasjonen støtter PPP / IP-oppringing og er ment som en erstatning for RADIUS.

Basisprotokollen definerer formatet til en basisdiametermelding. Dataene føres i Diameter-meldingen som en samling av AVP (Attribute Value Pair); en AVP tilsvarer et RADIUS-attributt og består av flere felt: AVP-kode, Lengde, Flagg og Data. Noen AVP-er brukes av den grunnleggende Diameter-protokollen; andre AVP-er er for Diameter-applikasjoner; atter andre kan brukes av høynivåapplikasjonen av sluttsystemet ved bruk av Diameter.

Diameter, i motsetning til RADIUS, opererer på et pålitelig transportlag ( TCP eller SCTP ) som gir flytkontroll, bekreftelser på transportnivå og retransmisjoner. Mens TCP er universelt kjent, er Stream Control Transmission Protocol (SCTP) noe sånt som en ny IP-transportprotokoll, som eksisterer på samme nivå som UDP eller TCP. I 2000 ble SCTP foreslått som en standard og er spesifisert i RFC 2960 .

Definisjoner

I tillegg til klient og server , definerer Diameter-protokollen andre typer noder :

Spesifikasjoner

En Diameter-melding består av en overskrift med fast lengde på 20 byte , etterfulgt av et variabelt antall AVP-er. Overskriftsformatet er som følger:

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + | Versjon | | | 0 0 0 0 0 0 0 1 | Meldingslengde | + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + | Flagg | | | RPET xxxx | Kommando-kode | + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + | Applikasjons-ID | + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + | Hopp-for-hopp-identifikator | + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + | End-to-end identifikator | + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + | AVP-er... + - + - + - + - + - + - + - + - + - + - + - + - + -

Diameter-meldingshodet inneholder to 32 -bits identifikatorer . Hop-for-hop-identifikatoren hjelper deg med å matche forespørsler og svar. I forespørsler erstattes denne identifikatoren for hvert hopp til meldingen videresendes til dens endelige destinasjon. Avsenderen av svarmeldingen returnerer samme verdi som den fant i den tilsvarende forespørselen. End-to-end Identifier , sammen med identiteten til den opprinnelige verten, brukes til å gjenkjenne dupliserte forespørselsmeldinger, og endres aldri før forespørselen ankommer destinasjonen. Avsenderen av svaret returnerer samme verdi som den fant i den tilsvarende forespørselen.

Diameter tillater datatyper som Integer32, Unsigned32, Integer64, Unsigned64, Float32, Float64, Float128, OctetString og Grouped; en AVP Grouped er en AVP hvis data er en sekvens av AVP-er.

Avledede datatyper er også definert: enumerativ (avledet fra integer32), DiameterIdentity (avledet fra oktettstreng), temporal (avledet fra unsigned32), UTF8String (avledet fra oktettstreng), IPFilterRule (avledet fra oktettstreng) og QoSFilterRule (avledet fra oktettstreng).

Hver Diameter-prosess som kjører på en vert genererer en Diameter Identity, som er en streng med syntaksen til en Uniform Resource Identifier (URI) som representerer FQDN (Fully Qualified Domain Name) til verten, en av portene som lytter etter tilkoblinger i oppføring, transportprotokollen (TCP eller SCTP), AAA-protokollen (Diameter) og sikkerhetstransporten (ingen eller TLS).

Fordi identiteten bærer vertens FQDN, og siden flere Diameter - prosesser på en enkelt vert ikke kan lytte på den samme porten til en gitt protokoll, er hver prosess DiameterIdentity garantert unik.

Når det gjelder meldingene, er det to typer: Forespørsel og svar . Hver svarmelding inkluderer en AVP-resultatkode , hvis verdi er et heltall som indikerer om en bestemt forespørsel ble fullført eller om det oppsto en feil. Hver Diameter-melding inneholder Diameter Identity for sendingsprosessen på den opprinnelige verten, samt domenet til den prosessen. Forespørselsmeldinger kan være "proxiable" eller "non-proxiable", avhengig av et av flaggene i overskriften. Ikke-proxiable forespørsler er strengt ment for neste-hopp-peer, og blir aldri videresendt videre. Proxiable forespørsler kan rutes og rutes per domene. Hver proxiable forespørsel inneholder måldomenet i Destination-Realm AVP.

En Diameter-melding som er relevant for en spesifikk brukerøkt, inkluderer en AVP Session-Id , en konstant verdi for øktens levetid. Denne verdien er en globalt og evig unik tekststreng, som er i stand til å identifisere en brukerøkt unikt uten å referere til annen informasjon. Diameter-klienten som starter økten oppretter Session-Id, som begynner med avsenderens Diameter Identity-streng og fortsetter med en sekvens som garanterer både topologisk og tidsmessig unikhet.

Kommandoliste

Hver kommando kjennetegnes av en kode, brukt for både forespørsler og svar:

Kommando Abbr. Kode
Avbryt-økt-forespørsel ASR 274
Avbryt-økt-svar SOM EN 274
Regnskap-forespørsel ACR 271
Regnskap-Svar ACA 271
Evner-Utveksling-Forespørsel CER 257
Evner-Utveksling-Svar CEA 257
Device-Watchdog-Request DWR 280
Enhet-Vakthund-Svar DWA 280
Koble fra-peer-forespørsel DPR 282
Koble fra-Peer-Svar DPA 282
Re-Auth-Request RAR 258
Re-Auth-Answer RAA 258
Økt-avslutning-forespørsel STR 275
Økt-avslutning-svar ER 275
Kreditt-kontroll-forespørsel CCR 272
Kreditt-kontroll-svar CCA 272
Attributt-verdipar (AVP)

Overskriftsformatet til en AVP Diameter er som følger:

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + | AVP-kode | + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + | Flagg | | | VMP xxxxx | AVP Lengde | + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + | Leverandør-ID (hvis leverandørspesifikk AVP) | + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + | AVP-data ... (variabel lengde) + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + -

AVP-koden, sammen med leverandør-ID-feltet, identifiserer attributtet unikt. De første 256 tallene, sammen med leverandør-ID satt til null, er reservert for bakoverkompatibilitet med RADIUS . AVP-datafeltet består av null eller flere oktetter og inneholder attributtspesifikk informasjon. Feltene AVP Code og AVP Length bestemmer formatet og lengden på datafeltet.

Attributt-navn Kode Data-type
Acct-Interim-Interval 85 Usignert 32
Regnskap-sanntid-påkrevd 483 Oppregnet
Acct-Multi-Session-Id 50 UTF8-streng
Regnskapspostnummer 485 Usignert 32
Regnskap-Rekord-Type 480 Oppregnet
Regnskap-Session-Id 44 Oktettstreng
Accounting-Sub-Session-Id 287 Usignert 64
Acct-Application-Id 259 Usignert 32
Auth-Application-Id 258 Usignert 32
Auth-Request-Type 274 Oppregnet
Autorisasjon-levetid 291 Usignert 32
Auth-Grace-Period 276 Usignert 32
Auth-Session-State 277 Oppregnet
Re-Auth-Request-Type 285 Oppregnet
CC-Request-Type 416 Usignert 32
CC-forespørsel-nummer 415 Usignert 32
Klasse 25 Oktettstreng
Destinasjon-vert 293 DiamIdent
Destinasjon-riket 283 DiamIdent
Koble fra - Årsak 273 Oppregnet
E2E-sekvens 300 Gruppert
Feilmelding 281 UTF8-streng
Feil-rapportering-vert 294 DiamIdent
Hendelse-tidsstempel 55 Tid
Eksperimentelt-resultat 297 Gruppert
Eksperimentell-Resultat-kode 298 Usignert 32
Mislyktes-AVP 279 Gruppert
Firmware-revisjon 267 Usignert 32
Verts-IP-adresse 257 Adresse
Inband-Security-Id 299 Usignert 32
Multi-Round-Time-Out 272 Usignert 32
Opprinnelse-vert 264 DiamIdent
Opprinnelse-rike 296 DiamIdent
Opprinnelse-State-ID 278 Usignert 32
Produktnavn 269 UTF8-streng
Proxy-vert 280 DiamIdent
Proxy-info 284 Gruppert
Proxy-stat 33 Oktettstreng
Omdirigering-vert 292 DiamURI
Omdirigere-vert-bruk 261 Oppregnet
Redirect-Max-Cache-Time 262 Usignert 32
Resultat-kode 268 Usignert 32
Rute-rekord 282 DiamIdent
Øktnummer 263 UTF8-streng
Tidsavbrudd for økten 27 Usignert 32
Sesjonsbinding 270 Usignert 32
Session-Server-Failover 271 Oppregnet
Supported-Vendor-Id 265 Usignert 32
Oppsigelse-årsak 295 Oppregnet
Brukernavn 1 UTF8-streng
Leverandør-ID 266 Usignert 32
Leverandør-spesifikk-applikasjons-ID 260 Gruppert

Eksterne lenker