免费注册 查看新帖 |

Chinaunix

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

(2.6.25)想注入netfilte的NF_INET_POST_ROUTING,转给ip_output问题,实现简单的nat [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-05-05 17:47 |只看该作者

回复 #10 Godbach 的帖子

谢谢版主的回复。
但是我的内核是2.6.25的
刚搜了下 /usr/src/linux 没有任何ip_nat_out的信息!

我也是很郁闷 2.6对nf资料不是很多。


不过看到独孤兄对2.4 nat源码分析了
今天先研究研究,应该对我有所帮助。

[ 本帖最后由 C__J 于 2009-5-5 17:51 编辑 ]

论坛徽章:
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 [报告]
发表于 2009-05-05 18:01 |只看该作者
2.6.25下改了函数名而已。具体位置在net/ipv4/netfilter/nf_nat_standalone.c中。
函数名为:nf_nat_out。
NAT的主要函数都在该文件中。

论坛徽章:
0
13 [报告]
发表于 2009-05-05 19:58 |只看该作者
2.6.25是在 nf_nat_core.c里面

论坛徽章:
0
14 [报告]
发表于 2009-05-06 01:26 |只看该作者

d

大致流程:
eth0(public ip 10.10.10.1):
DNAT(PRE_ROUTING):
   接受外网的数据包。saddr(202.202.202.2) daddr(10.10.10.1) 需要查询匹配(ip+port),并修改daddr为192.168.0.2
   接受内网的数据包。saddr(192.168.0.2) daddr(202.202.202.2)
SNAT(POST_ROUTING):
   发送数据包给外网。saddr(192.168.0.2) daddr(202.202.202.2)需要存储状态,并修改saddr为10.10.10.1。
   发送数据包给内网。saddr(202.202.202.2) daddr(192.168.0.2)

eth1(private ip 192.168.0.1):(所有的数据包都转发给eht0处理)
    接受eth0的数据包,并发送到daddr.
    发送内网数据包给eth0.

eth3(ip 192.168.0.2);
eth4(ip 202.202.202.2);

可能有错误,还请大家指正。

[ 本帖最后由 C__J 于 2009-5-6 02:05 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP