免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Godbach

[欢迎进入讨论] 关于syn-proxy的一些问题 [复制链接]

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
发表于 2009-03-13 16:14 |显示全部楼层
双方数据传输的(client)ACK和SYN(server)的正确转换

==》你这个误解了透明代理的意思。tcp连接的过程中,完全是proxy来处理的,不涉及到server;只有真正的数据包,才会转过去;同理,proxy和server要通信,那就是他们而这的tcp连接过程,不涉及到client。
如果握手都要转那么遥远的话,就太复杂了,实际上也没有必要。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2009-03-13 16:23 |显示全部楼层

回复 #41 dreamice 的帖子

你的意思数据部分的传输时,proxy截获server发过来的数据,然后组装自己的报文,再发给client?

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
发表于 2009-03-13 16:29 |显示全部楼层
原帖由 Godbach 于 2009-3-13 16:23 发表
你的意思数据部分的传输时,proxy截获server发过来的数据,然后组装自己的报文,再发给client?


是的,server过来的数据,也会被截获,然后发给client。

由拦截的含义可知,至于tcp建立,那完全不涉及到server与client的直接进行。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2009-03-13 16:31 |显示全部楼层

回复 #43 dreamice 的帖子

看来是我想的复杂了。
我以为Firewall只是把client的报文做一下ACK的修改,然后转发这个报文就可以了。
相反,对于server过来的报文,也做一下SEQ的修改,接着转发就OK了。

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
发表于 2009-03-13 16:36 |显示全部楼层
原帖由 Godbach 于 2009-3-13 16:31 发表
看来是我想的复杂了。
我以为Firewall只是把client的报文做一下ACK的修改,然后转发这个报文就可以了。
相反,对于server过来的报文,也做一下SEQ的修改,接着转发就OK了。


你这样做的话,如果client太多,没办法控制的,会造成proxy维护一个庞大的表,性能一下就拖下来了。。。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2009-03-13 16:39 |显示全部楼层
原帖由 dreamice 于 2009-3-13 16:36 发表


你这样做的话,如果client太多,没办法控制的,会造成proxy维护一个庞大的表,性能一下就拖下来了。。。


呵呵,是啊。我就觉得按照我的想法,内核是需要维护一个比较大的表的。

那你现在说的这种透明方式在那个版本的内核支持啊。

它对SYN包也是要进行Cookie验证的吧。

论坛徽章:
0
发表于 2009-03-13 16:40 |显示全部楼层
原帖由 dreamice 于 2009-3-13 16:11 发表


是的,2.6.28版内核支持这个东东,我做国squid的完全透明代理。
其实内核实现了握手这一系列机制,无非就是我上面说的增加了对非本地IP的目的和源包的处理,以及握手机制。

God兄考虑得太复杂了,你首先 ...

dreamice 兄说一下具体实现的代码内核那一部分吧。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2009-03-13 16:42 |显示全部楼层
原帖由 richardhesidu 于 2009-3-13 16:40 发表

dreamice 兄说一下具体实现的代码内核那一部分吧。


恩。看来对syn-proxy的理解已经远远落后了啊。

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
发表于 2009-03-13 16:46 |显示全部楼层
原帖由 richardhesidu 于 2009-3-13 16:40 发表

dreamice 兄说一下具体实现的代码内核那一部分吧。


2.6.28版本的代码里面已经实现了,具体部分主要涉及到tcp握手机制的部分、还有一个setsockopt的选项以及路由部分。
其实这种机制在2.2版本的内核已经实现了,只是当时可能考虑到安全的问题,在2.4版内核又去掉了。
常规的路由策略,对与源IP不是本地的包,是没办法路由出去的,包在协议栈会被drop掉,所以内核修改了这一部分的源码实现;
另外setsockopt部分的设定,可以允许一个socket监听目的地址不是本地的包。
大致就是这样一些支持,当然了,要让一个包被拦截到本地,还需要策略路由的支持。

说起来还是蛮复杂的,涉及到的知识点也就是上面这些,具体就参考代码吧。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2009-03-13 16:50 |显示全部楼层

回复 #49 dreamice 的帖子

看来dreamice兄已经研究的比较熟了啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP