免费注册 查看新帖 |

Chinaunix

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

[网络管理] linux nat 不支持双cpu? [复制链接]

论坛徽章:
0
21 [报告]
发表于 2006-05-12 13:42 |只看该作者
找了个不是办法的办法:
参考白金提供的资料,做 irq affinity 静态捆绑
将eth0 和cpu3、cpu4做静态捆绑,eth1 和 cpu0、cpu1做静态捆绑
cpu负载均衡好些,但eth1绑定的CPU还是不均衡,eth1上做了nat,可见的确是netfilter对smp的支持不好
参考资料:http://bcr2.uwaterloo.ca/~brecht/servers/apic/SMP-affinity.txt

13:36:22  up 23:47,  1 user,  load average: 0.99, 0.97, 0.91
33 processes: 31 sleeping, 2 running, 0 zombie, 0 stopped
CPU states:  cpu    user    nice  system    irq  softirq  iowait    idle
           total    0.0%    0.0%    0.0%   0.1%    45.0%    0.0%   54.7%
           cpu00    0.2%    0.0%    0.2%   0.0%     1.2%    0.0%   98.3%
           cpu01    0.0%    0.0%    0.0%   0.0%   100.0%    0.0%    0.0%
           cpu02    0.0%    0.0%    0.0%   0.0%    22.2%    0.0%   77.7%
           cpu03    0.0%    0.0%    0.0%   0.4%    56.4%    0.0%   43.2%
Mem:  1009404k av,  198512k used,  810892k free,       0k shrd,    1316k buff
        21136k active,               6604k inactive
Swap:       0k av,       0k used,       0k free                   24420k cached

[ 本帖最后由 ippen 于 2006-5-12 14:09 编辑 ]

论坛徽章:
0
22 [报告]
发表于 2006-05-12 13:53 |只看该作者
我对 RETURN的理解和你的不一样,在一个表中,如果一个数据包匹配RETURN的条件,就表示这个数据包返回上一层,不再尝试匹配RETURN后面的规则,也就是说退出当前表的匹配,但如果用ACCEPT的话,就表示如果这个规则通过后,仍然尝试匹配ACCEPT后面的规则,所以使用ACCEPT和RETURN产生的效果并不一样

在POSTROUTING中RETURN表示退出POSTROUTING链的规则匹配,继续匹配下一个表

[ 本帖最后由 ippen 于 2006-5-12 14:00 编辑 ]

论坛徽章:
0
23 [报告]
发表于 2006-05-12 14:12 |只看该作者
原帖由 ippen 于 2006-5-12 13:53 发表
我对 RETURN的理解和你的不一样,在一个表中,如果一个数据包匹配RETURN的条件,就表示这个数据包返回上一层,不再尝试匹配RETURN后面的规则,也就是说退出当前表的匹配,但如果用ACCEPT的话,就表示如果这个规则通过后,仍然尝试匹配ACCEPT后面的规则,所以使用ACCEPT和RETURN产生的效果并不一样

但如果你看 netfilter 源码的话,会发现有几个基本处理动作
include/linux/netfilter.h

  1. /* Responses from hook functions. */
  2. #define NF_DROP 0
  3. #define NF_ACCEPT 1
  4. #define NF_STOLEN 2
  5. #define NF_QUEUE 3
  6. #define NF_REPEAT 4
  7. #define NF_STOP 5
复制代码

RETURN 那个 target 实际只是把控制交给上一层,相当于把指针(链表)转到别的地方,转走以后具体如何处理,还是看你的处理动作(是上面的哪种)
我做了一个试验

  1. service iptables stop;iptables -A INPUT -p tcp --dport 23 -j RETURN
复制代码

从 client 去 telnet,通过 Ethereal 抓包发现,有 3 个 SYN,还有 3 个 RST,ACK
接着,我写了一句

  1. iptables -P INPUT DROP
复制代码

再次 telnet,发现只有 3 次 SYN,没有任何回包,因此我的结论是正确的,数据没有到内核网络协议栈,没有被 RST 回来,因此你的结论是错的
针对“对某些网站不要使用透明代理”的做法,也是通过
  1. iptables -t nat -I PREROUTING -d IP -p tcp --dport 80 -j ACCEPT
复制代码
实现的,因此,你的做法不对,存在理解的问题

packet1.png (6.99 KB, 下载次数: 76)

packet1.png

packet2.png (4.39 KB, 下载次数: 75)

packet2.png

论坛徽章:
0
24 [报告]
发表于 2006-05-12 14:22 |只看该作者
原帖由 ippen 于 2006-5-12 13:13 发表
画个图容易明白些

          chinanet                                   cnc  
               |                                      |
   +-----------+------------+             +------ ...



对于这种情况,你应该做策略路由(在router3中)

ip route add default via chinanet的网关 dev chinanet的接口 table 100

ip rule add 需要提供服务的内网IP table 100

这样,所有的访问控制在forward链(这儿只做访控)和nat表的postrouting链(这儿只做地址转换)中做控制,这样的话控制规则比较好写,也清晰一些。

论坛徽章:
0
25 [报告]
发表于 2006-05-12 14:24 |只看该作者
翻了一下iptables的手册,应该说两人的理解都没有错误,只是在具体应用上对RETURN用法的理解并不太相同

论坛徽章:
0
26 [报告]
发表于 2006-05-12 14:27 |只看该作者
原帖由 ippen 于 2006-5-12 14:24 发表
翻了一下iptables的手册,应该说两人的理解都没有错误,只是在具体应用上对RETURN用法的理解并不太相同

ACCEPT 就是让数据包逃离本 hook 点,RETURN 是逃离本链到上一层逻辑链去处理(默认规则也算上一层逻辑链),现在你明白了吗?

论坛徽章:
0
27 [报告]
发表于 2006-05-12 14:27 |只看该作者
原帖由 springwind426 于 2006-5-12 14:22 发表



对于这种情况,你应该做策略路由(在router3中)

ip route add default via chinanet的网关 dev chinanet的接口 table 100

ip rule add 需要提供服务的内网IP table 100

这样,所有的访问控制在fo ...


电信出口是3*GE,不可能这样做,内网实际上都是211.xxx.xxx.xxx的公网地址,不是经过DNAT进来的

论坛徽章:
0
28 [报告]
发表于 2006-05-12 14:31 |只看该作者
原帖由 platinum 于 2006-5-12 14:27 发表

ACCEPT 就是让数据包逃离本 hook 点,RETURN 是逃离本链到上一层逻辑链去处理(默认规则也算上一层逻辑链),现在你明白了吗?


这点的理解大家完全一样,至于我的RETURN用法,也是没有问题,具体回头再解释,我现在要外出办事

论坛徽章:
0
29 [报告]
发表于 2006-05-12 14:37 |只看该作者
原帖由 ippen 于 2006-5-12 14:31 发表
这点的理解大家完全一样,至于我的RETURN用法,也是没有问题,具体回头再解释,我现在要外出办事

你用了 RETURN 实际和 ACCEPT 没区别,在你的规则里,RETURN 只是交给 default policy 去 ACCPET 而已,和直接使用 ACCEPT 没什么不同,且效率低下,但不知为何你却说 ACCEPT 不行
能解释的都解释了,不说了,如果说的不对敬请拍砖


[ 本帖最后由 platinum 于 2006-5-12 14:57 编辑 ]

论坛徽章:
0
30 [报告]
发表于 2006-05-12 16:08 |只看该作者
我也有同感,虽然用了smp_affinity,但是效果不明显。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP