免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: fengfengdiandia
打印 上一主题 下一主题

[内核模块] netfilter模块修改forward报文 [复制链接]

论坛徽章:
2
2015年亚洲杯之日本
日期:2015-03-25 11:21:322015亚冠之柏太阳神
日期:2015-07-13 10:36:04
11 [报告]
发表于 2015-07-06 16:43 |只看该作者
回复 8# Godbach

是的,B 上可以收到 A 修改后的报文,在报文内容中可以看见我添加的内容,以及我更改的 Content-Length 值。

但是 B 并没有给 A 返回 ACK,所以我才怀疑是不是 forward 和 其他 hook 点的校验和方式不太一样。
   

论坛徽章:
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
12 [报告]
发表于 2015-07-06 16:53 |只看该作者
回复 11# fengfengdiandia
如果 B 上就可以看到 A 发回来的报文,那就需要重点检查报文了

报文的 IP 和 TCP 校验和都正确吗,你可以打开 wireshark 的显示检验和判断的地方。重点看下 TCP 的。

如果校验和没问题,那么 B 没理由不发送 ACK,除非因为路由啥的问题。


   

论坛徽章:
2
2015年亚洲杯之日本
日期:2015-03-25 11:21:322015亚冠之柏太阳神
日期:2015-07-13 10:36:04
13 [报告]
发表于 2015-07-06 16:59 |只看该作者
回复 12# Godbach

wireshark 的那个 TCP 校验和复选框的对勾被我去掉了。

去掉的原因:平时正常访问网址时抓包也有 TCP 校验和错误,所以参照不是很准啊,就被我去掉了。

版主有遇到过正常访问网址 TCP 校验和错误的情况么?

论坛徽章:
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
14 [报告]
发表于 2015-07-06 18:47 |只看该作者
回复 13# fengfengdiandia

你这是改报文了。check 一下你改后的报文,TCP 校验和是否正确。



   

论坛徽章:
2
2015年亚洲杯之日本
日期:2015-03-25 11:21:322015亚冠之柏太阳神
日期:2015-07-13 10:36:04
15 [报告]
发表于 2015-07-06 19:12 |只看该作者
回复 14# Godbach

是根据 wireshark 里面的 TCP 校验和来进行对比判断么?

可是我 wireshark 平时的校验和总是各种误报错误。
   

论坛徽章:
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
16 [报告]
发表于 2015-07-07 15:14 |只看该作者
回复 15# fengfengdiandia

是的,打开 TCP checksum 的 validation 就可以看到你的校验和正确与否了。

因为发出去的报文,checksum 有可能网卡计算,这种报文的校验和也许通过 wireshark 看是不对的。但是你这是收到的报文,checksum 是不应该有问题的。


   

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
17 [报告]
发表于 2015-07-07 19:55 |只看该作者
建议先用改包的API做一次“空”修改,比如1234就替换为1234,或者仅仅交换字节的顺序(这样不影响checksum)
看看有没有联通性问题,以排除API自己的问题。

论坛徽章:
2
2015年亚洲杯之日本
日期:2015-03-25 11:21:322015亚冠之柏太阳神
日期:2015-07-13 10:36:04
18 [报告]
发表于 2015-07-13 10:35 |只看该作者
回复 16# Godbach
经抓包验证,校验和校验有误

   

论坛徽章:
2
2015年亚洲杯之日本
日期:2015-03-25 11:21:322015亚冠之柏太阳神
日期:2015-07-13 10:36:04
19 [报告]
发表于 2015-07-13 10:37 |只看该作者
回复 17# nswcfd

验证了一下,校验和正确
   

论坛徽章:
2
2015年亚洲杯之日本
日期:2015-03-25 11:21:322015亚冠之柏太阳神
日期:2015-07-13 10:36:04
20 [报告]
发表于 2015-07-13 10:42 |只看该作者
本帖最后由 fengfengdiandia 于 2015-07-13 10:42 编辑

问题解决了,感谢版主和 nswcfd 兄以及其他小伙伴的回复。

最后判断校验和有误后,我更改了校验和的方式,和之前 LOCAL_IN 的稍稍不同些。
问题虽然解决了,但是我还是不太明白为什么 FORWARD 和 LOCAL_IN 的校验和算法不太相同
希望有理解原理的小伙伴到时回复下。

谢谢诸位!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP