logstash-plugins / logstash-codec-netflow

Apache License 2.0
78 stars 87 forks source link

Citrix Netscaler: No templates for flowset-ids below 260 #94

Closed HenryTheSir closed 7 years ago

HenryTheSir commented 7 years ago

[2017-10-02T14:12:15,793][WARN ][logstash.codecs.netflow ] Can't (yet) decode flowset id 258 from observation domain id 1000, because no template to decode it with has been received. This message will usually go away after 1 minute.

But if one traces the incoming data for ~60 Secs there are Packets with the template Data and wireshark can decode them with not problem. image

In the Cache file are only templates for the following IDs: image

If necessary I can provide Wireshark trace.

The one thing I saw until now is that Wireshark is warning at the Template Packet for ID 258: image

jorritfolmer commented 7 years ago

If you can email me a pcap, I’ll take a look.

bluefangs commented 7 years ago

@jorritfolmer

I'm attaching a similar pcap file that contains both IDS (256 and 1024) I've also observed that the ones with id 256 are ignored while the id with 1024 get processed just fine. One difference I've noted is that I don't even get the log message that the OP has stated with id256 (can't yet decode flowset....)

@HenryTheSir - Can you try to replay my attached pcap file to see if the issue is the same?

Thanks.

not-working-pcap.pcap.tar.gz

HenryTheSir commented 7 years ago

Hi @bluefangs , your problems seems quite different to mine.

@jorritfolmer : I send the .pcap to you.

marian-craciunescu commented 7 years ago

@bluefangs your template can be decoded because you have actually 2 unkown fields in the template. Field 12 and 13 FIELD 12: Unkown (57590) with length 2 FIELD 13: Unkown (57591) with length 16

Any ideas what they are? in order to fix your problem you need to add them in netflow.yaml

bluefangs commented 7 years ago

@marian-craciunescu - Thanks for the suggestion. Those represent application-id and application-name. Rather strange that it is actually defined in the netflow yaml file :

94:
- :string
- :application_description
95:
- :application_id
- :application_id
96:
- :string
- :application_name

On the side note, does it matter if the fields are numbered 12 and 13 on the packet while in the yaml file it falls under 95 and 96?


Havning said that, I think you can disregard the pcap I've provided in this case since mine is a bit different. I'll look into my specific case further and maybe raise a new issue should there be a need.

Thanks!

jorritfolmer commented 7 years ago

@HenryTheSir Thanks for your pcap! I've looked at all the templates that the Netscaler emits, and it appears there are A LOT of fields we lack a definition for.

Do you have access to any documentation? A quick Google turns up empty...

These are the unknown fields:

In the Netscaler PEN 5951 we miss definitions of:

jorritfolmer commented 7 years ago

And also lack these in PEN 5951:

jorritfolmer commented 7 years ago

And:

jorritfolmer commented 7 years ago

And:

Plus:

Also:

jorritfolmer commented 7 years ago

No idea what these Netscaler guys have been smoking, but the list goes on and on. I'm pretty sure there must be fields like:

I've pushed a commit with the fields above (all netscalerUnknown). This should at least let you decode the templates below 270.

HenryTheSir commented 7 years ago

Hi @jorritfolmer ,

there is only the public available docu from citrix. But we could raise a case and hope to get more information.

One maybe silly question:

I changed my config -> ipfix_definitions => "/tmp/ipfix_template.prepared"

And the "/tmp/ipfix_template.prepared" contains a 1-1 copy of this file: https://github.com/logstash-plugins/logstash-codec-netflow/blob/master/lib/logstash/codecs/netflow/ipfix.yaml

but I get again the Unsupported enterprise field error

[2017-10-10T08:38:25,149][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>524, :enterprise=>5951, :length=>2} [2017-10-10T08:38:25,195][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>368, :enterprise=>5951, :length=>1} [2017-10-10T08:38:25,196][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>378, :enterprise=>5951, :length=>4} [2017-10-10T08:38:25,198][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>382, :enterprise=>5951, :length=>65535} [2017-10-10T08:38:25,205][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>410, :enterprise=>5951, :length=>1} [2017-10-10T08:38:25,206][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>469, :enterprise=>5951, :length=>4} [2017-10-10T08:38:25,207][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>462, :enterprise=>5951, :length=>4} [2017-10-10T08:38:25,207][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>395, :enterprise=>5951, :length=>4} [2017-10-10T08:38:25,207][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>482, :enterprise=>5951, :length=>1} [2017-10-10T08:38:25,207][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>515, :enterprise=>5951, :length=>2} [2017-10-10T08:38:25,209][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>497, :enterprise=>5951, :length=>8} [2017-10-10T08:38:25,209][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>495, :enterprise=>5951, :length=>8} [2017-10-10T08:38:47,083][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>368, :enterprise=>5951, :length=>1} [2017-10-10T08:38:47,084][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>378, :enterprise=>5951, :length=>4} [2017-10-10T08:38:47,086][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>382, :enterprise=>5951, :length=>65535} [2017-10-10T08:38:47,088][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>524, :enterprise=>5951, :length=>2} [2017-10-10T08:38:47,101][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>410, :enterprise=>5951, :length=>1} [2017-10-10T08:38:47,101][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>469, :enterprise=>5951, :length=>4} [2017-10-10T08:38:47,103][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>462, :enterprise=>5951, :length=>4} [2017-10-10T08:38:47,103][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>395, :enterprise=>5951, :length=>4} [2017-10-10T08:38:47,103][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>482, :enterprise=>5951, :length=>1} [2017-10-10T08:38:47,103][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>515, :enterprise=>5951, :length=>2} [2017-10-10T08:38:47,105][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>497, :enterprise=>5951, :length=>8} [2017-10-10T08:38:47,105][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>495, :enterprise=>5951, :length=>8} [2017-10-10T08:38:47,174][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>524, :enterprise=>5951, :length=>2} [2017-10-10T08:38:47,223][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>368, :enterprise=>5951, :length=>1} [2017-10-10T08:38:47,223][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>378, :enterprise=>5951, :length=>4} [2017-10-10T08:38:47,225][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>382, :enterprise=>5951, :length=>65535} [2017-10-10T08:38:47,239][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>410, :enterprise=>5951, :length=>1} [2017-10-10T08:38:47,239][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>469, :enterprise=>5951, :length=>4} [2017-10-10T08:38:47,240][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>462, :enterprise=>5951, :length=>4} [2017-10-10T08:38:47,241][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>395, :enterprise=>5951, :length=>4} [2017-10-10T08:38:47,241][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>482, :enterprise=>5951, :length=>1} [2017-10-10T08:38:47,241][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>515, :enterprise=>5951, :length=>2} [2017-10-10T08:38:47,242][WARN ][logstash.codecs.netflow ] Unsupported enterprise field {:type=>497, :enterprise=>5951, :length=>8}

Did I made a mistake?

jorritfolmer commented 7 years ago

No I don't think you made a mistake. Flows using tempates in the rage 250-260 and 261-270 should now decode.

The unsupported warnings are most likely from the higher numbered templates, I stopped adding the fields yesterday. There are likely loads more. I'll add them when I have more time available.

HenryTheSir commented 7 years ago

Thanks import now is working!

jorritfolmer commented 7 years ago

Thanks for the update!