1 / 22

WIDE Diameter An Implementation of DIAMETER Library

WIDE Diameter An Implementation of DIAMETER Library. Keio University Teraoka-lab Yoshihiko Kainuma. What is DIAMETER. What is DIAMETER. One of the AAA protocols (refer to RFC 3588) DIAMETER provides following facilities Delivery of AVPs

yvonne
Download Presentation

WIDE Diameter An Implementation of DIAMETER Library

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. WIDE DiameterAn Implementation of DIAMETER Library Keio University Teraoka-lab Yoshihiko Kainuma

  2. What is DIAMETER

  3. What is DIAMETER • One of the AAA protocols (refer to RFC 3588) • DIAMETER provides following facilities • Delivery of AVPs • Extensibility, through addition of new commands and AVPs • Capability negotiation • CER/CEA message • Each node can know what application can be used • Error notification • DWR/DWA message • Each node can detect whether connection is available

  4. DIAMETER agents • DIAMETER has some kinds of agents ⇒For distribution of system administration and load balancing • Relay agent • route messages to other DIAMETER nodes • Proxy agent • route messages to other DIAMETER nodes • modify messages to implement policy enforcement • Redirect agent • return information necessary for DIAMETER nodes to communicate directly

  5. Relay, Proxy agent • When client in example.com sends message to server in example.net Pass messages to application Node B Node C DIAMETER server DIAMETER Proxy agent DIAMETER Relay agent Realm-based routing table -Realm name: example.net -Server name: C Peer table -Peer name: A -Peer name: C Node A Realm-based routing table -Realm name: example.net -Server name: B Peer table -Peer name: B DIAMETER client example.com example.net

  6. Redirect agent • When client in example.com sends message to server in example.net Realm-based routing table -Realm name: example.net -Server name: D Peer table -Peer name: B Node C DIAMETER Redirect agent Realm-based routing table -Realm name: * -Server name: C Peer table -Peer name: A -Peer name: C -Peer name: D Node B Node D DIAMETER Relay agent DIAMETER server Realm-based routing table -Realm name: example.net -Server name: B Peer table -Peer name: B Node A DIAMETER client example.com example.net

  7. Routing function • Realm-based routing • Realm-based routing table • The list of first-hop nodes for sending messages to specific realm • Peer table • The list of nodes with which the node can directly communicate • This table is used for forwarding messages

  8. Specification of WIDE Diameter

  9. What is WIDE Diameter • Library based on following documents • draft-ietf-aaa-diameter-api-04.txt • draft-frascone-aaa-xml-dictionary-00.txt • Supporting facilities • Realm-based routing • Maintenance of connection • Creating messages • Passing messages to application

  10. Maintenance of connection • Maintain connection using three threads • Main thread • Parent thread of all other threads • Peer thread • Runs per peer • Makes socket and communicates with peer using this socket • Listener thread • Listens to the “connect” request from other peer

  11. Thread construction • In the case of Diameter EAP application EAP server EAP client Application part Application part Processing messages Processing messages peer thread listener thread listener thread peer threads main thread main thread Library part Library part

  12. Creating messages • Request • Request flag is on • Read AVPs from dictionary file • Read AVP’s default value from dictionary file • Response • Copy request message • Request flag is off • Result code is set

  13. AVP AVP next prev next prev code type data … code type data … data data Message structure AAAMessage AVP list AVP (grouped) AVP AVP flags command Code vendor id result code originator sender AVP list proxy AVP Identifier … head tail next prev next prev next prev code type data … code type data … code type data … … data head tail data

  14. Passing messages to application • WIDE Diameter can instruct application how to process messages • Command callback list • Set action for specific command • Used by nodes on which Local action is set to “LOCAL” • Non command callback list • Set action for all messages • Used by nodes on which Local action is set to “PROXY”

  15. Callback list structure first last head cmd vendor ID cmd name ext ID function next cmd vendor ID cmd name ext ID function next cmd vendor ID cmd name ext ID function next … Command Callback first last head function next function next function next … NonCommand Callback

  16. Operation environment

  17. Environments • Operating system • FreeBSD • Tested on only 5.4-release • NetBSD • OpenBSD • Linux Fedora Core • Necessary library • libxml2 • Provides XML analysis function • refer to http://xmlsoft.org/

  18. Configuration files • There are two configuration files • They are XML based • Dictionary file • Fundamental definition • Common among whole system • Peer configuration file • Decides how each peer works • Defines available AVPs and routing information • Different from node to node

  19. Dictionary file • Defines Commands and AVPs • Command • Command name • Attachable AVPs • Request • Answer • AVP • AVP name • AVP code • Value type

  20. Peer configuration file • Consist of four parts • localconfig • Defines local action • avpconfig • Defines available AVPs • peerconfig • Defines peer information • Corresponds to Peer table • routingconfig • Defines routing information • Corresponds to Realm-based routing table

  21. Remainder • Port number • Must configure “/etc/services” (FreeBSD) • IANA assigned TCP port number 3868 • Name resolution • Configure “/etc/hosts” file (FreeBSD), or • Use DNS server • Log file • Output to “/tmp/diameter.log” (by default) • All errors are output to this file

  22. distribution • Released to Nautilus6 • BSD license • If there is anyone who wants to use WideDiameter, please tell us • We may not to be able to respond to any question

More Related