# 配置
## iptables的ULOG目标
### 例子
我们在防火墙中添加这样一条规则作为示例:
> iptables -A FORWARD -j ULOG --ulog-nlgroup 32 --ulog-prefix foo
为了提高性能, 还可以加上选项:
> --ulog-qthreshold N
这里1 < N ≤ 50, 指定的是每批次发送netlink消息中包含的包数量. 比如设置20, 那么内核会每20个包调度一次给ulogd, 然后ulogd一次性处理这20个包. 这就减少了内核态到用户态的上下文切换次数.
你当然也可以结合其他不同的netfilter匹配模块和ULOG目标一起使用, 详细的描述可以去netfilter的官网看它的HOWTO's.
### ULOG目标配置参数
#### --ulog-nlgroup N
接收netlink广播的组编号. 在ulogd中配置的组编号必须和ULOG目标中的组编号一致才能接收到.
#### --ulog-cprange N
截取包大小. 如同tcpdump中的snaplen参数, 比如指定40, 你会只收到每个包的前40字节. 0表示全部
#### --ulog-qthreshold N
队列大小. 如果一个包被iptables规则匹配上, 并且队列中已有N个包, 则内核会把整个队列发送到用户态. 这可以用于实现一种策略: 建立一个很大的队列来提高性能, 但仍然可以有一些特定的包会被立即记录并发送给用户态.
#### --ulog-prefix STRING
一个用于关联当前iptables规则和截获的包的字符串.
### 内核ipt_ULOG模块参数
内核ipt_ULOG模块