Skip to content

Official repository for BSec-NFVO, a Network Function Virtualization orchestration tool mantained by GTA/UFRJ.

License

Notifications You must be signed in to change notification settings

gfrebello/bsec-nfvo

Repository files navigation

BSec-NFVO

Official repository for BSec-NFVO, a Network Function Virtualization orchestration tool mantained by GTA/UFRJ.

Installation

The BSec-NFVO orchestration tool is built on top of the Open Platform for Network Function Virtualization (OPNFV) and a main server written with the Django Python framework. We need to install both modules to make the tool operational.

Installing OPNFV

OPNFV is a cloud operating system platform mantained by the Linux Foundation that provides the tools for the NFV orchestration BSec-NFVO is based upon. To install it, please read the official documentation for its current relase. We recommend the deployment through Fuel as it is easier to debug and it has a graphical installation tool. The hardware requirements for a minimum OPNFV environment deployment through Fuel are:

  • 1 Fuel Master node
    • CPU: Dual-core
    • RAM: 2GB
    • Disk: 50GB per node
    • NIC: 1 Gigabit network port
  • 1 Controller node
    • CPU: 1 socket x86_AMD64 with Virtualization support
    • RAM: 16GB per server (Depending on VNF work load)
    • Disk: 256GB 10kRPM spinning disks
  • 1 Compute node
    • CPU: 1 socket x86_AMD64 with Virtualization support
    • RAM: 16GB/server (Depending on VNF work load)
    • Disk: 256GB 10kRPM spinning disks
  • Networks
    • 4 Tagged VLANs (PUBLIC, MGMT, STORAGE, PRIVATE)
    • 1 Un-Tagged VLAN for PXE Boot - ADMIN Network Note: These can be allocated to a single NIC - or spread out over multiple NICs as your hardware supports.

BSec-NFVO was originally developed in a 4-node deployment (1 controller node, 3 compute nodes) of OPNFV Danube 3.0 and it should be compatible with previous and future releases.

Installing BSec-NFVO

BSec-NFVO itself is written in Python and uses the Django framework to build its interface and main server. To install the tool simply clone the git repository:

 git clone https://github.com/gfrebello/bsec-nfvo.git

And install its dependencies with pip:

cd ./bsec-nfvo
pip install -r requirements.txt

If you are running Python < 2.7.9 and don't have pip installed, check its installation guide. By running these simple commands, you should have a full installation of BSec-NFVO.

Configuring and running BSec-NFVO locally

BSec-NFVO is designed to be used in a distributed scenario where different modules run on different hosts. However, the easiest and fastest way to deploy is by instantiating everything locally. This section shows BSec-NFVO's simplest form of deployment. For advanced features, please refer to ().

After OPNFV is up and running and the the BSec-NFVO installation setup is done, we need to configure our orchestrator and initialize our blockchain modules. First, we should define the OPNFV controller IP and the port for communication between the modules (2346 by default). Make sure the port you choose is available and not being blocked by any sort of firewall.

On orchestrator/orchestrator.py:

PORT = 2346

On backChain/config.py:

RPC_IP = '<your_controller_ip'>
RPC_PORT = 2346

Then, put the orchestrator file inside the node controller and run it in a Python console:

scp orchestrator.py root@<controller IP>:~/
ssh root@<controller IP>
screen python
>>> from orchestrator import *
>>> main()

Note: Because we are connecting remotely to the controller, the screen package is used as a way to keep the orchestrator running if the ssh connection is lost. Using simply python would have been enough if we had physical access to the controller's terminal.

Now, on your local machine, run the blockchain chain node that will store our sensitive commands.

screen python
>>> from backChain.chainNode import *
>>> main()

Detatch from the screen with Ctrl+A then Ctrl+D and intialize the blockchain client module:

screen python
>>> from backChain.managementClient import *
>>> main()

Note: The use of screen here is once again a way to simplify our deployment. This is equivalent to running the Python consoles on two bash terminals.

By default, BSec-NFVO ships with a key pair that the blockchain client module uses to sign its transactions. If you want to generate your own key pair or define custom configurations, please refer to the BSec-NFVO advanced page.

Finally, add your hostname to ALLOWED_HOSTS in maestro/settings.py and start BSec-NFVO's main server with:

python manage.py runserver 0.0.0.0

You should now see an authentication screen on http://localhost/dashboard. Register yourself and enjoy BSec-NFVO!

About

Official repository for BSec-NFVO, a Network Function Virtualization orchestration tool mantained by GTA/UFRJ.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published