160 likes | 260 Vues
This presentation, led by Bas van Oudenaarde from the Advanced Internet Research Group at the University of Amsterdam, provides an overview of the first-phase prototype of a Bandwidth on Demand (BoD) server based on the Generic Authentication, Authorization, and Accounting (AAA) framework. Rather than focusing on code, the talk highlights the concepts and models behind the implementation. Key topics include the server architecture, driving policies, ASM interactions, XML/SOAP messaging, and future developments in enhancing modular API interfaces for authorization across multi-administrative domains.
E N D
PART II BoD server prototype Implementation & technical details MB-NG workshop@UCL 20/21 - Feb - 2003 Bas van Oudenaarde Advanced Internet Research Group University of Amsterdam oudenaar@science.uva.nl
What to expect from this presentation • Not a code walk, but highlight used concepts, model used behind • Our first phase prototype of a BoD server ( based on Generic AAA) • Giving an overview for DEMO • Learn the details on building block of BoD server
Generic AAA: • AAA Server: may be involved in: Authorization, Authentication, Accounting • AAA request < > Driving Policy • Behavior of the generic part is determined by the combination of Driving policies, ASMs and AAA requests
“AAA protocol” > BoD request msg AAA client entity Service handler authZ serv serv policy AAA ASM client entity Service handler authZ Serv* Serv* serv policy
BoD request msg, using XML,SOAP <AAARequest version="0.1" type="BoD" > <Authorization> <credential> <credential_type>simple</credential_type> <credential_ID>JanJansen</credential_ID> <credential_secret>#f034d</credential_secret> </credential> </Authorization> <BodData> <Source>192.168.1.2</Source> <Destination>192.168.1.5</Destination> <Bandwidth>1000</Bandwidth> <StartTime>now</StartTime> <Duration>20</Duration> </BodData> </AAARequest> authZ Serv*
Servlet in TOMCAT: Using JAXM API public class AAAServlet extends JAXMServlet implements ReqRespListener { private RBE theRBE; … public SOAPMessage onMessage( SOAPMessage message ) { … try { theRBE.parse( request, out ); << message check (DTD) + Policy fetch } catch( Exception ex ) { return error( ex.getMessage( ) ); } return createResponse( bout ); … }
Some details: • Servlet Context • used to initiate the RBE, ASMs • Java Reflection • list methods of Object (ASMs)
Driving Policy: • IF - THEN -ELSE structure if ( ASM::Authorization.authorize( << C++ like namespace Request::Authorization.credential.credential_type, Request::Authorization.credential.credential_ID, Request::Authorization.credential.credential_secret ) ) Then * could work with simple data ( types if ( ASM::RM.CheckConnection( Request::BodData.Source, Request::BodData.Destination ) • Input for the Policy Objects, Javacc to serialize / used in Policy fetch
ASM overview: • For the BoD service we implemented: • Resource Manager (RM) ASM • (hardcoded) Network topology, state of network elements • Switch ASM • SNMP interface dealing with 802.1Q • Authorization ASM • Authorization mechanism
RM ASM, BoD method: • public int BoD( String IPsrc, String IPdst, int size, String t, int dur ){ • Full control model • Network element modeled as vertex with edges. State is updated in vertex. (link usage ) • using backtracking algorithm to find path ( recursive ) • collecting provisioning information, like VLAN id, ports etc • }
Switch ASM, provisioning: /* (Single domain) Add port (+ Trunk) in VLAN. * * Cabletron ss6000 switch uses SNMP table: * ctVlanPortConfigTable * OID = "1.3.6.1.4.1.52.4.1.2.16.3.1.1" * OID.c.I1.I2 ( c= column, I1 index 1, I2 index 2 ) * */ public void setupPath( int port, int vid ) throws IOException, SnmpDecodeException,SnmpResponseException { // Setup connection SnmpPeer peer = new SnmpPeer("localhost", InetAddress.getByName( host ), SMI.PUBLIC ); SnmpConnection connection = new SnmpConnection(peer); // OID ….
Authorized path discovery • QoS path through multiple administrative domains • AAA servers > Mechanism for advertising the connections they can establish • Start with simplest QoS path > Full Control model • Logical network link iso physical network link • Decision tree for authorization of QoS elements
Authorization interactions: N0 N1 N2 Nn D1 D0 D0 l0,1 l2,n AAA1,2 AAA1 AAA2 AAA0
Future of AAA: • Porting J2EE environment • robust & scalable Runtime environment • Focusing on AAA concepts • developing generic RBE <-> ASM interface • Still in progress…. :( • Collaboration in developing an generic ASM interface, • policy definitions, etc
Idea’s AAA in J2EE: ASMs api J2EE web EJB Container BoDreq switch1 switch2 JCA Resource Adapters ASM*
Conclusions • Our focus is on authorization in multi administrative domains • The ASMs need to interface services, we need to provide a generic API • Collaborations DEMO-TIME !!!