[原创]ipfw和二层数据帧_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
2
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3595 | 回复: 1   主题: [原创]ipfw和二层数据帧        下一篇 
wulcan
版主
等级:中校
经验:1795
发帖:124
精华:0
注册:2014-3-19
状态:离线
发送短消息息给wulcan 加好友    发送短消息息给wulcan 发消息
发表于: IP:您无权察看 2014-3-29 20:55:54 | [全部帖] [楼主帖] 楼主

undefined

该贴被wulcan编辑于2014-3-29 21:08:23

该贴由hui.chen转至本版2014-11-5 17:05:00




赞(0)    操作        顶端 
wulcan
版主
等级:中校
经验:1795
发帖:124
精华:0
注册:2014-3-19
状态:离线
发送短消息息给wulcan 加好友    发送短消息息给wulcan 发消息
发表于: IP:您无权察看 2014-3-29 21:08:49 | [全部帖] [楼主帖] 2  楼

正常情况,ipfw只能过滤第三层和第四层的包,也就是对IP地址和端口进行过滤。但是PPPoE是第二层的包,跟ARP同一样,是IP的哥们,基于IP协议的过滤对它就无效了。

默认情况下,FreeBSD不会让二层的数据帧通过ipfw,必须手动强制让数据帧进入ipfw中,使用下面的命令:

sysctl –w net.link.ether.ipfw=1


或者把下面这句加进/etc/sysctl.conf

net.link.ether.ipfw=1


这样,ipfw中才能看到二层的数据帧。  

在ipfw中过滤数据帧,用的命令是mac-type,比如,要想记录arp的数量:

Ipfw add 10 count ip from any to any mac-type 0x0806 via em0


其中,0x0806是arp的代号,IPV4的代号是0x0800,ipv6的代号是86DD,PPPoE发现帧是8863,会话帧是8864,所以如果拒绝pppoe发现帧,就是:

Ipfw add deny ip from any to any mac-type 0x8863 in via em0


提醒:把二层的数据帧引入ipfw会导致网络性能的下降,除非特殊需求,尽量使用三层以上的过滤。



赞(0)    操作        顶端 
总帖数
2
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论