goSDN
is a prototypical approach to build a model driven multi-vendor SDN controller.
Table of Contents
Overview
goSDN
is also an application that will allow you to manage your multi-vendor network using one unified controller.
goSDN
provides:
- Model driven device representation
- Native multi vendor support
- Multi controller environments
Concepts
The goSDN
core - also called nucleus
- is a lightweight library that manages principal network domains and provides southbound interface operations for orchestrated networking devices.
Principal Networking Domain (PND)
The PND is the single source of truth within a network. Its state is held and maintained by the controller. Any configuration of an OND has to be applied by the PND.
Orchestrated Networking Device (OND)
Any device directly configured by goSDN
Installing
You can install the latest release of goSDN
locally using the go get
command. Since the repository and some dependencies are not publicly available you have to modify your git config first:
> git config --global url."git@code.fbi.h-da.de:".insteadOf "https://code.fbi.h-da.de"
> go env -w GOPRIVATE=code.fbi.h-da.de/cocsn/*
> go get code.fbi.h-da.de/danet/gosdn/cmd/gosdn
To install the development version you need to clone the repo and use go install
to build and install the binary:
# If you haven't cloned the repo yet
> git config --global url."git@code.fbi.h-da.de:".insteadOf "https://code.fbi.h-da.de"
> go env -w GOPRIVATE=code.fbi.h-da.de/cocsn/*
> cd $GOPATH/src
> git clone git@code.fbi.h-da.de:cocsn/gosdn.git
# checkout the develop branch (or any other branch)
> cd $GOPATH/src/code.fbi.h-da.de/danet/gosdn
> git checkout develop
> go install ./cmd/gosdn
Now you can start goSDN
locally using the gosdn
command or use the CLI to interact with a running goSDN
instance.
Getting Started
k8s
We have an instance of goSDN
for each the latest master and current develop branch running on the department's k8s cluster. These endpoints can be accessed using the gosdn cli
command. If anything breaks please file an issue.
Using the CLI
The CLI for goSDN is provided as the separate gosdnc
application.
Please refer to the README there.
CI Status
Master | Develop |
---|---|