独学而无友,则孤陋而寡闻!
发布时间:2020-05-23 08:57:25
FreeBSD 在企业网络基础架构中的性能很好,但是网络桥接设备内核代码 if_bridge 处会遇到性能瓶颈(if_bridge 可以有效地将 FreeBSD 机器变成交换机)。开发人员研究过程中发现,当前的 if_bridge 实现在单个 BRIDGE_LOCK 互斥锁上有很大的竞争。if_bridge 实现将吞吐量限制为每秒约 370 万个数据包。在遍历了一些选项之后,开发人员的最终解决方案利用了 FreeBSD 13 (CURRENT) 中的 epoch (9),通过巧妙地使用并发,epoch (9) 允许安全使用受保护的数据结构,而根本不需要获得锁(互斥锁或读写锁)。最终结果是,新的 if_bridge 实现每秒可以转发约 1860 万个数据包,性能大约提升了 5 倍......【阅读全文】
adx1102011-06-18 19:43
superzjq2011-06-10 23:38
非常感谢老师的关注:)使用skipto可以解决这个问题
但还有点疑问,one_pass不是只跟nat和pipe有关吗,limit应该是属于动态规则吧 ?
在下不才 针对两种情况进行了测试
net.inet.ip.fw.one_pass = 0
# ipfw show
00100 9 529 allow ip from 192.168.1.0/24 to any in via em1 limit src-addr 100
00200 0 0 nat 1 ip from 192.168.1.0/24 to any out via em0
00300 0 0 nat 1 ip from any to me in via em0
00400 3 373 allow ip from any to any(用来匹配所有重新进入ipfw的数据包)
65535 0 0 deny ip from any to any
net.inet.ip.fw.one_pass = 1
# ipfw show
00100 8 480 allow ip from 192.168.1.0/24 to any in via em1 limit src-addr 100
00200 0 0 nat 1 ip from 192.168.1.0/24 to any out via em0
00300 0 0 nat 1 ip from any to me in via em0
00400 0 0 allow ip from any to 192.168.1.0/24 out via em1
65535 45 1262 deny ip from any to any
其中em0接外网,em1接内网,有没one_pass都一样,数据包一被limit匹配后就没了下文
只能跟skipto一起使用,不知道是不是BUG,还是说有哪些地方需要设置
我用的是FreeBSD 8.2,内核配置都是默认的
superzjq2011-05-26 17:59
老师您好,能否帮我看下这段配置
ipfw add allow ip from 192.168.1.0/24 to any in via em1 limit src-addr 10
ipfw add nat 1 ip from 192.168.1.0/24 to any out via em0
ipfw add nat 1 ip from any to me in via em0
ipfw nat 1 config if em0 log
ipfw add allow ip from any to any
em0接外网,em1接内网,做了NAT,想限制每IP连接数,已经明确指定了方向和接口,但不知为何数据包被第一条limit匹配后就无法到达第二条的nat上了,去掉第一条的limit部分后则完全没有问题,实在是让我郁闷不已,望不吝赐教