我需要一个工具来收集IPFIX记录,并将每个数据包的内容记录到日志文件或数据库中,以验证IPFIX发射器的准确性。这个IPFIX发射器在我需要验证的ipfix记录以及标准套件中发送企业扩展。
到目前为止,我已经了解了NFDump,它满足了我收集和存储记录的需求,但从我到目前为止所看到的情况来看,它不会存储企业扩展的内容。
可以配置NFDump来存储企业扩展吗?是否有不同的IPFIX收集器能满足我的需要?
发布于 2014-08-13 11:13:06
审查员可以做到这一点。我们需要一个文档来解释您的企业元素的内容,我们可以在几个小时内完成它。
发布于 2014-08-14 14:57:38
正如Felix所建议的那样,更多的澄清和链接可能会有所帮助。所以就这样..。
IPFIX增加了供应商使用自己的信息元素(IEs)扩展IPFIX的能力。这是非常强大的,但协议并不能传输收集器解释IEs所需的所有信息。要有效地解释IEs,收集器需要知道IE数据类型、语义等。
对于标准IEs,此信息可在IANA http://www.iana.org/assignments/ipfix中获得)。对于供应商IEs,此信息在任何标准位置或格式中都不可用。
对于oonska来说,这意味着收集器可以支持IPFIX,但是仍然不能对使用供应商IE导出的数据做任何有用的事情。对于审查员,我们非常努力地学习和支持所有的供应商IEs。如果我们目前不支持您感兴趣的IEs,正如杰克所指出的,我们可以非常快地添加支持。
我不知道您在寻找什么,但审查器已经支持IPFIX供应商IEs来自Barracuda,Cisco,Citrix,,SonicWall,VMware等。如果您感兴趣的IPFIX IEs不在该列表中,我将很高兴看到它们被添加。
将对供应商IEs的支持添加到检查程序(或任何收藏品)所需的基本信息是:
elementName(vendorPEN/elementId){datatypesemantics}
上面提到的IANA页面有列出当前为IPFIX定义的语义、单元和类型的表。
下面是一个Plixer的示例,其中填充了值:
Event_id(13745/106号){标识符}
IE描述的格式并不重要,但我喜欢来自RFC7013的上述格式。它易于阅读和可解析,这使得导入新的IEs琐碎。
其他有用的信息包括
一旦定义了新的IEs,检查器将允许您以任何您喜欢的方式查看这些IEs中的数据。您可以使用报表设计器(http://www.plixer.com/blog/advanced-netflow-reporting-2/custom-netflow-reporting/)构建自定义报表,也可以使用FlowView (http://www.plixer.com/blog/netflow-reporting-2/flowview-netflow/)查看每个单独的流。
您可以在http://www.plixer.com/Scrutinizer-Netflow-Sflow/scrutinizer.html下载一份副本
希望这能帮上忙。
发布于 2017-04-23 21:32:21
对于来自Google的任何人来说,我学到了以下内容(关于开源工具)。我已经完成了第二代接收IPFIX数据的工作,我曾经使用一个工具(从libipfix中分叉)接收IPFIX,并以JSON的形式将其作为JSON发送到ELK中。这有点过时了,我现在不推荐它了(特别是NetScalar 11打破了它的一些预存储模板)。
我建议使用LogStash (5.3或更高版本)来接收IPFIX数据;特别是如果您打算将其摄入ELK中。这是作为一个编解码器完成的(输入将是'udp')
https://www.elastic.co/guide/en/logstash/current/plugins-codecs-netflow.html
下面是一个示例输入
input {
udp {
host => "0.0.0.0"
port => 4739
codec => netflow {
versions => [10]
target => ipfix
}
type => ipfix
}
}为了让您了解从中得到的输出,下面是TCP连接(LDAPS)和HTTPS (SSL终止于NetScaler)请求的几条消息(这里使用“stdout”输出和“rubydebug”编解码器显示)。
{
"ipfix" => {
"destinationTransportPort" => 39912,
"flowEndMicroseconds" => "2017-04-11T02:53:09.000Z",
"sourceIPv4Address" => "10.x.x.x",
"netscalerUnknown329" => 0,
"egressInterface" => 0,
"octetDeltaCount" => 6600,
"netscalerAppNameAppId" => 165707776,
"sourceTransportPort" => 636,
"flowId" => 14049270,
"destinationIPv4Address" => "10.y.y.y",
"observationPointId" => 472006666,
"netscalerConnectionId" => 14049269,
"tcpControlBits" => 25,
"flowStartMicroseconds" => "2017-04-11T02:53:09.000Z",
"ingressInterface" => 2147483651,
"version" => 10,
"packetDeltaCount" => 16,
"netscalerRoundTripTime" => 0,
"netscalerConnectionChainID" => "00000000000000000000000000000000",
"ipVersion" => 4,
"protocolIdentifier" => 6,
"netscalerUnknown331" => 0,
"netscalerUnknown332" => 0,
"exportingProcessId" => 0,
"netscalerFlowFlags" => 1090527232,
"netscalerTransactionId" => 342306495,
"netscalerConnectionChainHopCount" => 0
},
"@timestamp" => 2017-04-11T02:53:09.000Z,
"@version" => "1",
"host" => "172.28.128.3",
"type" => "ipfix"
}
{
"ipfix" => {
"netscalerHttpReqUserAgent" => "",
"destinationTransportPort" => 443,
"netscalerHttpReqCookie" => "",
"flowEndMicroseconds" => "2017-04-11T02:52:49.000Z",
"netscalerHttpReqUrl" => "/someblah",
"sourceIPv4Address" => "10.z.z.z",
"netscalerHttpReqMethod" => "POST",
"netscalerHttpReqHost" => "some.example.com",
"egressInterface" => 2147483651,
"octetDeltaCount" => 1165,
"netscalerAppNameAppId" => 36274176,
"sourceTransportPort" => 59959,
"flowId" => 14043803,
"netscalerHttpReqAuthorization" => "",
"netscalerHttpDomainName" => "",
"netscalerAaaUsername" => "",
"netscalerHttpContentType" => "",
"destinationIPv4Address" => "10.w.w.w",
"observationPointId" => 472006666,
"netscalerHttpReqVia" => "",
"netscalerConnectionId" => 14043803,
"tcpControlBits" => 24,
"flowStartMicroseconds" => "2017-04-11T02:52:49.000Z",
"ingressInterface" => 1,
"version" => 10,
"packetDeltaCount" => 1,
"netscalerUnknown330" => 0,
"netscalerConnectionChainID" => "928ba0c1da3300000145ec5805800e00",
"ipVersion" => 4,
"protocolIdentifier" => 6,
"netscalerHttpResForwLB" => 0,
"netscalerHttpReqReferer" => "",
"exportingProcessId" => 0,
"netscalerAppUnitNameAppId" => 0,
"netscalerFlowFlags" => 151134208,
"netscalerTransactionId" => 342305773,
"netscalerHttpResForwFB" => 0,
"netscalerConnectionChainHopCount" => 1,
"netscalerHttpReqXForwardedFor" => ""
},
"@timestamp" => 2017-04-11T02:52:51.000Z,
"@version" => "1",
"host" => "172.28.128.3",
"type" => "ipfix"
}我目前只在开发中使用这个,但它似乎比我以前使用的要好得多。
唯一的问题是你现在想用它做什么,因为它是不可吃的。您可以创建一个工具,将客户端->NS流与NS->后端流以及应用程序请求连接起来(如果您已将其记录在案)。
https://serverfault.com/questions/619990
复制相似问题