免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 10484 | 回复: 10
打印 上一主题 下一主题

[网络子系统] 让 Linux 实现交换机的端口镜像功能 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-09-16 14:27 |只看该作者 |倒序浏览
之前写的一个让 Linux 实现交换机端口镜像功能的程序,可以随意镜像任何端口的任何数据到某个指定网卡输出。
写得不好,欢迎拍砖!

https://github.com/platinum-PT/MIRROR

论坛徽章:
0
2 [报告]
发表于 2012-09-17 00:17 |只看该作者
性能咋样?
这个特性很棒,担心这样处理后性能下降太多

论坛徽章:
0
3 [报告]
发表于 2012-09-17 10:31 |只看该作者
lofeng410 发表于 2012-09-17 00:17
性能咋样?
这个特性很棒,担心这样处理后性能下降太多

没有真正对比实测过性能,但根据程序逻辑分析,损耗应该相当低,未经过协议栈处理直接从另一个网卡投递

论坛徽章:
0
4 [报告]
发表于 2012-09-17 11:39 |只看该作者
那个sent的device要开混杂模式吧? 要不会不会底下驱动拒绝发送不是自己的mac的包出去?  

好像内核有个 给桥接用的 rx_handler什么接口,代码写起来应该更简练,不用注册协议。

论坛徽章:
0
5 [报告]
发表于 2012-09-17 11:50 |只看该作者
hmsghnh 发表于 2012-09-17 11:39
那个sent的device要开混杂模式吧? 要不会不会底下驱动拒绝发送不是自己的mac的包出去?  

好像内核有个  ...

发包不用混杂
这个需求不是仅针对桥
发包网卡不用配置 IP,仅需 up 起来即可

论坛徽章:
0
6 [报告]
发表于 2013-11-20 16:06 |只看该作者
本帖最后由 237663598 于 2013-11-20 16:07 编辑

回楼主:dev_add_pack,使得包在netif_receive_skb当中处理。因此,楼主这个方法是不是只能把某端口收到的数据报文镜像到其他端口,而不能把某端口收到的数据报文也镜像到一个端口。
如:只能把eth1收到的报文镜像到eth0。而不能把eth1发送的报文镜像到eth0


另外:想问楼主,对于以太网和无线网通用吗?我试了在无线网上,将wlan0的数据镜像到eth0。好像会收不到。wireshark没抓到包啊

论坛徽章:
0
7 [报告]
发表于 2013-11-22 07:22 |只看该作者
237663598 发表于 2013-11-20 16:06
回楼主:dev_add_pack,使得包在netif_receive_skb当中处理。因此,楼主这个方法是不是只能把某端口收到的数 ...

双向数据都是经过那个 hook 点的,进出都可以
当然你可以进一步完善,变成可以控制方向的

对于无线网络设备我没有尝试过,也没见过业内有这样的镜像设备这样做的

论坛徽章:
0
8 [报告]
发表于 2013-11-24 11:03 |只看该作者
帮UP一下。哈哈

论坛徽章:
0
9 [报告]
发表于 2013-11-25 17:11 |只看该作者
没仔细看,好像通过配置ingress qdisc通过action mirred就可以达到同样的效果

论坛徽章:
0
10 [报告]
发表于 2014-01-04 11:20 |只看该作者
你的这个帖子在哪里,能给个链接吗??谢谢回复 1# platinum


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP