reduce CPU usage by doing netflow samping in iptables

master
FAELIX SALT 5 years ago
parent 1488e40075
commit b6d01c8683

@ -27,13 +27,13 @@ COMMIT
*mangle *mangle
:PREROUTING ACCEPT [0:0] :PREROUTING ACCEPT [0:0]
{% for iface_name, iface_data in pillar['netbox']['interfaces'].items() %}{% if salt['pillar.get']('interfaces:'+iface_name+':netflow') %} {% for iface_name, iface_data in pillar['netbox']['interfaces'].items() %}{% if salt['pillar.get']('interfaces:'+iface_name+':netflow') %}
-A PREROUTING -i {{ iface_name }} -j NFLOG --nflog-group 2 --nflog-size 64 --nflog-threshold 64 -A PREROUTING -i {{ iface_name }} -m statistic --mode nth --packet 1 --every {{ salt['pillar.get']('netflow:sampling-rate',64) }} -j NFLOG --nflog-group 2 {% if salt['grains.get']('kernelrelease','') in ["4.19.52-amd64-vyos","4.19.84-amd64-vyos"] %}--nflog-range 64{% else %}--nflog-size 64{% endif %} --nflog-threshold 64
{% endif %}{% endfor %} {% endif %}{% endfor %}
:INPUT ACCEPT [0:0] :INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0] :FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0] :OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0]
{% for iface_name, iface_data in pillar['netbox']['interfaces'].items() %}{% if salt['pillar.get']('interfaces:'+iface_name+':netflow') %} {% for iface_name, iface_data in pillar['netbox']['interfaces'].items() %}{% if salt['pillar.get']('interfaces:'+iface_name+':netflow') %}
-A POSTROUTING -o {{ iface_name }} -j NFLOG --nflog-group 2 --nflog-size 64 --nflog-threshold 64 -A POSTROUTING -o {{ iface_name }} -m statistic --mode nth --packet 1 --every {{ salt['pillar.get']('netflow:sampling-rate',64) }} -j NFLOG --nflog-group 2 {% if salt['grains.get']('kernelrelease','') in ["4.19.52-amd64-vyos","4.19.84-amd64-vyos"] %}--nflog-range 64{% else %}--nflog-size 64{% endif %} --nflog-threshold 64
{% endif %}{% endfor %} {% endif %}{% endfor %}
COMMIT COMMIT

@ -27,13 +27,13 @@ COMMIT
*mangle *mangle
:PREROUTING ACCEPT [0:0] :PREROUTING ACCEPT [0:0]
{% for iface_name, iface_data in pillar['netbox']['interfaces'].items() %}{% if salt['pillar.get']('interfaces:'+iface_name+':netflow') %} {% for iface_name, iface_data in pillar['netbox']['interfaces'].items() %}{% if salt['pillar.get']('interfaces:'+iface_name+':netflow') %}
-A PREROUTING -i {{ iface_name }} -j NFLOG --nflog-group 2 --nflog-size 64 --nflog-threshold 64 -A PREROUTING -i {{ iface_name }} -m statistic --mode nth --packet 1 --every {{ salt['pillar.get']('netflow:sampling-rate',64) }} -j NFLOG --nflog-group 2 {% if salt['grains.get']('kernelrelease','') in ["4.19.52-amd64-vyos","4.19.84-amd64-vyos"] %}--nflog-range 64{% else %}--nflog-size 64{% endif %} --nflog-threshold 64
{% endif %}{% endfor %} {% endif %}{% endfor %}
:INPUT ACCEPT [0:0] :INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0] :FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0] :OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0]
{% for iface_name, iface_data in pillar['netbox']['interfaces'].items() %}{% if salt['pillar.get']('interfaces:'+iface_name+':netflow') %} {% for iface_name, iface_data in pillar['netbox']['interfaces'].items() %}{% if salt['pillar.get']('interfaces:'+iface_name+':netflow') %}
-A POSTROUTING -o {{ iface_name }} -j NFLOG --nflog-group 2 --nflog-size 64 --nflog-threshold 64 -A POSTROUTING -o {{ iface_name }} -m statistic --mode nth --packet 1 --every {{ salt['pillar.get']('netflow:sampling-rate',64) }} -j NFLOG --nflog-group 2 {% if salt['grains.get']('kernelrelease','') in ["4.19.52-amd64-vyos","4.19.84-amd64-vyos"] %}--nflog-range 64{% else %}--nflog-size 64{% endif %} --nflog-threshold 64
{% endif %}{% endfor %} {% endif %}{% endfor %}
COMMIT COMMIT

@ -1332,7 +1332,7 @@ system {
interface {{ iface_name }} interface {{ iface_name }}
{% endif %}{% endfor %} {% endif %}{% endfor %}
netflow { netflow {
sampling-rate {{ pillar['netflow']['sampling-rate']}} sampling-rate 1
{% for server in pillar['netflow']['servers'] %} {% for server in pillar['netflow']['servers'] %}
server {{ server.split(":")[0] }} { server {{ server.split(":")[0] }} {
port {{ server.split(":")[1] }} port {{ server.split(":")[1] }}

Loading…
Cancel
Save