I’ve been spending some time looking into Open/R, the distributed key/value store disguised as IP routing software developed by Facebook. If you haven’t heard about it watch Petr Lapukhov’s talk to learn about the story behind it as well as the technical details. Open/R was open sourced in November 2017, yet as of today Facebook’s own emulator is still to be released. Therefore I had to build a small lab environment to study the “live object”.
The nodes R1, R2, R3 (obviously) act as routers. The node named CMDR is the management station which has
breeze, Open/R’s management binary installed.
In this Bitbucket repo you can find pre-compiled Open/R binaries along with the required libraries for Ubuntu 16.04 (all of this is based
on arbitrarily chosen commit
68c20f3fefd6ad8524ecf64c7c28303705ee136b). Also included is the Vagrantfile which provisions all the VMs like in the diagram above. Open/R config is provided as command line arguments via the file
For this to work you have to create three Host-Only networks in VirtualBox and edit the variables (
$segment_a etc.) so the names fit to your local environment. Please note that I had to install the vagrant plugin
vagrant-vbguest to get shared folders to work which may or may not be dependent on your OS, VirtualBox version etc.)
After provisioning and launching the VMs using
vagrant up --parallel enter CMDR’s shell using
vagrant ssh CMDR.
From there you can interact with the routers using their hostname like this
vagrant@CMDR:~$ breeze --host r01 kvstore nodes Node V6-Loopback V4-Loopback ------ --------------------------------- ------------- * R01 2001:db8:ffff:ffff::4b4a:a633/128 N/A > R02 2001:db8:ffff:ffff::98f:76a0/128 N/A > R03 2001:db8:ffff:ffff::4a9:6c08/128 N/A
Open/R is incredibly well documented so if you got this far you will certainly find your way around. If you try it out I’d certainly be interested in hearing about your use-cases and overall experiences with this software.