Triangulation No of elements = 16 No of nodes = 13 No interior nodes = 5 No of boundary nodes = 8.
4. Clearwater on RINA• Microservices-based soluAons consist of Aers of nodes with communicaons...
Transcript of 4. Clearwater on RINA• Microservices-based soluAons consist of Aers of nodes with communicaons...
ClearwateronRINA
Ma#WilliamsMetaswitchNetworks
22February2018
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|1
Agenda
• Background• WhyRINA?
• RINAEnhancements
• RINAFutures• InterposerApproach(ifAme)
• PleaseaskquesAons!
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|2
Background
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|3
WhatisClearwater?
• AnimplementaAonofIMSbuiltusingwebdevelopmentmethodstoprovidevoice,videoandmessagingservicestomillionsofusers.
• ArchitectedfromthegroundupformassivelyscalabledeploymentswithinvirtualizedpublicorprivateelasAccomputeclouds.
• Combinestheeconomicsofover-the-top(OTT)styleserviceplaYormswiththestandardscomplianceandreliabilityexpectedoftelco-gradecommunicaAonsnetworksoluAons.
• Webservices-orienteddesignmakesitidealforinstanAaAonwithinNFV.
• Providedasopen-source(ProjectClearwater)andcommerciallymaintainedandsupportedvariant(ClearwaterCore)
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|4
TADHack&ARCFIRE“RINARumba”Challenge
• TADHacko Annualglobalhackathon(pluslocalminihackathons)
o Heldatsitesacrossworld,includingMadrid
o Generally,TelecomsapplicaAonfocus
• ARCFIRE“RINARumba”Challengeo “aTADHackapplicaAonworksacross3nodesconnectedthroughaRINAnetwork”
o IRATIandrliteimplementaAons–wechoserlite
• Teamof2overaweekend,madepossiblebyo Open-source
o Greatsupport
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|5
WhyRINA?
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|6
WhyRINA?
• Cleanslate–opportunitytoavoidneedforlotsof“work-arounds”inTCP/IP-basedsoluAono Servicediscovery–implementedthroughDNSSRV(orproprietary,e.g.servicemesh)
o Serverfailover–implementedatapplicaAonlevel
o AuthenAcaAonandencrypAon–usesTLS,butrequireslotsofapplicaAoninvolvement
o Head-of-lineblocking–solvedbySCTP(ifprotocolsupports),orusemulApleTCPconnecAons
o Policyenforcement–addressedbyfirewallingandIPToS/DSCP
o Mobility–e.g.asaddressedbyGTPinLTEEPC
• Networkmanagement–inparAcularinmulA-tenancysituaAons
• Performance(maybe)
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|7
RINAEnhancements
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|8
ProjectClearwaterArchitecture(pre-RINA)
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|9
• ProjectClearwater
• IMScore(+extras)
• Open-source(GPLv3)
ProjectClearwaterArchitecture(HTTPoverRINA)
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|10
• HTTPCliento libcurl
o “openconnecAon”hook
o overrideforRINA
o recv->read
o send->write
• HTTPServero libevhtp
o builtonlibevent
o registerforRINAevents
ProjectClearwaterArchitecture(SIPoverRINA)
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|11
• SIP(ClientandServer)o PJSIP
o pluggabletransports
o newRINAtransport
o recv->read
o send->write
• Sprouto Routeheaders
o transport=RINA
PrototypeDeployment
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|12
• AmazonAWS
• EC2t2.small
• Ubuntu• rlite• rlite-shim-udp4
ConfiguraNon
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|13
HTTPTraffic
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|14
SIP
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|15
RINAFutures
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|16
ProjectClearwater&ClearwaterCore
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|17
ProjectClearwaterOpensourceprojectFreelyavailable
Ac5velymaintained/supportedbycommunity
IMScore
(ParAal)HSS
XDMS
WebRTC
P-CSCF
Self-serviceportal
(Some)VoLTEMMTelTAS
RINA(prototype,viapatch)
ClearwaterCore
IMSCoreVNFHardened&testedbyMetaswitch
MaintainedandsupportedbyMetaswitch
I-CSCF
S-CSCF
BGCF
NotRINA(yet?)
OtherProtocolsoverRINA
• HTTPandSIPcannowbeoverRINA• Clearwateralsospeaks
o Externalo ENUM(DNS)
o toresolveTELURIstoSIPURIs
o Cx/DiametertotheHSS
o toretrievesubscriberdata
o Rf/DiametertotheCDF
o forofflinebilling
o Internalo Memcachedprotocol
o fordistributedstorage
o ThriqtoCassandra
o forsubscriberprofiles
o etcdprotocol
o forclusteredconfiguraAon
• Wouldneedthird-partyRINANEs
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|18
Fault-tolerantservers
• Clearwaterdividedintoo Statelesscomputeprocesses
o (Simple)statefuldatastoreprocesses
• Horizontallyscalable• Onfailureofacomputeprocess
o Routetoanother(idenAcal)process
• Onfailureofadatastoreprocesso Routetoabackup(replicated)process
• SupportedbyRINAarchitectureo …butnotyetimplementedinrlite
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|19
DatastoreProcessA
DatastoreProcessB
DatastoreProcessC
ComputeProcess1
ComputeProcess2
ComputeProcess3
Replicate
RINAviaServiceMesh?
• Microservices-basedsoluAonsconsistofAersofnodeswithcommunicaAonsbetweenthem
• ThesecommunicaAonsneedtoo discoverthecorrectnodestotalkto
o load-balancebetweenthem
o retryonfailure,backoffonoverload
o besecure.
• Mostmicroservicearchitecturesuseaservicemeshproxyforthis,e.g.o Linkerd
o IsAo
o Conduit
• (Currently,ClearwaterhasthisfuncAonbuiltintotheapplicaAonsthemselves)
• RINA-enablingaservicemeshproxy(DAF?)wouldo givenewmicroservicesthebenefitsofRINA
o avoidneedingtomodifythecode
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|20
InterposerApproach
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|21
BSDSockets/POSIX
BSDSockets/POSIXProcess
Kernellibc SystemCallsBSDSockets/POSIXCalls
BSDSockets/POSIX
BSDSockets/POSIXProcess
Kernellibc SystemCalls
gethostbyname
socket
connect
read/writeorsend/recv
librina
RINAProcess Kernellibc SystemCalls
librina-api
rina_open
rina_register
rina_flow_alloc
read/write
RINAInterposer
BSDSockets/POSIXProcess
Kernel
libc
RINAInterpose
r
librina-api
SystemCalls
gethostbyname
socket
connect
read/writeorsend/recv
IPsetupandread/write
RINAsetup
ConfigFiles
PrototypeinacNon…
$ 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
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|27
Startslideshowandclickheretoupdatefooter
MetaswitchNetworks|ProprietaryandconfidenAal|©2018|28