Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

4. Clearwater on rina

210 views

Published on

Clearwater is an open-source, cloud-native IMS implementation that runs on top of TCP/IP. This demo will show how some of its components (internal HTTP communication) have been ported to the RINA API and can now run over RINA. It will also discuss how the full project could be ported to RINA, and what simplifications would be achieved from doing so.

Published in: Internet
  • Be the first to comment

  • Be the first to like this

4. Clearwater on rina

  1. 1. Clearwater on RINA Matt Williams Metaswitch Networks 22 February 2018 Metaswitch Networks | Proprietary and confidential | © 2018 | 1
  2. 2. Agenda • Background • Why RINA? • RINA Enhancements • RINA Futures • Interposer Approach (if time) • Please ask questions! Metaswitch Networks | Proprietary and confidential | © 2018 | 2
  3. 3. Background Metaswitch Networks | Proprietary and confidential | © 2018 | 3
  4. 4. What is Clearwater? • An implementation of IMS built using web development methods to provide voice, video and messaging services to millions of users. • Architected from the ground up for massively scalable deployments within virtualized public or private elastic compute clouds. • Combines the economics of over-the-top (OTT) style service platforms with the standards compliance and reliability expected of telco-grade communications network solutions. • Web services-oriented design makes it ideal for instantiation within NFV. • Provided as open-source (Project Clearwater) and commercially maintained and supported variant (Clearwater Core) Metaswitch Networks | Proprietary and confidential | © 2018 | 4
  5. 5. TADHack & ARCFIRE “RINA Rumba” Challenge • TADHack o Annual global hackathon (plus local mini hackathons) o Held at sites across world, including Madrid o Generally, Telecoms application focus • ARCFIRE “RINA Rumba” Challenge o “a TADHack application works across 3 nodes connected through a RINA network” o IRATI and rlite implementations – we chose rlite • Team of 2 over a weekend, made possible by o Open-source o Great support Metaswitch Networks | Proprietary and confidential | © 2018 | 5
  6. 6. Why RINA? Metaswitch Networks | Proprietary and confidential | © 2018 | 6
  7. 7. Why RINA? • Clean slate – opportunity to avoid need for lots of “work-arounds” in TCP/IP-based solution o Service discovery – implemented through DNS SRV (or proprietary, e.g. service mesh) o Server failover – implemented at application level o Authentication and encryption – uses TLS, but requires lots of application involvement o Head-of-line blocking – solved by SCTP (if protocol supports), or use multiple TCP connections o Policy enforcement – addressed by firewalling and IP ToS/DSCP o Mobility – e.g. as addressed by GTP in LTE EPC • Network management – in particular in multi-tenancy situations • Performance (maybe) Metaswitch Networks | Proprietary and confidential | © 2018 | 7
  8. 8. RINA Enhancements Metaswitch Networks | Proprietary and confidential | © 2018 | 8
  9. 9. Project Clearwater Architecture (pre-RINA) Metaswitch Networks | Proprietary and confidential | © 2018 | 9 • Project Clearwater • IMS core (+ extras) • Open-source (GPLv3)
  10. 10. Project Clearwater Architecture (HTTP over RINA) Metaswitch Networks | Proprietary and confidential | © 2018 | 10 • HTTP Client o libcurl o “open connection” hook o override for RINA o recv -> read o send -> write • HTTP Server o libevhtp o built on libevent o register for RINA events
  11. 11. Project Clearwater Architecture (SIP over RINA) Metaswitch Networks | Proprietary and confidential | © 2018 | 11 • SIP (Client and Server) o PJSIP o pluggable transports o new RINA transport o recv -> read o send -> write • Sprout o Route headers o transport=RINA
  12. 12. Prototype Deployment Metaswitch Networks | Proprietary and confidential | © 2018 | 12 • Amazon AWS • EC2 t2.small • Ubuntu • rlite • rlite-shim-udp4
  13. 13. Configuration Metaswitch Networks | Proprietary and confidential | © 2018 | 13
  14. 14. HTTP Traffic Metaswitch Networks | Proprietary and confidential | © 2018 | 14
  15. 15. SIP Metaswitch Networks | Proprietary and confidential | © 2018 | 15
  16. 16. RINA Futures Metaswitch Networks | Proprietary and confidential | © 2018 | 16
  17. 17. Project Clearwater & Clearwater Core Metaswitch Networks | Proprietary and confidential | © 2018 | 17 Project Clearwater Open source project Freely available Actively maintained/supported by community IMS core (Partial) HSS XDMS WebRTC P-CSCF Self-service portal (Some) VoLTE MMTel TAS RINA (prototype, via patch) Clearwater Core IMS Core VNF Hardened & tested by Metaswitch Maintained and supported by Metaswitch I-CSCF S-CSCF BGCF Not RINA (yet?)
  18. 18. Other Protocols over RINA • HTTP and SIP can now be over RINA • Clearwater also speaks o External o ENUM (DNS) o to resolve TEL URIs to SIP URIs o Cx/Diameter to the HSS o to retrieve subscriber data o Rf/Diameter to the CDF o for offline billing o Internal o Memcached protocol o for distributed storage o Thrift to Cassandra o for subscriber profiles o etcd protocol o for clustered configuration • Would need third-party RINA NEs Metaswitch Networks | Proprietary and confidential | © 2018 | 18
  19. 19. Fault-tolerant servers • Clearwater divided into o Stateless compute processes o (Simple) stateful datastore processes • Horizontally scalable • On failure of a compute process o Route to another (identical) process • On failure of a datastore process o Route to a backup (replicated) process • Supported by RINA architecture o …but not yet implemented in rlite Metaswitch Networks | Proprietary and confidential | © 2018 | 19 Datastore Process A Datastore Process B Datastore Process C Compute Process 1 Compute Process 2 Compute Process 3 Replicate
  20. 20. RINA via Service Mesh? • Microservices-based solutions consist of tiers of nodes with communications between them • These communications need to o discover the correct nodes to talk to o load-balance between them o retry on failure, back off on overload o be secure. • Most microservice architectures use a service mesh proxy for this, e.g. o Linkerd o Istio o Conduit • (Currently, Clearwater has this function built into the applications themselves) • RINA-enabling a service mesh proxy (DAF?) would o give new microservices the benefits of RINA o avoid needing to modify the code Metaswitch Networks | Proprietary and confidential | © 2018 | 20
  21. 21. Interposer Approach Metaswitch Networks | Proprietary and confidential | © 2018 | 21
  22. 22. BSD Sockets/POSIX BSD Sockets/ POSIX Process Kernellibc System CallsBSD Sockets/POSIX Calls
  23. 23. BSD Sockets/POSIX BSD Sockets/ POSIX Process Kernellibc System Calls gethostbyname socket connect read/write or send/recv
  24. 24. librina RINA Process Kernellibc System Calls librina- api rina_open rina_register rina_flow_alloc read/write
  25. 25. RINA Interposer BSD Sockets/ POSIX Process Kernel libc RINA Interpose r librina- api System Calls gethostbyname socket connect read/write or send/recv IP setup and read/write RINA setup Config Files
  26. 26. Prototype in action… $ RINA_DIF=normal.DIF RINA_LOCAL_APPL=nc RINA_REMOTE_APPL=homestead-server LD_PRELOAD=$(pwd)/libinterposer.so nc 5.6.7.8 5678 socket(2, 1, 6)... RINA_DIF=normal.DIF, RINA_LOCAL_APPL=nc => RINA interposer enabled! rina_open()... ...returns 3 ...returns 3 connect(3, 0xed5270, 16)... RINA_DIF=normal.DIF, RINA_LOCAL_APPL=nc, RINA_REMOTE_APPL=homestead- server => RINA interposer enabled! rina_flow_alloc("normal.DIF", "nc", "homestead-server", NULL, 0)... ...returns 0 ...returns 0
  27. 27. Metaswitch Networks | Proprietary and confidential | © 2018 | 27
  28. 28. Start slideshow and click here to update footer Metaswitch Networks | Proprietary and confidential | © 2018 | 28

×