• How to install Bekeley Extension Software Switch(BESS)?


    参考:

    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

  • 相关阅读:
    KNN算法
    mysql必须知道的
    励志的演讲
    30条程序员名言警句
    别人的文章:为什么软件开发,人多,事少,还会工作量大?
    分享一个比较受启发的文章“学历代表过去,能力代表现在,学习力代表未来”
    mvc 学前必知
    启动docker容器 防火墙问题报错 ! -i docker0' failed: iptables: No chain/target/match by that name.
    git指令详解总结
    git reset 版本回退的三种用法总结
  • 原文地址:https://www.cnblogs.com/qq952693358/p/7911446.html
Copyright © 2020-2023  润新知