Hyperscan 介绍与安装

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-介绍及安装

你可能感兴趣的:(网络,开发)