DIAMETER
DIAMETER je AAA protokol (authentication, authorization and accounting, česky autentizace, autorizace a účtovací) používaný pro přístup k síti nebo pro IP mobilitu. Je používán pro signalizaci v jádře sítě Evolved Packet System (EPS) mobilních sítí 4G.[1] Hlavní koncept tvoří základní protokol, který může být rozšířen pro poskytování AAA služeb novým přístupovým technologiím. Může pracovat jak lokálně tak i v roamingu.
Rozšíření oproti RADIUS protokolu[editovat | editovat zdroj]
Protokol DIAMETER je rozšířeným následníkem protokolu RADIUS (o čemž svědčí okolnost, že diametr čili průměr je dvojnásobkem rádiusu neboli poloměru). Diameter není přímo zpětně kompatibilní, ale poskytuje rozšířenou cestu pro RADIUS. Hlavní rozdíly protokolu DIAMETER oproti protokolu RADIUS jsou:
- používá spolehlivý transportní protokol (TCP nebo SCTP, nepoužívá nespolehlivý UDP)
- může použít zabezpečení na transportní vrstvě (IPsec nebo TLS)
- podporuje přenos RADIUS
- má větší adresní prostor pro dvojice atributů a hodnot (anglicky Attribute Value Pairs, AVPs) a širší identifikátory (32bitové místo 8bitových)
- jde o klient–server protokol, s výjimkou podpory některých zpráv inicializovaných serverem
- lze použít stavový i bezstavový model
- má dynamické objevování uzlů (používá DNS, SRV a NAPTR)
- má schopnost vyjednávání
- podporuje dohody na aplikační vrstvě, definuje metody odolávající chybám a stavové stroje (RFC 3539)
- oznamuje chyby
- má lepší podporu roamingu
- je snadněji rozšiřitelný; lze definovat nové příkazy a atributy
- je zarovnán na 32bitové hranice
- má základní podporu uživatelských sezení a účtování
Popis protokolu[editovat | editovat zdroj]
Základní protokol Diameteru (anglicky Diameter Base Protocol) je definován v RFC 6733. Definuje minimální požadavky AAA protokolu. Aplikace Diameteru (anglicky Diameter Applications) mohou rozšířit základní protokol přidáním nových příkazů nebo atributů. Aplikace zde není program, nýbrž protokol založený na Diameteru. Zabezpečení protokolu Diameter je poskytováno protokolem IPSEC nebo TLS.
Formát paketů[editovat | editovat zdroj]
Paket začíná hlavičkou, ze kterou následují dvojice atributů a hodnot (AVP):
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Verze | Délka zprávy | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |příznak příkazu| Kód příkazu | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Aplikační-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Hop-by-Hop Identifikátor | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | End-to-End Identifikátor | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AVPs ... +-+-+-+-+-+-+-+-+-+-+-+-+-
Příkazy[editovat | editovat zdroj]
Každému příkazu je přiřazen kód příkazu, který se používá v obou typech zpráv – v požadavcích i odpovědích.
Jméno příkazu | Zkratka | Kód | Aplikace |
---|---|---|---|
AA-Request | AAR | 265 | Diameter NAS Application - RFC 7155 |
AA-Answer | AAA | 265 | Diameter NAS Application - RFC 7155 |
Diameter-EAP-Request | DER | 268 | Diameter EAP Application - RFC 4072 |
Diameter-EAP-Answer | DEA | 268 | Diameter EAP Application - RFC 4072 |
Abort-Session-Request | ASR | 274 | Diameter base |
Abort-Session-Answer | ASA | 274 | Diameter base |
Accounting-Request | ACR | 271 | Diameter base |
Accounting-Answer | ACA | 271 | Diameter base |
Credit-Control-Request | CCR | 272 | Diameter Credit-Control Application - RFC 8506 (nahrazuje RFC 4006) |
Credit-Control-Answer | CCA | 272 | Diameter Credit-Control Application - RFC 8506 (nahrazuje RFC 4006) |
Capabilities-Exchange-Request | CER | 257 | Diameter base |
Capabilities-Exchange-Answer | CEA | 257 | Diameter base |
Device-Watchdog-Request | DWR | 280 | Diameter base |
Device-Watchdog-Answer | DWA | 280 | Diameter base |
Disconnect-Peer-Request | DPR | 282 | Diameter base |
Disconnect-Peer-Answer | DPA | 282 | Diameter base |
Re-Auth-Request | RAR | 258 | Diameter base |
Re-Auth-Answer | RAA | 258 | Diameter base |
Session-Termination-Request | STR | 275 | Diameter base |
Session-Termination-Answer | STA | 275 | Diameter base |
User-Authorization-Request | UAR | 283 | Diameter SIP Application - RFC 4740 |
User-Authorization-Answer | UAA | 283 | Diameter SIP Application - RFC 4740 |
Server-Assignment-Request | SAR | 284 | Diameter SIP Application - RFC 4740 |
Server-Assignment-Answer | SAA | 284 | Diameter SIP Application - RFC 4740 |
Location-Info-Request | LIR | 285 | Diameter SIP Application - RFC 4740 |
Location-Info-Answer | LIA | 285 | Diameter SIP Application - RFC 4740 |
Multimedia-Auth-Request | MAR | 286 | Diameter SIP Application - RFC 4740 |
Multimedia-Auth-Answer | MAA | 286 | Diameter SIP Application - RFC 4740 |
Registration-Termination-Request | RTR | 287 | Diameter SIP Application - RFC 4740 |
Registration-Termination-Answer | RTA | 287 | Diameter SIP Application - RFC 4740 |
Push-Profile-Request | PPR | 288 | Diameter SIP Application - RFC 4740 |
Push-Profile-Answer | PPA | 288 | Diameter SIP Application - RFC 4740 |
User-Authorization-Request | UAR | 300 | Diameter base (3GPP) RFC 3589 |
User-Authorization-Answer | UAA | 300 | Diameter base (3GPP) RFC 3589 |
Server-Assignment-Request | SAR | 301 | Diameter base (3GPP) RFC 3589 |
Server-Assignment-Answer | SAA | 301 | Diameter base (3GPP) RFC 3589 |
Location-Info-Request | LIR | 302 | Diameter base (3GPP) RFC 3589 |
Location-Info-Answer | LIA | 302 | Diameter base (3GPP) RFC 3589 |
Multimedia-Auth-Request | MAR | 303 | Diameter base (3GPP) RFC 3589 |
Multimedia-Auth-Answer | MAA | 303 | Diameter base (3GPP) RFC 3589 |
Registration-Termination-Request | RTR | 304 | Diameter base (3GPP) RFC 3589 |
Registration-Termination-Answer | RTA | 304 | Diameter base (3GPP) RFC 3589 |
Push-Profile-Request | PPR | 305 | Diameter base (3GPP) RFC 3589 |
Push-Profile-Answer | PPA | 305 | Diameter base (3GPP) RFC 3589 |
User-Data-Request | UDR | 306 | Diameter base (3GPP) RFC 3589 |
User-Data-Answer | UDA | 306 | Diameter base (3GPP) RFC 3589 |
Profile-Update-Request | PUR | 307 | Diameter base (3GPP) RFC 3589 |
Profile-Update-Answer | PUA | 307 | Diameter base (3GPP) RFC 3589 |
Subscribe-Notifications-Request | SNR | 308 | Diameter base (3GPP) RFC 3589 |
Subscribe-Notifications-Answer | SNA | 308 | Diameter base (3GPP) RFC 3589 |
Push-Notification-Request | PNR | 309 | Diameter base (3GPP) RFC 3589 |
Push-Notification-Answer | PNA | 309 | Diameter base (3GPP) RFC 3589 |
Bootstrapping-Info-Request | BIR | 310 | Diameter base (3GPP) RFC 3589 |
Bootstrapping-Info-Answer | BIA | 310 | Diameter base (3GPP) RFC 3589 |
Message-Process-Request | MPR | 311 | Diameter base (3GPP) RFC 3589 |
Message-Process-Answer | MPA | 311 | Diameter base (3GPP) RFC 3589 |
Update-Location-Request | ULR | 316 | 3GPP TS 29.272 [RFC 5516] |
Update-Location-Answer | ULA | 316 | 3GPP TS 29.272 [RFC 5516] |
Cancel-Location-Request | CLR | 317 | 3GPP TS 29.272 [RFC 5516] |
Cancel-Location-Answer | CLA | 317 | 3GPP TS 29.272 [RFC 5516] |
Authentication-Information-Request | AIR | 318 | 3GPP TS 29.272 [RFC 5516] |
Authentication-Information-Answer | AIA | 318 | 3GPP TS 29.272 [RFC 5516] |
Insert-Subscriber-Data-Request | IDR | 319 | 3GPP TS 29.272 [RFC 5516] |
Insert-Subscriber-Data-Answer | IDA | 319 | 3GPP TS 29.272 [RFC 5516] |
Delete-Subscriber-Data-Request | DSR | 320 | 3GPP TS 29.272 [RFC 5516] |
Delete-Subscriber-Data-Answer | DSA | 320 | 3GPP TS 29.272 [RFC 5516] |
Purge-UE-Request | PER | 321 | 3GPP TS 29.272 [RFC 5516] |
Purge-UE-Answer | PEA | 321 | 3GPP TS 29.272 [RFC 5516] |
Notify-Request | NR | 323 | 3GPP TS 29.272 [RFC 5516] |
Notify-Answer | NA | 323 | 3GPP TS 29.272 [RFC 5516] |
Provide-Location-Request | PLR | 8388620 | 3GPP-LCS-SLg (Application-ID 16777255) |
Provide-Location-Answer | PLA | 8388620 | 3GPP-LCS-SLg (Application-ID 16777255) |
Routing-Info-Request | RIR | 8388622 | 3GPP-LCS-SLh (Application-ID 16777291) |
Routing-Info-Answer | RIA | 8388622 | 3GPP-LCS-SLh (Application-ID 16777291) |
AA-Mobile-Node-Request | AMR | 260 | Diameter Mobile IPv4 - RFC 4004 |
AA-Mobile-Node-Answer | AMA | 260 | Diameter Mobile IPv4 - RFC 4004 |
Home-Agent-MIP-Request | HAR | 262 | Diameter Mobile IPv4 - RFC 4004 |
Home-Agent-MIP-Answer | HAA | 262 | Diameter Mobile IPv4 - RFC 4004 |
Configuration-Information-Request | CIR | 8388718 | S6t per 3GPP TS 29.336 |
Configuration-Information-Answer | CIA | 8388718 | S6t per 3GPP TS 29.336 |
Reporting-Information-Request | RIR | 8388719 | S6t per 3GPP TS 29.336 |
Reporting-Information-Answer | RIA | 8388719 | S6t per 3GPP TS 29.336 |
NIDD-Information-Request | NIR | 8388726 | S6t per 3GPP TS 29.336 |
NIDD-Information-Answer | NIA | 8388726 | S6t per 3GPP TS 29.336 |
Dvojice hodnot atributů (anglicky Attribute-Value Pairs, AVP)[editovat | editovat zdroj]
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 kód | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V M P r r r r r| AVP délka | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ID-výrobce (volitelné) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ... +-+-+-+-+-+-+-+-+
Jméno atributu | Kód | Datový typ |
---|---|---|
Acct-Interim-Interval | 85 | Unsigned32 |
Accounting-Realtime-Required | 483 | Enumerated |
Acct-Multi-Session-Id | 50 | UTF8String |
Accounting-Record-Number | 485 | Unsigned32 |
Accounting-Record-Type | 480 | Enumerated |
Accounting-Session-Id | 44 | OctetString |
Accounting-Sub-Session-Id | 287 | Unsigned64 |
Acct-Application-Id | 259 | Unsigned32 |
Auth-Application-Id | 258 | Unsigned32 |
Auth-Request-Type | 274 | Enumerated |
Authorization-Lifetime | 291 | Unsigned32 |
Auth-Grace-Period | 276 | Unsigned32 |
Auth-Session-State | 277 | Enumerated |
Re-Auth-Request-Type | 285 | Enumerated |
Class | 25 | OctetString |
Destination-Host | 293 | DiamIdent |
Destination-Realm | 283 | DiamIdent |
Disconnect-Cause | 273 | Enumerated |
E2E-Sequence | 300 | Grouped |
Error-Message | 281 | UTF8String |
Error-Reporting-Host | 294 | DiamIdent |
Event-Timestamp | 55 | Time |
Experimental-Result | 297 | Grouped |
Experimental-Result-Code | 298 | Unsigned32 |
Failed-AVP | 279 | Grouped |
Firmware-Revision | 267 | Unsigned32 |
Host-IP-Address | 257 | Address |
Inband-Security-Id | 299 | Unsigned32 |
Multi-Round-Time-Out | 272 | Unsigned32 |
Origin-Host | 264 | DiamIdent |
Origin-Realm | 296 | DiamIdent |
Origin-State-Id | 278 | Unsigned32 |
Product-Name | 269 | UTF8String |
Proxy-Host | 280 | DiamIdent |
Proxy-Info | 284 | Grouped |
Proxy-State | 33 | OctetString |
Redirect-Host | 292 | DiamURI |
Redirect-Host-Usage | 261 | Enumerated |
Redirect-Max-Cache-Time | 262 | Unsigned32 |
Result-Code | 268 | Unsigned32 |
Route-Record | 282 | DiamIdent |
Session-Id | 263 | UTF8String |
Session-Timeout | 27 | Unsigned32 |
Session-Binding | 270 | Unsigned32 |
Session-Server-Failover | 271 | Enumerated |
Supported-Vendor-Id | 265 | Unsigned32 |
Termination-Cause | 295 | Enumerated |
User-Name | 1 | UTF8String |
Vendor-Id | 266 | Unsigned32 |
Vendor-Specific-Application-Id | 260 | Grouped |
Odkazy[editovat | editovat zdroj]
Reference[editovat | editovat zdroj]
- ↑ 3GPP TS 29.272: 3rd Generation Partnership Project; Technical Specification Group Core Network and Terminals; Evolved Packet System (EPS); Mobility Management Entity (MME) and Serving GPRS Support Node (SGSN) related interfaces based on Diameter protocol. 18.3.0. vyd. [s.l.]: 3GPP, březen 2024. Dostupné online.