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的机器,从而实现对虚拟机网络的监控。
本文出自 “寒彻骨” 博客,请务必保留此出处http://turtle.blog.51cto.com/1063170/237425
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。