免费注册 查看新帖 |

Chinaunix

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

[实践] 求教: 如何完成一个智能网桥 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-08-17 09:25 |只看该作者 |倒序浏览
最近公司业务需求,需要做一个智能网桥,主要完成的功能就是流量的分析以及一些转发数据包的控制,包括转发数据包的拦截和修改。
公司从来没有做过类似的产品,我也没有做过,但是通过百度大概知道可以使用netfilter接口或者自己重写bridge。
但是具体的框架心里不是很清楚, 数据的收发控制是全部在内核模块中完成呢? 还是只是由内核模块进行数据拦截其他全交给应用层呢?

有没有相关行业的大牛给讲讲,行业内一般是怎么做的,给指条明路

当然如果您想来体验体验苏州生活的话,非常欢迎您加入本公司。
所以这也算一个招聘帖。

论坛徽章:
154
2022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:5720周年集字徽章-年
日期:2022-10-26 16:44:2015-16赛季CBA联赛之深圳
日期:2022-11-02 14:02:4515-16赛季CBA联赛之八一
日期:2022-11-28 12:07:4820周年集字徽章-20	
日期:2023-07-19 08:49:4515-16赛季CBA联赛之八一
日期:2023-11-04 19:23:5115-16赛季CBA联赛之广夏
日期:2023-12-13 18:09:34
2 [报告]
发表于 2017-08-17 09:40 |只看该作者
苏州不错,喜欢,过去没有对口的专业安身

论坛徽章:
7
IT运维版块每日发帖之星
日期:2016-05-27 06:20:00IT运维版块每日发帖之星
日期:2016-06-09 06:20:00操作系统版块每日发帖之星
日期:2016-06-12 06:20:00程序设计版块每日发帖之星
日期:2016-06-12 06:20:00操作系统版块每日发帖之星
日期:2016-06-13 06:20:00IT运维版块每日发帖之星
日期:2016-06-17 06:20:002015-2016NBA季后赛纪念章
日期:2016-06-28 17:42:27
3 [报告]
发表于 2017-08-17 10:28 |只看该作者
网桥的话应该是在二层了,当然你想继续过滤数据,可以解头干一些有趣的事情,就可以转到三层,这个时候才能用到netfilter.
然而netfilter处理的数据越多就是越慢的, 有个nfqueue的东西可以把内核曾的数据通过netlink发送到应用层,然后你可以在应用层干一些龌龊的事情。

还有别的思路就是主要用来作分析的,比如旁路,类似于tcpdump干的事情,把所有数据包搞到一边作分析,实时的数据流不影响。

苏州我毕业就呆了3年,挺有感触的,希望老了还可以回去看看,哈哈

论坛徽章:
9
程序设计版块每日发帖之星
日期:2016-02-13 06:20:00数据库技术版块每日发帖之星
日期:2016-06-15 06:20:00数据库技术版块每日发帖之星
日期:2016-06-16 06:20:00数据库技术版块每日发帖之星
日期:2016-06-18 06:20:00程序设计版块每日发帖之星
日期:2016-06-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-09 06:20:00IT运维版块每日发帖之星
日期:2016-07-15 06:20:00IT运维版块每日发帖之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-08-18 06:20:00
4 [报告]
发表于 2017-08-19 09:07 |只看该作者
我做过,框架没问题
首先你得搞定DPI算法吧

论坛徽章:
12
寅虎
日期:2013-12-04 20:37:4915-16赛季CBA联赛之广东
日期:2017-08-22 19:23:1215-16赛季CBA联赛之上海
日期:2016-06-18 23:05:05操作系统版块每日发帖之星
日期:2016-06-06 06:20:00操作系统版块每日发帖之星
日期:2016-06-05 06:20:00操作系统版块每日发帖之星
日期:2016-06-03 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之巴勒斯坦
日期:2015-02-10 21:38:08卯兔
日期:2014-10-31 20:42:23申猴
日期:2014-06-11 17:15:10处女座
日期:2014-05-22 09:00:1815-16赛季CBA联赛之广夏
日期:2017-09-25 23:37:46
5 [报告]
发表于 2017-08-20 18:47 |只看该作者

数据转发这种东西,可以直接把内核扔一边去。在用户态从网卡拿原始数据。

google dpdk

论坛徽章:
0
6 [报告]
发表于 2017-08-21 13:21 |只看该作者
本帖最后由 cnsinda008 于 2017-08-21 13:46 编辑

回复 5# wait_rabbit

DPDK 貌似是个好东西,不知道用起来麻不麻烦

论坛徽章:
0
7 [报告]
发表于 2017-08-21 13:28 |只看该作者
回复 4# mordorwww

dpi 模块的话是个体力活,急不来。框架的话我现在的做法是 找来了birdge的内核代码自己编译一个网桥模块,并添加我自己的代码, 这样我就可以获取到所有的转发流量,并根据规则进行拦截,所有获取到的流量全部转给了应用层,说明DPI啊什么的都交给应用层去做。
但是我不知道现在主流的做法是什么样子的,您能简单描述一下您当时的框架结构吗?

论坛徽章:
0
8 [报告]
发表于 2017-08-21 13:38 |只看该作者
回复 3# qianguozheng

netfilter 是可以作用在网桥的转发链上的,这个我在网桥的代码里看到了。我现在就是自己编译了一个网桥,根据我自己的规则进行数据的拦截,并将数据通过procfs 虚拟文件系统提交给应用层的。
现在的问问题是我不知道这样做是不是另类的做法,或者说我不知道现在的智能网关设备,或者说防火墙什么的都是怎么个结构。

还有一点就是,应为我选择在2层做,所以3 层和 4层的协议我都需要自己来分析,不知道有没有什么偷懒的方法。

论坛徽章:
12
寅虎
日期:2013-12-04 20:37:4915-16赛季CBA联赛之广东
日期:2017-08-22 19:23:1215-16赛季CBA联赛之上海
日期:2016-06-18 23:05:05操作系统版块每日发帖之星
日期:2016-06-06 06:20:00操作系统版块每日发帖之星
日期:2016-06-05 06:20:00操作系统版块每日发帖之星
日期:2016-06-03 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之巴勒斯坦
日期:2015-02-10 21:38:08卯兔
日期:2014-10-31 20:42:23申猴
日期:2014-06-11 17:15:10处女座
日期:2014-05-22 09:00:1815-16赛季CBA联赛之广夏
日期:2017-09-25 23:37:46
9 [报告]
发表于 2017-08-22 19:24 |只看该作者
cnsinda008 发表于 2017-08-21 13:21
回复 5# wait_rabbit

DPDK 貌似是个好东西,不知道用起来麻不麻烦


因为你只做2层转发,这正是 dpdk 最拿手的好戏。性能肯定是最高的,暴打内核。

需要自己写业务逻辑,官方和网上都有各种很成熟的方案。

论坛徽章:
1
2017金鸡报晓
日期:2017-01-10 15:13:29
10 [报告]
发表于 2017-09-10 17:43 |只看该作者
你的这个需要,跟我之前做个的一个东西有点像,你可以看一下我的这篇文章http://blog.chinaunix.net/uid-30226910-id-5166650.html,看看是不是一样的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP