学习

OpenDaylight (ODL) is a modular open platform for customizing and automating networks of any size and scale. The OpenDaylight Project arose out of the SDN movement, with a clear focus on network programmability. It was designed from the outset as a foundation for commercial solutions that address a variety of use cases in existing network environments.

ONOS is the only SDN controller platform that supports the transition from legacy “brown field” networks to SDN “green field” networks. This enables exciting new capabilities, and disruptive deployment and operational cost points for network operators.

OpenStack Networking ("Neutron") Neutron is an OpenStack project to provide “networking as a service” between interface devices (e.g., vNICs) managed by other Openstack services (e.g., nova).

Open Virtual Network (OVN)is an Open vSwitch-based software-defined networking (SDN) solution for supplying network services to instances. OVN provides platform-agnostic support for the full OpenStack Networking API. OVN allows you to programmatically connect groups of guest instances into private L2 and L3 networks. OVN uses a standard approach to virtual networking that is capable of extending to other Red Hat platforms and solutions.

The Floodlight Open SDN Controlleris an enterprise-class, Apache-licensed, Java-based OpenFlow Controller. It is supported by a community of developers including a number of engineers from Big Switch Networks.

NOX POX Beacon Maestro Ryu

mininet ns-3 containernet

Tungsten Fabric

ONL(Open Network Linux)

ovs

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# checking for kernel version... 4.4.189
# configure: error: Linux kernel in /lib/modules/4.4.189-1.el7.elrepo.x86_64/build is version 4.4.189, but version newer than 4.3.x is not supported (please refer to the FAQ for advice)

wget https://www.openvswitch.org/releases/openvswitch-2.11.1.tar.gz
tar xvf openvswitch-2.11.1.tar.gz

./boot.sh
./configure --with-linux=/lib/modules/`uname -r`/build
make
# sudo make install
sudo make modules_install
sudo modprobe openvswitch

sudo yum install epel-release
sudo yum install python34
curl -O https://bootstrap.pypa.io/get-pip.py
sudo /usr/bin/python3.4 get-pip.py
sudo /usr/bin/python2 get-pip.py
sudo pip3 install six
sudo pip install six

sudo modprobe openvswitch
lsmod |grep openvs

openvswitch           290816  0
tunnel6                16384  1 openvswitch
nf_defrag_ipv6         20480  2 openvswitch,nf_conntrack_ipv6
nf_nat_ipv6            16384  2 openvswitch,ip6table_nat
nf_nat_ipv4            16384  2 openvswitch,iptable_nat
nf_nat                 28672  5 openvswitch,nf_nat_ipv4,nf_nat_ipv6,xt_nat,nf_nat_masquerade_ipv4
nf_conntrack          114688  10 ip_vs,openvswitch,nf_nat,nf_nat_ipv4,nf_nat_ipv6,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_netlink,nf_conntrack_ipv4,nf_conntrack_ipv6
libcrc32c              16384  4 xfs,ip_vs,dm_persistent_data,openvswitch


ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema
  • ovs-vswitchd 主要模块,实现switch的daemon,包括一个支持流交换的Linux内核模块
  • ovsdb-server 轻量级数据库服务器,提供ovs-vswitchd获取配置信息
  • ovs-brcompatd 让ovs-vswitch替换Linuxbridge,包括获取bridge ioctls的Linux内核模块
  • ovs-dpctl 用来配置switch内核模块
  • ovs-vsctl 查询和更新ovs-vswitchd的配置
  • ovs-appctl 发送命令消息,运行相关daemon
  • ovsdbmonitor GUI工具,可以远程获取OVS数据库和OpenFlow的流表
  • ovs-openflowd:一个简单的OpenFlow交换机
  • ovs-controller:一个简单的OpenFlow控制器
  • ovs-ofctl 查询和控制OpenFlow交换机和控制器
  • ovs-pki :OpenFlow交换机创建和管理公钥框架
  • ovs-tcpundump:tcpdump的补丁,解析OpenFlow的消息

网管协议

1
2
3
4
openflow & netconf(restconf) of-config & ovsdb & snmp
wget https://github.com/coredns/coredns/releases/download/v1.3.0/coredns_1.3.0_linux_amd64.tgz
curl -s -L git.io/corefile | bash
coredns -conf Corefile

参考