免费注册 查看新帖 |

Chinaunix

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

[通信方式] 关于linux流控功能测试遇到的socket,bind()问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-09-04 16:45 |只看该作者 |倒序浏览
本帖最后由 aaabbbccc2013 于 2013-09-04 19:32 编辑

各位高手,大家好!
  
  目前有一套标准设备(简称A设备),基于linux系统,里边有自己编写的流控模块,此模块工作的原理为interface1 口进(内网,简称if1),interface2口出(外网,简称if2),局域网用户设备(GW指向if1 IP地址)。都接入到if1中,然后经过NAT,由外网接入if2发送出去.

  也就是说,数据必须由if1口流经if2口(流经这两个口还有一些统计查询等功能)。

  现在有个需求,A设备if1不接用户做流控测试。我编写了一个基于TCP的客户端发包(在A设备中模拟用户的报文发包程序),创建socket后,进行一次bind.(一般客户端程序是不需要bind的)
  bind的是if1的IP地址和一个任意端口。connect的是一个外网IP地址。按照我的理解,bind后应当是模拟了用户向if1口发包的流程,可是现在限速无效。

  目前有些摸不着头绪,现在请问几个问题:

  1 我编写clinet端bind后,是否能够按照我所想象的那样,即A设备运行clinet程序,数据直接从if1网卡进来(模拟用户的数据),通过nat规则,if2网卡出去。

  2 是否和iptables的各种链有关系,印象中外部设备发送的报文貌似和从A设备使用程序发送的报文,经过filter表流程不一样。
  
  3 如果上述问题都不能解决,我想实现模拟用户上网这样的功能(程序在A设备上运行程序,模拟用户接入后上网的操作,就是用户使用PC,下一跳指向A设备的if1口,然后上网)),如何用程序实现,请给实现一个方向。
  
   请各位指点一二,万分感谢!!!

论坛徽章:
0
2 [报告]
发表于 2013-09-05 08:51 |只看该作者
你是用iptables限速的吗?从本机发出的包不经过forward链

论坛徽章:
0
3 [报告]
发表于 2013-09-05 09:25 |只看该作者
感谢楼上的回帖,限速是自己的模块,和iptables关联不大,但报文的过滤是iptables做了部分工作,
现在考虑到是否为netfilter因为流经表不一样造成,我打算查看能否用mangle表进行报文重定向。其它仍然没有思路。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP