ComparloCategory: TechnologyWhat is the difference between OVSDB and XMPP?
Faisal Abdul Gaffoor asked 1 year ago

{“lhsI”:”OVSDB”,”rhsI”:”XMPP”}

1 Answers
Best Answer
Karim Okasha, Network Consultant, Cloud and SDN Enthusiast answered 1 year ago

[{“cellsNumber”:2,”row”:”History”,”lhsI”:”OVSDB%20which%20stands%20for%20%3Cstrong%3EOpen%20vSwitch%20Database%20Management%20Protocol%3C/strong%3E%20is%20a%20protocol%20that%20was%20originally%20designed%20specifically%20to%20mange%20Open%20vSwitch%20%28OVS%29%20in%20virtualized%20environment.%20In%20a%20typical%20OVS%20deployment%20setup%20the%20OpenFlow%20protocol%20is%20used%20to%20program%20the%20forwarding%20table%20of%20the%20OVS%20while%20the%20OVSDB%20is%20used%20to%20manage%20the%20configuration%20of%20the%20OVS%20%28define%20QOS%2C%20adding/deleting%20ports%29.%20The%20below%20diagram%20outline%20the%20interactions%20between%20the%20OVSDB%20and%20OpenFlow%20in%20a%20typical%20OVS%20setup%20with%20SDN%20Controller.%3Cbr%20/%3E%3Cbr%20/%3E%3Cimg%20style%3D%22width%3A%20100%25%3B%20height%3A%20auto%3B%22%20src%3D%22../../wp/wp-content/plugins/custom-qa/images/image_1509180180.png%22%20alt%3D%22%22%20/%3E%3Cbr%20/%3E%3Cbr%20/%3EIn%20simple%20terms%20we%20can%20think%20of%20the%20OVSDB%20as%20a%20lightweight%20protocol%20that%20is%20used%20to%20update/query%20databases%20%28tables%29%20located%20on%20the%20OVS%20to%20modify%20the%20configuration%20of%20the%20OVS%20and%20read%20statistics%20from%20the%20OVS.”,”rhsI”:”XMPP%20which%20stands%20for%20%3Cstrong%3EExtensible%20Messaging%20and%20Presence%20Protocol%3C/strong%3E%20was%20originally%20designed%20by%20the%20Jabber%20open%20source%20community%20to%20be%20used%20for%20Instant%20messaging%20application%20%28IM%29%20and%20voice%20and%20video%20applications.%3Cbr%20/%3E%3Cbr%20/%3EIt%20allows%20for%20exchange%20of%20structured%20yet%20extensible%20data%20between%20clients%20and%20servers.%20it%20is%20based%20on%20XML%20to%20carry%20the%20information%20exchanged%20between%20the%20network%20nodes.”},{“cellsNumber”:2,”row”:”Encoding and Transport protocol”,”lhsI”:”OVSD%20is%20carried%20over%20TCP%20and%20it%20uses%20port%206640%20used%20by%20the%20OVSDB%20server.%20It%20uses%20JSON%20to%20encode%20the%20data%20exchanged%20between%20the%20controller%20and%20the%20OVSDB%20server.”,”rhsI”:”XMPP%20is%20carried%20over%20TCP%20and%20the%20port%20used%20by%20XMPP%20client%20is%205222%20and%20the%20Port%20used%20by%20XMPP%20server%20is%205269.%20XMPP%20uses%20XML%20to%20encode%20the%20data%20exchanged%20between%20the%20clients%20and%20servers.”},{“cellsNumber”:2,”row”:”Standard”,”lhsI”:”The%20protocol%20was%20initially%20specified%20as%20part%20of%20the%20Open%20vSwitch%20project.%20however%20in%20a%20later%20phase%20an%20Informational%20RFC%20%28RFC%207047%29%20was%20produced%20by%20the%20IETF%20to%20standardize%20the%20protocol.%20The%20RFC%20defines%20the%20operations%20that%20can%20be%20carried%20our%20on%20the%20OVSDB%20database%2C%20however%20it%20doesn%27t%20define%20the%20structure/Schema%20of%20the%20database.”,”rhsI”:”The%20protocol%20as%20adopted%20by%20IETF%20in%202004%20and%20was%20initially%20standardized%20under%20RFC%203920%2C%20RFC%203921%20%2C%20RFC%203922%20and%20RFC%203923.%20However%20all%20these%20standard%20where%20superseded%20by%26nbsp%3BRFC%206120%20%28XMPP%20Core%29%20and%20RFC%206121%20%28XMPP%20IM%29%20and%20RFC%207622%20%28XMPP%20address%20format%29.”},{“cellsNumber”:2,”row”:”SDN Context”,”lhsI”:”Initially%2C%20OVSDB%20started%20as%20a%20%3Cstrong%3Esouthbound%20protocol%3C/strong%3E%20%28Management%20protocol%29%20used%20to%20manage%20the%20OVS%20in%20a%20virtualized%20environments.%20However%2C%20many%20vendors%20started%20to%20adopt%20OVSDB%20as%20a%20%3Cstrong%3Esouthbound%20protocol%3C/strong%3E%20between%20the%20SDN%20Controller%20and%20the%20hardware%20switches%20in%20the%20DC%20in%20a%20typical%20VXLAN%20Overlay%20network%20designs%20as%20both%20a%20control%20plane%20and%20management%20plane%20protocol%20to%20control%20the%20Hardware%20VTEP%20deployed%20on%20their%20Physical%20switches.”,”rhsI”:”In%20the%20SDN%20world%2C%20many%20vendors%20started%20exploring%20the%20use%20of%20XMPP%20as%20a%20%3Cstrong%3Esouthbound%20protocol%3C/strong%3E%20between%20the%20SDN%20controller%20and%20the%20network%20nodes%20to%20exchange%20both%20control%20plane%20%28like%20reachability%20information%29%20and%20management%20plane%20information%20%28like%20port%20configuration%29.”},{“cellsNumber”:2,”row”:”Deployment Examples”,”lhsI”:”As%20described%20above%2C%20OVSDB%20is%20considered%20a%20southbound%20protocol%20used%20between%20the%20SDN%20Controller%20and%20the%20%3Cstrong%3EOVS%3C/strong%3E%20in%20a%20typical%20OVS%20deployment%20setup.%20the%20SDN%20Controller%20can%20be%20%3Cstrong%3EOpenDaylight%3C/strong%3E%20or%20%3Cstrong%3EONOS%2C%3C/strong%3E%26nbsp%3BOVSD%20in%20this%20setup%20is%20used%20as%20a%20%3Cstrong%3Emanagement%20protocol%3C/strong%3E%20used%20by%20the%20SDN%20Controller%20to%20manage%20the%20OVS%20to%20perform%20the%20following%20actions%3A%3Cbr%20/%3E%3Cbr%20/%3E%0A%3Cul%3E%0A%3Cli%3ECreate%20new%20bridges%20on%20the%20OVS%20switch.%3C/li%3E%0A%3Cli%3Ecreate%2C%20modify%20and%20delete%20ports%20connected%20to%20the%20OVS.%3C/li%3E%0A%3Cli%3Econfigure%20Queues%20and%20QOS%20policies.%3C/li%3E%0A%3Cli%3ECollecting%20statistics%20from%20the%20OVS.%3C/li%3E%0A%3C/ul%3E”,”rhsI”:”In%20order%20to%20illustrate%20the%20use%20of%20XMPP%20in%20a%20typical%20SDN%20Solution%2C%20we%20will%20discuss%20the%20use%20of%20XMPP%20in%20an%3Cstrong%3E%20OpenContrail%3C/strong%3E%20deployment.%20In%20OpenContrail%20the%20XMPP%20is%20used%20between%20the%20SDN%20Controller%20and%20the%20distributed%20virtual%20switches%20on%20the%20hypervisors%20%28vRouter%29%20to%20perform%20two%20main%20tasks%3Cbr%20/%3E%3Cbr%20/%3E%0A%3Cul%3E%0A%3Cli%3E%3Cstrong%3Econtrol%20plane%20part%3C/strong%3E%2C%20where%20the%20XMPP%20is%20used%20as%20a%20light%20weight%20control%20plane%20to%20replace%20BGP%26nbsp%3B%20on%20the%20vRouter%2C%20so%20all%20the%20BGP%20information%20%28EVPN%20or%20L3VPN%29%20are%20encoded%20in%20XMPP%20messages%20and%20sent%20from%20the%20controller%20to%20the%20vRouter%20to%20enforce%20the%20correct%20forwarding%20decision%20on%20the%20vRouter.%3C/li%3E%0A%3C/ul%3E%0A%3Cul%3E%0A%3Cli%3E%3Cstrong%3EManagement%20plane%20part%2C%26nbsp%3B%3C/strong%3Ewhere%20the%20XMPP%20is%20also%20used%20a%20light%20weight%20management%20protocol%20to%20configure%20the%20virtual%20ports%20on%20the%20vRouter%20and%20correctly%20assign%20it%20to%20the%20correct%20VRF%20and%20VLAN%20on%20the%20vRouter.%3C/li%3E%0A%3C/ul%3E”},{“cellsNumber”:2,”row”:”Deployment Example 2″,”lhsI”:”In%20other%20SDN%20Deployment%20it%20is%20used%20as%20a%20southbound%20protocol%20to%20provide%20both%20a%20control%20plane%20and%20management%20plane%20functionality.%20For%20example%2C%20in%20an%20%3Cstrong%3EOpenContrail%3C/strong%3E%20deployment%20setup%2C%20the%20Controller%20uses%20OVSDB%20to%20manage%20the%20Hardware%20VTEP%20%28VXLAN%20Tunnel%20End%20Point%29%20configured%20on%20the%20hardware%20switch%20in%20a%20overlay%20VXLAN%20network%20setup.%20In%20this%20designs%20the%20OVSDB%20is%20performing%20two%20functions.%3Cbr%20/%3E%3Cbr%20/%3E%0A%3Cul%3E%0A%3Cli%3E%3Cstrong%3EControl%20plane%2C%3C/strong%3E%20were%20the%20SDN%20Controller%20maps%20the%20remote%20MAC%20to%20remote%20VTEPs%20on%20the%20correct%20OVSDB%20table/database%2C%20and%20this%20information%20is%20used%20to%20program%20hardware%20switch%20forwarding%20table.%20Also%20it%20uses%20OVSD%20to%20read%20the%20local%20MAC%20address%20learned%20on%20each%20physical%20port%20to%20map%20them%20to%20the%20correct%20VLXAN%20segment.%3C/li%3E%0A%3C/ul%3E%0A%3Cul%3E%0A%3Cli%3E%3Cstrong%3EManagement%20Plane%3C/strong%3E%2C%20were%20the%20SDN%20Controller%20configure%20the%20VLAN%20to%20VXLAN%20mapping%20on%20the%20switch.%3C/li%3E%0A%3C/ul%3E”,”rhsI”:””}]