Skip to content

SDN based Distributed Virtual Router for OpenStack Neutron

License

Notifications You must be signed in to change notification settings

Benny93/dragonflow

 
 

Repository files navigation

# FORK NOTES EXPERIMENTAL FORK

Execution of test szenarios: - Test topologies in mininet/testbed* - Test controllers in dragonflow/tests/df_standalone

Example: - Startup controller1: vagrant up controller1 - Install requirements.txt and test-requirements.txt with pip. - Startup a Redis cluster (inside docker-redis-cluster folder): make run - Startup the switch (inside the mininet folder, mininet needs to be run as root): ./python-sudo testbed0/scratchnet_...ipv4.py - Startup the controller (starting l2_app_concept2.py): python2 dragonflow/tests/df_standalone/test_run_standalone.py

## Fixes - Fix for Redis to work with docker containers for testing:

```python
177: # FIX for work with docker redis cluster 178- # cluster nodes returns docker container ip 179- # This ip is not reachable from remote host 180- # Replacing containter IP with host ip 181- default_ip_port = self.redisMgt.keys()[0] 182- _, port = ip_port.split(':') 183- ip_default, _ = default_ip_port.split(':') 184- ip_port = "{}:{}".format(ip_default, port)

```

Team and repository tags

Distributed SDN-based Neutron Implementation

Solution Overview

Overview

Dragonflow implements Neutron using a lightweight embedded SDN Controller.

Our project mission is to Implement advanced networking services in a manner that is efficient, elegant and resource-nimble

Distributed Dragonflow

Comprehensive agentless implementation of the Neutron APIs and advanced network services, such as fully distributed Switching, Routing, DHCP and more.

This configuration is the current focus of Dragonflow. Overview and details are available in the Distributed Dragonflow Section

Solution Overview

Mitaka Version Features

  • L2 core API

    IPv4, IPv6 GRE/VxLAN/STT/Geneve tunneling protocols L2 Population

  • Distributed L3 Virtual Router

  • Distributed DHCP

  • Distributed DNAT

  • Security Groups Using OVS and Connection tracking

  • Pluggable Distributed Database

    Supported databases:

    Stable:

    ETCD, RAMCloud, Redis, Zookeeper

    In progress:

    RethinkDB

  • Pluggable Publish-Subscribe

    ZeroMQ, Redis

  • Selective DB Distribution

    Tenant Based Selective data distribution to the compute nodes

Experimental Mitaka Features

  • Local Controller Reliability

In progress

  • IGMP Distributed application
  • Allowed Address Pairs
  • Port Security
  • DHCP DOS protection
  • Distributed Meta Data Service
  • Kuryr integration
  • Local Controller HA
  • ML2 Driver, hierarchical Port Binding
  • VLAN L2 Networking support
  • Smart broadcast/multicast

In planning

  • Distributed Load Balancing (East/West)
  • DNS service
  • Port Fault detection
  • Dynamic service chaining (service Injection)
  • SFC support
  • Distributed FWaaS
  • Distributed SNAT
  • VPNaaS

Configurations

To generate the sample dragonflow configuration files, run the following command from the top level of the dragonflow directory:

tox -e genconfig

If a 'tox' environment is unavailable, then you can run the following script instead to generate the configuration files:

./tools/generate_config_file_samples.sh

About

SDN based Distributed Virtual Router for OpenStack Neutron

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 95.0%
  • Shell 4.4%
  • Other 0.6%