ebtables安装和使用

    ebtables的功能和语法和iptables的类似,只是iptables是在ip层对数据包进行过滤和NAT的,而ebtables则是在mac层实现类似功能。最近在做虚拟机数据包流量监控的工作,需要用到ebtables。在安装的过程中发现遇到些问题,这里晒一下。
      一开始在 官方网站上下载ebtables的rpm包,并从帮助文档中得知需要2.4以后的内核才能支持ebtables,且2.4内核需要安装补丁。用命令(uname -a)查看内核为2.6.18-128.el5。符合要求。
    安装rpm包,成功后执行命令:
        ebtables     -L
    得到错误提示:
        error while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or directory
    找到解决方法:
        将/usr/lib/ebtables/添加到 /etc/ld.so.conf文件中
        执行命令:/sbin/ldconfig -v 使其更新生效
    
    再次执行命令:
        ebtables    -L
    又得到错误:
        The kernel doesn't support the ebtables 'filter' table.
    查找错误原因是:
        机器是64位的,rpm包是32位的,需要重新下载源码编译。
    
    下载源码包 ,按照官网上的说明,解压缩之后,cd到解压缩文件中,执行make命令。
    安装时需要内核头文件,用命令查看内核版本
        cat     /proc/version
    到网站下载对应的内核程序。将内核压缩包解压到/usr/srv/目录下:
        tar    -xjf     ***.tar.bz2
     将目录更换名字:
        mv    ***.linux    linux
     回到ebtables安装目录,用命令编译ebtables:
        make install KERNEL_INCLUDES=/usr/srv/include/
    再测试
        ebtables -L    
    成功显示信息。
 
    应用举例
     ebtables -t nat -A PREROUTING -s 00:11:22:33:44:55 -j dnat --to-destination 11:22:33:44:55:66
    功能:将原地址是 00:11:22:33:44:55 的数据包全部转发到11:22:33:44:55:66上。
    作用:通过在物理机上添加此ebtables的nat表规则,可以将物理机上,虚拟机mac地址为00:11:22:33:44:55 的数据包都发给网络上mac为11:22:33:44:55:66的机器,从而实现对虚拟机网络的监控。
   

 

你可能感兴趣的:(职场,休闲,ebtables)