找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3745|回复: 0

[负载平衡] 对passthrough和nth的理解

[复制链接]
发表于 2010-3-22 16:10:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
本人对passthrough和nth的理解,如有不对,请高手指正。

关于passthrough的应用。

1、在passthrough属性不起作用的情形下,包不论是否匹配,都要进行本链中下一规则的检查。
2、在passthrough属性起作用的情形下,将按如下考虑:
      包如果匹配本规则,是否再接受本规则之后的规则的检验是由passthrough的值决定的。
        passthrough="no": 匹配本规则之后,包不再接受本链中该规则之后的规则的检查或改变。
        passthrough="yes":匹配本规则之后,包仍需接受本链中该规则之后的规则的检查或改变。
        注:如果上面的情形为passthrough="no",就相当于执行action:accept。也即
         (1)如果该规则在prerouting中,则直接进入路由策略(Routing decision)中。
         (2)如果该规则在input中,则直接进入本地进程的处理中。
         (3)如果该规则在forward中,则将进入postrouting中。
         (4)如果该规则在output中,则将进入路由策略(Routing decision)中。
         (5)如果该规则在postrouting中,则直接进入接口队列中(interface queue)。
  3、作为mangle中属性的passthrough仅在mangle中的action:mark-connection,mark-packet,mark-routing中生效。
  4、作为mangle中action的passthrough只是简单的忽略本规则,而过渡到下一规则。因为不管它是否符合本规则,
     它都会过渡到本链中的下一规则。
第一种:
nth:(3,1)  passthrough="yes"
     (3,2)  passthrough="yes"
     (3,3)  passthrough="yes"

第二种:
nth: (3,1)  passthrough="no"
     (2,1)  passthrough="no"
     (1,1)  passthrough="no"
注: 新版本隐藏了计数器counter。counter自动计数,不需人为干预,这减少了复杂性。
上面的两种方式等价。


nth=(every,packet)  每条规则都有一个counter。且每个counter=0且是隐藏的。
  当每条规则接受到包(或包经过该规则)的时候,该规则隐藏的counter增1,如果counter=packet,则规则匹配,并
执行相应的行为;否则不匹配。
  对于任何一条规则中隐藏的counter,如果counter=every,则counter=0(复位为0)

当把上面的应用到第一,第二种时,就有上面的结果。
routeros
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-5-18 23:16 , Processed in 0.043142 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表