免费注册 查看新帖 |

Chinaunix

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

请教大家iptable 进出的问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-11-28 21:34 |只看该作者
原帖由 ssffzz1 于 2009-11-28 20:59 发表
LZ 你做一下下面的这个测试,然后给我测试结果。

从1.37主动发出来的TCP/UDP包能够重定向到40030端口呢?????



肯定可以,我已经测试过了。

我在我的 ISP SERVER能够看到,绝对的。

比如从37这台机器,发送 一个 g.cn的请求,然后我就打开了 g.cn的界面。

查看 路由器内部的软件的log,查看了 isp托管server的 log。
确定 主动发出的数据肯定被重定向到了 40030端口。

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
12 [报告]
发表于 2009-11-28 21:59 |只看该作者
给你个方法可以测试一下。

这个机器配双网卡:
譬如一块配置eth 0 192.168.1.5 另一块配置eth1 192.168.1.6 通过调整ARP地址表或路由表来让到1.37的路由走ETH1出去到达1.37。 而调整1.37的路由表或ARP表,是网关为1.5 ,从ETH0进来,这样的话就和IPTABLES SNAT的状态表不匹配了。在ETH0接口上做重定向,这样回包应该是能够重定向上来的。

论坛徽章:
0
13 [报告]
发表于 2009-11-28 23:44 |只看该作者
原帖由 ssffzz1 于 2009-11-28 21:59 发表
给你个方法可以测试一下。

这个机器配双网卡:
譬如一块配置eth 0 192.168.1.5 另一块配置eth1 192.168.1.6 通过调整ARP地址表或路由表来让到1.37的路由走ETH1出去到达1.37。 而调整1.37的路由表或ARP表,是 ...



我没看明白你说的。

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
14 [报告]
发表于 2009-11-29 17:16 |只看该作者
哦。

我看看有时间的话帮你测一次吧。

我也不知道咋能说的很明白。表达不好。

论坛徽章:
0
15 [报告]
发表于 2009-11-29 18:30 |只看该作者
原帖由 ssffzz1 于 2009-11-29 17:16 发表
哦。

我看看有时间的话帮你测一次吧。

我也不知道咋能说的很明白。表达不好。


谢谢了,我看了你那篇 双ISP NAT的帖子,是否拿那个来做测试呢?

因为我不了解iptables,所以也看的云里雾里关于那个帖子.

还是多谢你了.

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
16 [报告]
发表于 2009-11-29 21:47 |只看该作者
这个思路也是不行的。

我已经测试过了。IPTABLES对进入的流先匹配NAT SESSION表的。
当外部的访问经过此规则的时候:

iptables -t nat -A PREROUTING -p tcp -i ppp0 -d $ipaddr1 --dport 8080 -j DNAT --to-destination 192.168.1.37:8080

就会建立响应的会话SESSION,而对应的回包就先匹配这个SESSION表,因为前面已经建立了,因此总会匹配。这就导致后续的
iptables -t nat -A PREROUTING -p tcp -s \
192.168.1.0/24 \! -d 192.168.1.6-j \
REDIRECT --to-ports 40030
永远得不到机会执行。


LZ要实现自己的功能,要么就别用IPTABLES,自己在那个40030模块实现服务器的映射。要么就修改IPTABLES代码。
当然还有更加BT的方法就是做IPTABLES和你的那个40030不是一台机器,通过调整路由使他们的进出不一致这样应该没问题。

明天再帮你测一下最后的那个思路吧。
你们的要求好BT啊。至此我也不明白你要做的产品是干吗的。这样会破坏TCP端到端的回话完整性的,会引来很多奇怪的问题。

论坛徽章:
0
17 [报告]
发表于 2009-11-29 22:54 |只看该作者
原帖由 ssffzz1 于 2009-11-29 21:47 发表
这个思路也是不行的。

我已经测试过了。IPTABLES对进入的流先匹配NAT SESSION表的。
当外部的访问经过此规则的时候:

iptables -t nat -A PREROUTING -p tcp -i ppp0 -d $ipaddr1 --dport 8080 -j DNAT  ...



首先先回答你的问题。

是一个多路捆绑的程序。 劫持 来自eth0的会话,路由器内部程序,split来自eth0数据,通过 eth1,eth2,eth3 --- N来传递数据。
发送到 ISP SERVER(FORWARD程序)托管服务器,合包,看到 来自eth0的目的地址,帮助去抓东西。 split数据,通过和eth1,eth2,eth3建立的通道。
路由器内部程序合包,传递给 eth0的源地址。

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
18 [报告]
发表于 2009-11-30 10:37 |只看该作者
看起来好像是一个 实现多链路聚合的程序。不过不知道为何要在TCP层面实现。

论坛徽章:
0
19 [报告]
发表于 2009-11-30 10:58 |只看该作者
原帖由 ssffzz1 于 2009-11-30 10:37 发表
看起来好像是一个 实现多链路聚合的程序。不过不知道为何要在TCP层面实现。



呵呵,我也不知道,还没商用呢。


你说的最后一个方法是什么?
没懂。

论坛徽章:
0
20 [报告]
发表于 2009-11-30 11:00 |只看该作者
你说的

就会建立响应的会话SESSION,而对应的回包就先匹配这个SESSION表,因为前面已经建立了,因此总会匹配。这就导致后续的
iptables -t nat -A PREROUTING -p tcp -s \
192.168.1.0/24 \! -d 192.168.1.6-j \
REDIRECT --to-ports 40030
永远得不到机会执行。这个

能否把这个匹配给抹掉,抹掉就可以重定向了吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP