单独记录 session-init 和 session-close 与通过 apply-groups 相比的性能差异

网络工程 瞻博网络 杜松-srx 表现 日志记录
2021-08-03 15:48:14

假设:

您的兴趣在于记录每个会话

方法一

您可以在每个策略中配置会话日志记录,例如:

set security policies from-zone trust to-zone untrust policy policy-1 match source-address any
set security policies from-zone trust to-zone untrust policy policy-1 match destination-address any
set security policies from-zone trust to-zone untrust policy policy-1 match application any
set security policies from-zone trust to-zone untrust policy policy-1 then permit
set security policies from-zone trust to-zone untrust policy policy-1 then log session-init
set security policies from-zone trust to-zone untrust policy policy-1 then log session-close

方法二

您在节中配置会话日志记录省略策略中的日志记录:

set groups log-all security policies from-zone <*> to-zone <*> policy <*> then log session-init
set groups log-all security policies from-zone <*> to-zone <*> policy <*> then log session-close

问题

如果有的话,在 JUNOS 中以两种不同的方式进行会话日志记录可以获得什么性能影响,如上所示?

我认为读/写的配置会减少,这会影响提交和传输配置时的性能。列出对两种不同场景的所有影响将是一个很好的参考。

1个回答

如果我们假设您想记录设备上的每个会话,那么apply-groups语句本身将如您所想的那样只会影响提交的性能。

这是因为系统需要计算应用组对其余配置的影响。你的配置越大,你应用的组越多,你的提交开始花费的时间就越长。

一旦你提交了你的配置,任何已经应用的组基本上都合并到一个编译的配置文件中:

/var/run/db/juniper.data

一旦完成,运行系统上的 apply-groups 语句就不会影响性能。

显然,日志记录本身会对设备的性能产生影响。查看 eventd 的 CPU 使用情况

我个人使用这两种方法。如果设备是低端设备或处理对抖动敏感的流量,那么我倾向于只登录所需的策略而不是所有内容。在其他设备上,我将使用apply-groups方法全局记录所有内容,然后在我不想记录某些流量的情况下使用apply-groups-except方法。

set security policies from-zone trust to-zone untrust policy policy-1 apply-groups-except log-all