来源:http://blog.sina.com.cn/s/blog_913a533b0102wc38.html

Hyperscan 介绍与安装

(2016-01-27 16:22:32)

   

1. 新闻背景

当地时间10月19日,intel将它的高速正则表达式匹配引擎hyperscan开源了,版本4.0,基于BSD许可。这个基于自动机(Automata)的引擎经过了多年开发(2008年起),经过不断优化与完善,效率非常之高,虽然没有pcre等对正则语法支持全面,但非常适用于网络设备。用户可以在网络设备数据面(Data Plane)使用hyperscan进行规则匹配,实现高性能DPI/lPS/IDS等应用。之前开源的dpdk,搭配hyperscan,简直是双剑合璧。

从此之后,DPI/IPS/IDS/NGFW开发人员可以把精力更多地放在业务上,而不需要苦于优化报文转发(dpdk之功)和规则匹配(hyperscan之力)的性能。对于DPI来说,从此之后,也许特征/规则才是核心价值,软件本身已经不重要了。而基于dpdk的软件产品,凭借其不输太多的性能、较低的成本、较低的开发门槛和灵活性,也对相同功能的硬件产品发起了挑战。

2.安装方法

2.1    系统基础配置:centos-6.4 ,yum、epel、时间、网路连通性等等。

# yum install gcc gcc-c++ glibc-static -y    因为在编译过程中需要c语言编译,所以先用yum安装一个版本。

2.2    gcc:# wget ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.8.2/gcc-4.8.2.tar.bz2    下载源码包

# tar xvzf gcc-4.8.2.tar.gz  && cd gcc-4.8.2    解压缩

                         # ./contrib/download_prerequisites     执行中会下载3个包,mpfr、gmp、mpc,
                          如果执行失败,则手动执行脚本中的下载url,下载mpfr、gmp、mpc,依次解压缩,创建链接文件。
                         # cd gmp &&  mkdir build &&  cd build/
                         # ../configure --prefix=/usr/local/gcc/gmp-4.3.2 && make && make install    编译安装gmp
                         # cd ../../mpfr && mkdir build && cd build/
                         # ../configure --prefix=/usr/local/gcc/mpfr-2.4.2 --with-gmp=/usr/local/gcc/gmp-4.3.2 && make&&make install
                         # cd ../../mpc && mkdir build && cd build
                         # ../configure --prefix=/usr/local/gcc/mpc-0.8.1 --with-mpfr=/usr/local/gcc/mpfr-2.4.2 --with-gmp=/usr/local/gcc/gmp-4.3.2 && make && make install
                          # 添加共享库路径。
                          # vim /etc/ls.do.conf    加入如下内容
                            /usr/local/gcc/gmp-4.3.2/lib
                            /usr/local/gcc/mpfr-2.4.2/lib
                            /usr/local/gcc/mpc-0.8.1/lib
                          # 保存退出,执行ldconfig
                          # 编译GCC4.8.2
                          # cd ../../
                          # mkdir build
                          # cd build
                          # ../configure --prefix=/usr/local/gcc --enable-threads=posix --disable-checking --enable-languages=c,c++ --disable-multilib 
               # make && make install
                        # yum remove gcc gcc-c++ && updatedb 卸载旧版本
                           # 链接到新版本
                           # cd /usr/bin && ln -s /usr/local/gcc/bin/gcc gcc  && ln -s /usr/local/gcc/bin/g++ g++ 
    
    2.3    CMake    安装操作系统时,已经有了cmake,并且版本符合要求。
                           [root@lizan-linux-6-4 ~]# rpm -qa | grep cmake
                                                                        cmake-2.8.12.2-4.el6.x86_64
    
    2.4    ragel    下载源码包,编译安装。
                            ragel-6.9.tar.gz && cd ragel-6.9 && ./configure  && make &&make install
    
    2.5    Python   升级python至2.7
                            # wget http://www.python.org/ftp/python/2.7.3/Python-2.7.2.tgz
                            # 解压缩,并且新建/usr/local/python-2.7.2,之后编译安装,指定prefix为新建目录。
                            # mv /usr/bin/python /usr/bin/python_old
                            # ln -s /usr/local/python-2.7.2/bin/python2.7 /usr/bin/python
                            # python -V    验证版本是否正确2.7.2
 
    2.6    pcap      安装libpcap、系统已经安装了。
                            [root@lizan-linux-6-4 tmp]# rpm -qa | grep pcap
                            libpcap-1.0.0-6.20091201git117cb5.el6.x86_64
 
    2.6    Boost    安装源码包boost
                           # tar -xvf  boost_1_60_0.tar && cd boost_1_60_0
                           # ./bootstrap.sh 生成了bjam 和b2 安装工具
                           # b2
                           # b2 install
 
    2.7    hyperscan 安装
                            # wget https://codeload.github.com/01org/hyperscan/tar.gz/v4.0.0
                            # tar xvzf v4.0.0  && cd hyperscan-4.0.0/ && mkdir hs_build  && cd hs_build
        # cmake ../hyperscan-4.0.0 && cmake --build . && make install
   
     2.8  hyperscan 验证
                            #[root@lizan-linux-6-4 hs_build]# ./bin/unit-hyperscan   验证hyperscan,提示libstdc版本问题。
                            ./bin/unit-hyperscan: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./bin/unit-hyperscan)
                             # 解决方法 
                             # find / -name libstdc++.so.6 
                                /usr/local/gcc/lib64/libstdc++.so.6
                                /usr/lib64/libstdc++.so.6
                              # cd /usr/lib64/ && mv libstdc++.so.6 libstdc++.so.6_bak
                              # cp /usr/local/gcc/lib64/libstdc++.so.6.0.18 /usr/lib64/
                              # ln libstdc++.so.6.0.18 libstdc++.so.6
                

