#CentOS on Mac#5.OpenVSwitch+mininet

本文介绍了如何在CentOS上安装OpenVSwitch 2.3.0,包括源码安装步骤和环境依赖,以及如何在mininet环境中应用OpenVSwitch进行网络控制,涉及端口操作、数据包处理和流表管理。
摘要由CSDN通过智能技术生成

OpenVSwitch

任务:
1.源码安装ovs
2.写基本的openflow条目控制网络包转发方向
3.minine环境下设计应用ovs

OpenVSwitch安装

Linux内核支持到4.1.25。
之前安装的是4.6.4
所以用系统原本的3.10.0

天才第一步:先好好看源码包里的README

下载源码

wget http://openvswitch.org/releases/openvswitch-2.0.1.tar.gz

这里写图片描述
!!注意!!下载前一定要了解自己内核支持的版本,这个在readme里都有写,切勿一味追求latest version

比如

ovs版本|系统内核
2.0.x | 2.6.32 to 3.10

解压

tar zxvf openvswitch-2.0.1.tar.gz

这里写图片描述

前期准备
1.确保OVS正确运行的环境依赖,切换至root用户

yum update
yum install -y build-essential (有则忽略)
yum -y install openssl-devel wget kernel-devel

这里写图片描述

这里写图片描述
要求如下(可以通过xxx –version)查询

gcc版本4.1或更高
pkg-config版本0.22或更高
autoconf版本2.64或更高
automake版本1.10或更高
m4版本1.42或更高
python2.X ,X>4(不建议用python3.0以上的版本)

这里写图片描述

这里写图片描述

构建基于Linux内核的交换机

cd openvswitch-2.0.1

./boot.sh

这里写图片描述
开始用了不匹配的2.5.0,不过这里结果基本一致,是在make时候出错的

make clean

./configure --with-linux=/lib/modules/uname -r/build
这里写图片描述
内核版本

编译并安装OVS 2.3.0

make 

//make没有这么快的

这里写图片描述

 make install  

install要用root权限 su
这里写图片描述

这里写图片描述

install 不通过 安装autoconf 和autonmake libtool rpm-build m4

安装并加载构建的内核模块

make modules_install
/sbin/modprobe openvswitch

使用ovsdb工具初始化配置数据库

mkdir -p /usr/local/etc/openvswitch
ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema 

这里写图片描述

启动配置数据库

 ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \
                     --remote=db:Open_vSwitch,Open_vSwitch,manager_options \
                     --private-key=db:Open_vSwitch,SSL,private_key \
                     --certificate=db:Open_vSwitch,SSL,certificate \
                     --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \
                     --pidfile —detach

这里写图片描述

初始化数据库

 ovs-vsctl --no-wait init

启动主进程

  ovs-vswitchd --pidfile —detach

查看OVS进程是否启动

 ps aux|grep ovs

这里写图片描述

ovs应用

例子:新建网桥br0并加入端口

    ovs-vsctl add-br br0
    ovs-vsctl add-port br0 eth0
    ovs-vsctl add-port br0 vif1.0

这里写图片描述

应用场景:
1.常用:如删除网桥br0上挂接的eth0网络接口

ovs-vsctl del-port br0 eth0

这里写图片描述

2.新建网桥加入端口

ovs-vsctl add-br ovs-switch

ovs-vsctl add-port ovs-switch eth0 //port4

自定义

ovs-vsctl add-port ovs-switch p1 -- set Interface p1 ofport_request=101
ovs-vsctl add-port ovs-switch p2 -- set Interface p2 ofport_request=102
ovs-vsctl add-port ovs-switch p3 -- set Interface p3 ofport_request=103

对于 internal 类型的的网络接口,OVS 会在 Linux 系统中创建一个可以用来收发数据的模拟网络设备。我们可以为这个网络设备配置 IP 地址、进行数据监听。

 ovs-vsctl set Interface p1 type=internal
 ovs-vsctl set Interface p1 type=internal
 ovs-vsctl set Interface p3 type=internal
 ethtool -i p2
 ethtool -i p2
 ethtool -i p3

这里写图片描述

3.创建虚拟网络空间
为了避免网络接口上的地址和本机已有网络地址冲突,创建一个虚拟网络空间 ns1,把 p1 接口移入网络空间 ns1,并配置 IP 地址为 192.168.1.101,另外两个同理

 ip netns add ns1
 ip link set p1 netns ns1
 ip netns exec ns1 ip addr add 192.168.1.101/24 dev p1
 ip netns exec ns1 ifconfig p1 promisc up

这里写图片描述

4.查看 OVS 交换机的信息

ovs-vsctl show

查看 Open vSwitch 中的端口信息,获得交换机对应的 datapath ID (dpid),以及每个端口的 OpenFlow 端口编号,端口名称,当前状态。
这里写图片描述

 ovs-ofctl show ovs-switch

这里写图片描述
5.运行查看

 ovs-appctl fdb/show ovs-switch   

这里写图片描述

查看交换机所有table

ovs-ofctl dump
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值