参考:

Github BESS

How to install Bekeley Extension Software Switch(BESS)?

Introduction

BESS is a modular framework for software switches. BESS itself is not a virtual switch; it is neither pre-configured nor hardcoded to provide particular functionality, such as Ethernet bridging or OpenFlow-driven switching. Instead, you (or an external controller) can configure your own packet processing datapath by composing small "modules". While the basic concept is similar to Click, BESS does not sacrifice performance for programmability.

BESS是一个用于软件交换机的模块化框架, 本身并不是一个虚拟交换机; 它既不用预先配置也不用使用写死的方法来提供特殊功能, 比如以太网桥或OpenFlow驱动的交换. 相反, 你(或者一台额外的控制器)能够通过将小型模块进行组合来配置你自己的数据报处理datapath. BESS的思想类似于Click, 但它不需要为可编程性消耗性能.

Installation

官方的文档给出了安装BESS的方法, 然而会遇到许多问题.

1.Clone BESS:

$ git clone https://github.com/NetSys/bess.git
$ cd bess/

2.安装依赖:

$ sudo apt-get install -y software-properties-common
$ sudo apt-add-repository -y ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install -y ansible
$ ansible-playbook -K -t package -i localhost, -c local env/bess.yml
$ sudo reboot

这一步容易出现ansible安装clang-5.0的错误, 一种解决方法是讲package.yml中安装clang-5.0的语句注释掉, 并人为安装clang-5.0. 详情见: issues#734.

3.设置大页:

# For single-node systems
$ sudo sysctl vm.nr_hugepages=1024 # For multi-node (NUMA) systems
$ echo 1024 | sudo tee /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
$ echo 1024 | sudo tee /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages

4.安装BESS:

$ cd bess/
$ ./build.py

此步会出现DPDK驱动的问题, 原因是BESS是基于老版本的DPDK的, 由于代码本身用于安全检测, 因此这里选择注释忽略.

此外在packet.cc中也在一个宏的位置报错, 这里也选择暴力注释.

最后把Makefile里面的-Werror参数注释掉, 令Build成功了, 当然这只是权益之计.

可能需要安装MLNX_OFED驱动, 方法见: HowTo Install MLNX_OFED Driver. 问题详情见: issues#735.

5.运行BESS:

$ ./bessctl/bessctl

<disconnected> $ daemon start

如果出现:

E1129 09:16:44.214349  7425 bessd.cc:358] Failed to launch a daemon process
*** Error: Cannot start BESS daemon

重新设置大页即可正常启动.

2017.11

How to install Bekeley Extension Software Switch(BESS)?的更多相关文章

  1. PISCES: A Programmable, Protocol-Independent Software Switch

    Name of article:PISCES: A Programmable, Protocol-Independent Software Switch Origin of the article:S ...

  2. 2018 How to register and install LAUNCH ICARSCAN software ?

    2018 New Version ICARSCAN is available now! Here’s the instruction on how to install ICARSCAN softwa ...

  3. [label][phalcon] How to install Phalcon extension for Zend Server 6.3.0 for windows 7 64bit

    At first , you should download Phalcon DLL file. You can download from this link under. http://stati ...

  4. php7 install memcache extension

    #download source code package from git $ git clone https://github.com/websupport-sk/pecl-memcache.gi ...

  5. php7 install memcached extension

    #download source code package from git $ git clone https://github.com/php-memcached-dev/php-memcache ...

  6. Install Package and Software

    svn http://tortoisesvn.sourceforge.net/ git https://download.tortoisegit.org/ http://git-for-windows ...

  7. How To Download Youtube Videos Without any software

    https://www.quora.com/What-is-the-best-way-to-download-YouTube-videos-for-free There are various met ...

  8. Install Visual Studio Tools for Apache Cordova

    Install Visual Studio Tools for Apache Cordova Visual Studio 2013   This article refers to the Visua ...

  9. 十几个remote control software

    5 alternatives to LogMeIn Free for remote PC access VNC VNC, or Virtual Network Computing, isn’t its ...

随机推荐

  1. win10 Xshell5连ubuntu服务器

    相当于ubuntu做服务器,win10远程访问,同一局域网下,完全参考度娘 教你怎么使用xshell远程连接linux服务器 ubuntu系统ifconfig -a查看ip地址,添加到主机那里,连接时 ...

  2. LinkedList 底层实现原理

    LinkedList的底层实现原理 LinkedList 底层数据结构为双向链表,链表结构,基于一个个链表节点Node 1,Inner Class 内部类 private static class N ...

  3. 获取 web 服务器 port

    Tomcat: public static String getServerPort(boolean secure) throws AttributeNotFoundException, Instan ...

  4. python 使用json.dumps() 的indent 参数,获得漂亮的格式化字符串后输出

    想获得漂亮的格式化字符串后输出,可以使用json.dumps() 的indent 参数.它会使得输出和pprint() 函数效果类似 >>> data {'age': 4, 'nam ...

  5. python selenium设置chrome的下载路径

    python可以通过ChromeOptions设置chrome参数,如下载路径等,代码如下(python 3.6.7): #-*-coding=utf-8-*- from selenium impor ...

  6. Linux服务器---邮件服务openwebmail安装

    安装openwebmail  openwebmail提供了可视化的邮件管理系统,它运行在Apache环境下. 1.安装必备软件 [root@localhost ~]# yum install –y p ...

  7. js多个异步请求

    一,两个(或多个)js异步并发执行,怎么在两个AJax异步操作之后执行一个新的操作 原题来自 ES6 方法 1.Promise 包装异步ajax操作,2.定义async 函数,3.用await等待pr ...

  8. localstorage跨域解决方案

    localstorage也存在 跨域的问题, [解决思路如下] 在A域和B域下引入C域,所有的读写都由C域来完成,本地数据存在C域下; 因此 A哉和B域的页面必定要引入C域的页面; 当然C域最好是主域 ...

  9. centos 6.5 防火墙开放指定端口

    清除防火墙规则:iptables  -F 关闭防火墙 /etc/init.d/iptables stop 关闭防火墙开机自启:chkconfig iptables off 查看iptables 是否开 ...

  10. Hbase 过滤器的使用

    Filter filter= new RowFilter(CompareFilter.CompareOp.EQUAL,new RegexStringComparator("."+d ...