3.完成

  

Hyperscan 介绍与安装【转】的更多相关文章

  1. 从零自学Hadoop(19):HBase介绍及安装

    阅读目录 序 介绍 安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一篇, ...

  2. 从零自学Hadoop(14):Hive介绍及安装

    阅读目录 序 介绍 安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 本系列已 ...

  3. Python之路-python(mysql介绍和安装、pymysql、ORM sqlachemy)

    本节内容 1.数据库介绍 2.mysql管理 3.mysql数据类型 4.常用mysql命令 创建数据库 外键 增删改查表 5.事务 6.索引 7.python 操作mysql 8.ORM sqlac ...

  4. Bash on Windows 抢鲜测试 -- 介绍及安装

    前言 微软在上周的Windows BUILD大会上宣布,WIN10将引入原生Bash,并将很快在技术预览版中推出. 如此一来,windows的命令行工具就不再只有cmd和powershell了,我们可 ...

  5. Tyk API网关介绍及安装说明

    Tyk API网关介绍及安装说明 Tyk是一个开源的轻量级API网关程序. 什么是API网关 API网关是一个各类不同API的前置服务器.API网关封装了系统内部架构,对外提供统一服务.此外还可以实现 ...

  6. Python介绍、安装、使用

    Python介绍.安装.使用 搬运工:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Python语言介绍 说到Python语言,就不得不说一下它的创始人Guido van Rossu ...

  7. Redis介绍以及安装(Linux)

    Redis介绍以及安装(Linux) redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的 ...

  8. 自动化运维工具之 Ansible 介绍及安装使用

    一.初识Ansible 介绍: Absible 使用 模块(Modules)来定义配置任务.模块可以用标准脚本语言(Python,Bash,Ruby,等等)编写,这是一个很好的做法,使每个模块幂等.A ...

  9. 【兄弟连ThinkPHP】1、介绍和安装

    琢磨了好几天的ThinkPHP了,兄弟连的视频真心不错,下面是记得一些要点,只做备忘,有兴趣的朋友请去百度兄弟连. ## ThinkPHP 3 介绍及安装#讲师:赵桐正微博:http://weibo. ...

随机推荐

  1. nginx配置目录列表访问权限

    我们知道apache httpd默认情况下会显示访问目录的文件列表,但是nginx访问时如果目录下面没有默认首页,那么会返回403 Forbidden的错误,表示没有权限访问,比如根目录就是nginx ...

  2. 【Java】阿里巴巴Java开发手册(纪念版)

    下载地址:(最新纪念版 2017-11-30 V1.3.1) <阿里巴巴Java开发手册>是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断的完善,系统化 ...

  3. Eclipse QuickSear的插件的说明

    https://spring.io/blog/2013/07/11/eclipse-quick-search Eclipse QuickSear的插件的说明

  4. Twitter Lite以及大规模的高性能React渐进式网络应用

    Twitter Lite以及大规模的高性能React渐进式网络应用 原文:Twitter Lite and High Performance React Progressive Web Apps at ...

  5. 安装loadrunner

    Loadrunner安装具体解释 一 .下载篇. 我的下载地址是:http://pan.baidu.com/s/1c0IqAOC 程序4G多.非常大. 二.           安装篇 1.执行&qu ...

  6. Pandas DataFrame笔记

    1.属性方式,可以用于列,不能用于行 2.可以用整数切片选择行,但不能用单个整数索引(当索引不是整数时) 3.直接索引可以使用列.列集合,但不能用索引名索引行 用iloc取行,得到的series: d ...

  7. OSError: Could not find library geos_c or load any of its variants ['libgeos_c.so.1', 'libgeos_c.so

    OSError: Could not find library geos_c or load any of its variants ['libgeos_c.so.1', 'libgeos_c.so ...

  8. Android 关于操作栏 ActionBar 的设计原则【转载+整理】

    原文地址 本文内容 操作栏目的 基本布局 适应旋转和不同的屏幕尺寸 副操作栏的布局 操作栏按钮 上下文操作栏 操作栏清单 设计原则就是为你在编写 Android APP 时,尤其是如何安排操作按钮的位 ...

  9. ionic3报Please provide a valid ISO 8601 datetime format的错误

    对于ionic的ion-datetime控件,初始化值的时候,如果指定为new Date()的话,会提示Please provide a valid ISO 8601 datetime format ...

  10. setTimeout迭代替换setInterval

    一.它们之间的区别 setTimeout - 仅执行一次 setInterval - 间隔执行     二.为什么推荐用setTimeout替换掉setIntelval?   javascript是异 ...