• 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

  • 相关阅读:
    Dede 自定义频道解析
    没有什么想说的,但既然来了,也就留下一句
    Title和META标签参数详解,SEO优化中的title和META标签的重要性
    Jsoup HTML 解析器 用法介绍
    php 相关方面内容、
    Html.ActionLink Url.Action的用法
    Asp.Net MVC2.0 Url 路由入门实例篇
    asp.net mvc 在View中获取Url参数的值
    SSH2实现数据库和界面的分页
    struts2中的ModelDriven使用
  • 原文地址:https://www.cnblogs.com/qq952693358/p/7911446.html
Copyright © 2020-2023  润新知