Diameter Tutorial - IETF67

Slides:



Advertisements
Similar presentations
Diameter Credit Control Application Tutorial - IETF67
Advertisements

Neighbor Discovery for IPv6 Mangesh Kaushikkar. Overview Introduction Terminology Protocol Overview Message Formats Conceptual Model of a Host.
1 Internet Protocol Version 6 (IPv6) What the caterpillar calls the end of the world, nature calls a butterfly. - Anonymous.
Internet Control Protocols Savera Tanwir. Internet Control Protocols ICMP ARP RARP DHCP.
1 Semester 2 Module 4 Learning about Other Devices Yuda college of business James Chen
Lionel Morand DIME WG IETF 79 Diameter Design Guidelines Thursday, November 11, 2010 Lionel Morand.
Diameter Base Protocol (RFC6733)
IETF 58 PANA WG PANA Update and Open Issues (draft-ietf-pana-pana-02.txt) Dan Forsberg, Yoshihiro Ohba, Basavaraj Patil, Hannes Tschofenig, Alper Yegin.
Network Layer Packet Forwarding IS250 Spring 2010
Internet Control Message Protocol (ICMP). Introduction The Internet Protocol (IP) is used for host-to-host datagram service in a system of interconnected.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
TCP: Software for Reliable Communication. Spring 2002Computer Networks Applications Internet: a Collection of Disparate Networks Different goals: Speed,
IP/ICMP Translation Algorithm (IIT) Xing Li, Congxiao Bao, Fred Baker
July 16, 2003AAA WG, IETF 571 AAA WG Meeting IETF 57 Vienna, Austria Wednesday, July 16,
Course 6421A Module 7: Installing, Configuring, and Troubleshooting the Network Policy Server Role Service Presentation: 60 minutes Lab: 60 minutes Module.
1 Version 3.1 Module 4 Learning About Other Devices.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Network Layer ICMP and fragmentation.
Aug 3, 2004AAA WG, IETF 60 San Diego1 Diameter NASReq Application Status David Mitton, Document Editor.
1 Multi-Protocol Label Switching (MPLS). 2 MPLS Overview A forwarding scheme designed to speed up IP packet forwarding (RFC 3031) Idea: use a fixed length.
1 IP Forwarding Relates to Lab 3. Covers the principles of end-to-end datagram delivery in IP networks.
10/8/2015CST Computer Networks1 IP Routing CST 415.
DIME Rechartering Hannes Tschofenig & Dave Frascone.
10/13/2015© 2008 Raymond P. Jefferis IIILect 07 1 Internet Protocol.
1 CMPT 471 Networking II IGMP (IPv4) and MLD (IPv6) © Janice Regan,
Diameter Group Signaling Tuesday, July 31 st, 2012 draft-ietf-diameter-group-signaling-00 Mark Jones, Marco Liebsch IETF 84 Vancouver, Canada.
NTLP Design Considerations draft-mcdonald-nsis-ntlp-considerations-00.txt NSIS Interim Meeting – Columbia University February 2003.
Diameter Maintenance and Extensions (DIME) John Loughney, Hannes Tschofenig IETF 66, Montreal, June 2006.
July 16, Diameter EAP Application (draft-ietf-aaa-eap-02.txt) on behalf of...
IETF70 DIME WG1 ; ; Diameter Routing Extensions (draft-tsou-dime-base-routing-ext.
1 RADIUS Mobile IPv6 Support draft-ietf-mip6-radius-01.txt Kuntal Chowdhury Avi Lior Hannes Tschofenig.
IETF65 DIME WG V. Fajardo, A. McNamee, J. Bournelle and H. Tschofenig Diameter Inter Operability Test Suites (draft-fajardo-dime-interop-test-suite-00.txt)
P2P Streaming Protocol (PPSP) Requirements draft-zong-ppsp-reqs-03.
NTLP Design Considerations draft-mcdonald-nsis-ntlp-considerations-00.txt NSIS Interim Meeting – Columbia University February 2003.
Security, NATs and Firewalls Ingate Systems. Basics of SIP Security.
Error and Control An IP datagram travels from node to node on the way to its destination Each router operates autonomously Failures or problems may occur.
Company Confidential 1 ICMPv6 Echo Replies for Teredo Clients draft-denis-icmpv6-generation-for-teredo-00 behave, IETF#75 Stockholm Teemu Savolainen.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 19 Domain Name System (DNS)
CSC 600 Internetworking with TCP/IP Unit 5: IP, IP Routing, and ICMP (ch. 7, ch. 8, ch. 9, ch. 10) Dr. Cheer-Sun Yang Spring 2001.
ICOS BOF EAP Applicability Bernard Aboba IETF 62, Minneapolis, MN.
SIP Performance Benchmarking draft-ietf-bmwg-sip-bench-term-01 draft-ietf-bmwg-sip-bench-meth-01 March 22, 2010 Prof. Carol Davids, Illinois Inst. of Tech.
Mobile IPv6 with IKEv2 and revised IPsec architecture IETF 61
IETF66 DIME WG John Loughney, Hannes Tschofenig and Victor Fajardo 3588-bis: Current Issues.
Emu wg, IETF 70 Steve Hanna, EAP-TTLS draft-funk-eap-ttls-v0-02.txt draft-hanna-eap-ttls-agility-00.txt emu wg, IETF 70 Steve Hanna,
IETF 57 PANA WG PANA Discussion and Open Issues (draft-ietf-pana-pana-01.txt) Dan Forsberg, Yoshihiro Ohba, Basavaraj Patil, Hannes Tschofenig, Alper Yegin.
Authentication Header ● RFC 2402 ● Services – Connectionless integrity – Data origin authentication – Replay protection – As much header authentication.
RFC3261 (Almost) Robert Sparks. SIPiT 10 2 Status of the New SIP RFC Passed IETF Last Call In the RFC Editor queue Author’s 48 hours review imminent IMPORTANT:
IETF68 DIME WG Open Issues for RFC3588bis Victor Fajardo (draft-ietf-dime-rfc3588bis-02.txt)
IEEE MEDIA INDEPENDENT HANDOVER DCN: Title: Session Identifier Date Submitted: February xx, 2006 Presented.
Firewalls A brief introduction to firewalls. What does a Firewall do? Firewalls are essential tools in managing and controlling network traffic Firewalls.
Nov. 9, 2004IETF61 PANA WG PANA Specification Last Call Issues Yoshihiro Ohba, Alper Yegin, Basavaraj Patil, D. Forsberg, Hannes Tschofenig.
IEEE MEDIA INDEPENDENT HANDOVER DCN: Title: ID Definition Date Submitted: July 14, 2006 Presented at IEEE session in San.
6LoWPAN Ad Hoc On-Demand Distance Vector Routing Introduction Speaker: Wang Song-Ferng Advisor: Dr. Ho-Ting Wu Date: 2014/03/31.
RFC 2716bis Wednesday, July 12, 2006 Draft-simon-emu-rfc2716bis-02.txt Dan Simon Bernard Aboba IETF 66, Montreal, Canada.
DHCP Vrushali sonar. Outline DHCP DHCPv6 Comparison Security issues Summary.
RIP Routing Protocol. 2 Routing Recall: There are two parts to routing IP packets: 1. How to pass a packet from an input interface to the output interface.
1 Review – The Internet’s Protocol Architecture. Protocols, Internetworking & the Internet 2 Introduction Internet standards Internet standards Layered.
Diameter Group Signaling Thursday, March 6 th, 2014 draft-ietf-diameter-group-signaling-03 Mark Jones, Marco Liebsch, Lionel Morand IETF 89 London, U.K.
DIME WG IETF 84 Diameter Design Guidelines draft-ietf-dime-app-design-guide-15 Tuesday, July 31, 2012 Lionel Morand.
Draft-ietf-p2psip-base-08 Cullen Jennings Bruce Lowekamp Eric Rescorla Salman Baset Henning Schulzrinne March 25, 2010.
IETF68 DIME WG Diameter Applications Design Guidelines Document (draft-fajardo-dime-app-design-guide-00.txt)
Address Resolution Protocol Yasir Jan 20 th March 2008 Future Internet.
Cryptography CSS 329 Lecture 13:SSL.
Mobility support in IP v4. Internet Computing (CS-413) 2.
11/20/2002IETF 55 - AAA WG, NASREQ-101 Diameter-Nasreq-10 Dave Mitton, Most recent Document Editor With Contributions from David Spence & Glen Zorn.
Open issues with PANA Protocol
PANA Discussion and Open Issues (draft-ietf-pana-pana-01.txt)
PANA Issues and Resolutions
EA C451 Vishal Gupta.
Vinay Singh Graduate school of Software Dongseo University
Presentation transcript:

Diameter Tutorial - IETF67 IETF67 – Diameter Tutorial Diameter Base Protocol Details Victor Fajardo and Yoshihiro Ohba Toshiba America Research Inc. Diameter Tutorial - IETF67

Diameter Tutorial - IETF67 Tutorial Outline Diameter – Basic Functionality Message Format Protocol Details Connection Management Routing Session Management Creating new applications Improvements over RADIUS RADIUS to Diameter Transition Support Recent Topics Diameter Tutorial - IETF67

Diameter Tutorial - IETF67 Diameter - Basic Functionality Diameter Client Node at somerealm.com Diameter Server Node at otherrealm.com Diameter Client Application Diameter Server Application Session Management Session Management Routing Management Routing Management Connection Management Connection Management Base Protocol Base Protocol Diameter Tutorial - IETF67

Diameter - Basic Functionality Base Protocol Connectivity: Peering and Routing Application support: Application session management Applications Purpose specific: NASREQ, MIPv4, SIP etc. Identified by application Id Every application MUST have an IANA-assigned application identifier Used also for diameter message routing Diameter Tutorial - IETF67

Diameter - Message Format Diameter Header AVP AVP AVP AVP Header AVP Data Diameter Header = Version, Length, Flags, Code, AppId, H2H Id, E2E Id Code, Flag, Length, Vendor-Id (Opt) AVP Header = Each message must be defined using an ABNF grammar Pre-defined AVP data types (Integer32, Float, OctetString etc.) Diameter Tutorial - IETF67

Diameter Tutorial - IETF67 Diameter ABNF Example <CER> ::= < Diameter Header: 257, REQ > { Origin-Host } /* Required AVP, Occurrence: 1 */ { Origin-Realm } 1* { Host-IP-Address } /* Required AVP, Occurrence: 1+ */ { Vendor-Id } { Product-Name } [ Origin-State-Id ] /* Optional AVP, Occurrence: 0 or 1 */ * [ Supported-Vendor-Id ] /* Optional AVP, Occurrence: 0+ */ * [ Auth-Application-Id ] * [ Inband-Security-Id ] * [ Acct-Application-Id ] * [ Vendor-Specific-Application-Id ] [ Firmware-Revision ] * [ AVP ] Note: /* */ is not part of ABNF Diameter Tutorial - IETF67

Connection Management Peer Discovery Transport Capabilities negotiation Peer liveness and disconnection Diameter Tutorial - IETF67

Diameter Tutorial - IETF67 Peer Discovery Peer discovery mechanisms (in order of preference) Static configuration: mandatory SLPv2 and DNS: optional DNS mechanisms to use (in order of execution) NAPTR Address of record Authorization of discovered peer is mandatory Diameter Tutorial - IETF67

Diameter Tutorial - IETF67 Transport Protocols Certain nodes MUST support at least SCTP or TCP (i.e. Diameter Client) Others MUST support SCTP and TCP (i.e. Diameter Servers and Agents) Security TLS and IPSec Selection Process (in order of execution) IPSec, SCTP, TCP, TLS SCTP or TCP is always attempted prior to capabilities exchange TLS tried after capability negotiation IPSec and TLS maybe used exclusively Diameter Tutorial - IETF67

Capabilities Negotiation Capabilities Exchange Use of Capabilities-Exchange (CER/CEA) messages Message exchange advertises: Peer Identity Security schemes – Indicates the use of TLS SCTP host addresses if used CER/CEA may or may not be protected Peer Table Creation Lists all peers that passes capabilities negotiation Indicates the connection status of each peers Also used for message routing Diameter Tutorial - IETF67

Peer Liveness and Disconnection Liveness Test Use of Device-Watchdog exchange (DWR/DWA) Aid in Failover performance: pro-active detection of failure Disconnection Use of Disconnect-Peer exchange (DPR/DPA) Provides hints for future reconnection attempts Routing table updates Diameter Tutorial - IETF67

Diameter Tutorial - IETF67 Routing Types of Diameter Nodes Request Routing Realm Routing Table Answer Routing Loop Detection Failover-Failback Procedure Duplicate Detection Diameter Tutorial - IETF67

Types of Diameter Nodes Diameter Clients and Severs Request and Answer Originators Where application normally reside Advertises supported applications only Diameter Agents Request and Answer forwarders Adds routing information to the message Relay Agents Provides basic message forwarding Does not inspect content of the message other than Destination-Host and/or Realm and AppIds Advertises support all applications Diameter Tutorial - IETF67

Types of Diameter Nodes Proxy Agents Inspects and possibly modifies contents of the request or answer it is forwarding. Useful in scenarios such policy enforcement, admission control, provisioning etc Can maintain session state Examples: Translation agents, RADIUS<->DIAMETER Re-Direct Agents Does not forward messages but notifies the previous hop of the new next-hop to use Advertises support all applications Diameter Tutorial - IETF67

Diameter Tutorial - IETF67 Diameter Agent Overview Redirect Agent 2. Request 3. Redirect Notification 1. Request 4. Request Client Relay/Proxy Agent Server 5. Answer 6. Answer realmB.com realmA.com Request/Answer Path: Normal Relay or Proxy: 1, 4, 5, 6 Re-directed Agent: 1, 2, 3, 4, 5, 6 Diameter Tutorial - IETF67

Diameter Tutorial - IETF67 Request Routing Information used for routing: Application-Id: present is in the header Destination-Host OR Destination-Realm AVP Routing rules: If local identity == Destination-Host AVP then process locally, otherwise If peer identity == Destination-Host AVP then send that peer, otherwise Lookup realm table with Destination-Realm and AppId If found send to the designated next-hop Otherwise, send an UNABLE_TO_DELIVER answer Use of Request Queue Successfully forwarded request are queued Diameter Tutorial - IETF67

Request Routing (Cont’d) Realm Routing Table List of realm routing entries Realm routing entry looks like: Realm (*), AppId (**), Action, Next-hop Peer, isStatic, ExpireTime Realm: Primary key, matched with Destination-Realm Avp AppId: Secondary key, matched with AppId in message header Action: For each matching entry, possible actions are: LOCAL, RELAY, PROXY, REDIRECT isStatic: Indication of static or dynamic route ExpireTime: Time before dynamic route are no longer valid Diameter Tutorial - IETF67

Diameter Tutorial - IETF67 Routing Overview SomeOtherRealm.com 1. Request (EAP, Server.RealmB.com) 2. Request (EAP, Server.RealmB.com) Diameter Client Relay/Proxy Agent Diameter Server Request Queue Request Queue 4. Answer 3. Answer Server.RealmB.com Client.RealmA.com Relay.RealmB.com Example Realm Routing Table for Relay/Proxy Agent: RealmB.com AppId=EAP, Action=PROXY, Next-Hop=Server.RealmB.com, isStatic=TRUE AppId=xxx, Action=RELAY, Next-Hop=Server.RealmB.com, isStatic=TRUE RealmA.com AppId=xxx, Action=RELAY, Next-Hop=Client.RealmA.com, isStatic=TRUE SomeOtherRealm.com AppId=EAP, Action=REDIRECT, Next-Hop=Server.RealmB.com, isStatic=FALSE, ExpireTime=3600 Diameter Tutorial - IETF67

Diameter Tutorial - IETF67 Answer Routing Information used for routing Hop-by-Hop Id is used instead of Destination-Host or Destination-Realm AVP Hop-by-Hop Id is unique within each hop Answer routing path is the reverse of the request path Routing Rules: For answer originators: Use the same Hop-by-Hop Id found in the request For answer forwarders: Lookup Hop-by-Hop Id in request queue If found, forward answer to appropriate peer and remove request from the queue Otherwise, discard Diameter Tutorial - IETF67

Diameter Tutorial - IETF67 Loop Detection Recording the Routing Path Forwarding agents add Route-Record AVPs Detection Local host identity must not be present in the Route-Record AVP Send LOOP_DETECTED answer Diameter Tutorial - IETF67

Failover-Failback Procedure Failover: Attempt to re-route pending request to an alternate peer in case of transport failure ‘T’ bit is set for re-routed requests Failback: Switch back to the original next hop when connection is re-established Relay 3. Request T-bit set Request Queue 4. Answer 2. Request T-bit set Server 5. Answer 1. Request 2. Request Client Relay Request Queue Request Queue 3. Answer 4. Answer Diameter Tutorial - IETF67

Diameter Tutorial - IETF67 Duplicate Detection Duplicates can occur Due to Failover Nodes re-sending un-answered requests: Due to reboot Detection End-to-End Id is unique for a node Re-sent request must have T-flag set Therefore, use T-flag as a hint for possible duplication, then Use End-to-End Id and Origin-Host AVP to detect duplication Duplicate request SHOULD cause the same answer to be sent Other Considerations Use of Session-Id for duplicate detection in accounting records Time needed to wait for duplicate messages Diameter Tutorial - IETF67

Diameter Tutorial - IETF67 Session Management Diameter Sessions - definitions Session types and statefulness Authentication and Authorization Sessions Accounting Sessions Diameter Tutorial - IETF67

Diameter Tutorial - IETF67 Diameter Sessions – definitions What is a session? A session is a related progression of events devoted to a particular activity Applications provide guidelines as to when a session begins and ends Sessions are identified by Session-Id Globally and eternally unique <DiameterIdentity>;<high 32 bits>;<low 32 bits>[;<optional value>] DiameterIdentity: Senders identity in FQDN High and Low 32 bits: Decimal representation of a 64-bit value, monotonically increased Optional value: Implementation specific, i.e. MAC address, timestamp etc Diameter Tutorial - IETF67

Session types and statefulness Two types of sessions by usage Authorization session is used for authentication and/or authorization Accounting session is used for accounting A session can be stateful or stateless Depending on whether the application requires the session to be maintained for a certain duration Stateful sessions normally spans multiple message exchanges Diameter Tutorial - IETF67

Authentication and Authorization Sessions Auth-Session-State indicates statefulness For stateful session Session teardown uses Base Protocol messages ASR/ASA and STR/STA Support for Server-Initiated Re-Auth Uses Base Protocol message RAR/RAA Authorization Session State Machines: CLIENT/STATELESS CLIENT/STATEFUL SERVER/STATELESS SERVER/STATEFUL Diameter Tutorial - IETF67

Diameter Tutorial - IETF67 Accounting Sessions Uses Base Protocol messages ACR/ACA Accounting Session State Machines: CLIENT SERVER/STATELESS SERVER/STATEFUL Diameter Tutorial - IETF67

Accounting-related AVPs Accounting-Record-Type AVP indicates type of accounting record: Acct-Interim-Interval AVP specifies how and when to generate accounting records Accounting-Record-Number AVP identifies an accounting record Acct-Session-Id AVP is used for RADIUS/Diameter translation Acct-Multi-Session-Id AVP co-relates multiple accounting sessions Acct-Sub-Session-Id sub-divides an accounting session Accounting-Realtime-Required AVP specifies realtime accounting behavior Diameter Tutorial - IETF67

Creating a new application Criteria: “New application is unable to fit within an existing application without requiring major changes to the specification” Example major changes: Adding new “mandatory-to-support” AVPs A command requires different round trips than what is currently in the specification Support for a new authentication method with new AVPs As a last resort Advocates reuse of existing applications and AVPs Diameter Tutorial - IETF67

Improvements over Basic RADIUS Features inherently offered by diameter Reliable and secure transport Failover Agent support Server-initiated messages Capabilities negotiation Peer discovery and configuration RADIUS Extensions developed in RADEXT WG also provides most of these functionality, such as RFC3576 Diameter Tutorial - IETF67

Interoperability with RADIUS Diameter is upwards compatible with RADIUS, so Messages and AVPs AVP codes 1-255 is reused from RADIUS Command codes 0-255 is reused from RADIUS Diameter NASREQ (RFC4005) maps RADIUS messages to/from Diameter AA-Request and AA-Answer message Use of RADIUS<->Diameter Translation Agents Diameter Tutorial - IETF67

Interoperability with RADIUS (Cont’d) Translations issues Diameter messages can be larger than maximum RADIUS packet Ongoing work Mapping of new RADIUS extension types to Diameter Diameter Tutorial - IETF67

Recent topics under discussion Usage of Nas-Port-Type and Service-Type vs. defining a new Application Id Use of zero(0) AppId for all base protocol messages Diameter Tutorial - IETF67

Diameter Tutorial - IETF67 End of Tutorial Thank You Diameter Tutorial - IETF67