- 论坛徽章:
- 0
|
本帖最后由 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口,然后上网)),如何用程序实现,请给实现一个方向。
请各位指点一二,万分感谢!!! |
|