当前位置: 技术问答>linux和unix
TD 3G卡sk_buff修改了http应用层的信息后包不肯发出去
来源: 互联网 发布时间:2016-08-15
本文导语: 情况是这样的: 网关设备中我的一个模块挂载在forward点,当该网关下的PC上网时对特定的URL,会修改http get的URL地址信息和TCP头checksum,以转到相应的URL。 网关设备支持不同的上网方式,设置成IP连接(就是WAN口是...
情况是这样的:
网关设备中我的一个模块挂载在forward点,当该网关下的PC上网时对特定的URL,会修改http get的URL地址信息和TCP头checksum,以转到相应的URL。
网关设备支持不同的上网方式,设置成IP连接(就是WAN口是可以正常上网的以态网)时,模块运行正常,URL地址被替换。
但一旦用3G TD卡上网,URL地址信息也确实已被修改了,TCP头的checksum也重算了,但是结果抓包发现TD卡就是不肯将这包发出去。(TCP Retransmission自动重发当然也失败了)
请问各位大爷可能的问题在哪?
是不是还得修改skb其它什么信息,以使TD卡PPP上网也能正常呢?
网关设备中我的一个模块挂载在forward点,当该网关下的PC上网时对特定的URL,会修改http get的URL地址信息和TCP头checksum,以转到相应的URL。
网关设备支持不同的上网方式,设置成IP连接(就是WAN口是可以正常上网的以态网)时,模块运行正常,URL地址被替换。
但一旦用3G TD卡上网,URL地址信息也确实已被修改了,TCP头的checksum也重算了,但是结果抓包发现TD卡就是不肯将这包发出去。(TCP Retransmission自动重发当然也失败了)
请问各位大爷可能的问题在哪?
是不是还得修改skb其它什么信息,以使TD卡PPP上网也能正常呢?
|
http://lxr.linux.no/linux+v2.6.33/net/ipv4/netfilter/nf_nat_helper.c#L153
关于修改tcp包,你可以参考一下nf_nat_mangle_tcp_packet 这个函数
我看读懂你的代码是要修改什么,不过修改了ip地址,好像也要重新计算ip头的校验的。
你还是抓包仔细看看吧,wireshark里面如果出现校验错误他会提示的。
关于修改tcp包,你可以参考一下nf_nat_mangle_tcp_packet 这个函数
我看读懂你的代码是要修改什么,不过修改了ip地址,好像也要重新计算ip头的校验的。
你还是抓包仔细看看吧,wireshark里面如果出现校验错误他会提示的。
|
把你的代码发出来看看。如果改变了包的长度,还需要在后面修复ack的
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。