Skip to main content

Plugin Configuration

Trisul consists of two base configs - the Trisul-Probe config file and the Trisul-Hub config file. If you wish to finely control how various metrics are computed you can tweak the following Plugin configuration files.

  • What are plugins?
    Trisul is a network analytics platform and hence most of the actual metering functionality are implemented as native plugins. Hence the name “plugin configuration”. Each plugin has a GUID, the plugin config files therefore are created with a GUID in them.

Plugin config editor

The config file that controls how IP’s are metered is called PI-01010101-125E-48D0-8AC9-A7E3AD2F60FD.xml. Use cfgedit to locate and edit these plugin config files.

Type the following command to bring up the editor.

sudo /usr/local/share/trisul-probe/cfgedit 

Then you can select the configuration to open the configuration file. Set the shell variable $EDITOR to your favorite text editor, or the tool opens the config file in nano

Examples

Usage: cfgedit [domain-name] [probe-id] [context-name]

Some examples

# to edit configs for default context 
sudo /usr/local/share/trisul-probe/cfgedit

# to edit context nf1 on probe1
sudo /usr/local/share/trisul-probe/cfgedit domain0 probe1 context_nf1

# to edit context firewall on domain0/probe0
sudo /usr/local/share/trisul-probe/cfgedit context_firewall

List of all available configuration files

Here is a list of all the current plugin configuration options.

NameDescription
HostsIP address based metering
Base DomainsDNS Base Domains metering (rules, regexes, etc)
NetflowNETFLOW/IPFIX policy. Link to a separate reference document.
SFlowSFLOW policy.
TCP FlowsTCP Flow metering, subnets, etc
UDP ProtoUDP Protocol parsing and metering
TCP ProtoTCP Protocol parsing and metering
App PortsApplication counting, special server ports
MacMAC layer, directional, broadcast metering etc
IP TunnelsUsed for 3GPP mobility (contact us)
DNSControl DNS extraction, resource, Full Text Search, etc
Http HostsHTTP Host header depth setting
GeoControls Geo plugin, country and ASN metering rules
BadfellasControls Badfellas lists, how they are refreshed, custom rules

Hosts

File: /usr/local/etc/trisul-probe/domain0/probe0/context0/PI-01010101-125E-48D0-8AC9-A7E3AD2F60FD.xml

Controls how hosts are metered. You need to tweak this only when working with very high speed networks and you want
maximum throughput per core at the expense of some metrics.

ParametersDefaultsDescription
SampleRate1packet sampling rate. Default, every packet.
ExternalIPOnlyfalseonly meter external IPs. IPs that are not in your HOME_NETWORK
ShortUpdatesfalselimited host updates - do not measure TotalBandwidth, IntoHomeNetwork, OutofHomeNetwork.

Base Domains

File: /usr/local/etc/trisul-probe/domain0/probe0/context0/PI-081336B3-5AF1-4D4F-B850-BA3CAEEB8A2C.xml

Base domains - map domain names used by popular webservices to Application Names.

ParametersDefaultsDescription
Rulesstring of regex to app namesThe rules section map domain regexes in Google RE2 format to application names. You can add your own rules to this list and they will be picked up when Trisul-Probe is restarted
StaticIPRulesmaps static IPs to applicationsMost useful in corporate or TELCO settings when you have a fixed mapping of IP addressess to applications. Mostly used by caches

Specifying rules

  • attribute k
    the key to update the Base Domains counter group
  • attribute x
    the regex in RE2 format that matches
  • order of matching
    the first match is selected
<Rule>     <k> WHATSAPP        </k><x>  whatsapp                                         </x></Rule>
<Rule> <k> FACEBOOK </k><x> (facebook|fbcdn|fb\.me) </x></Rule>
<Rule> <k> YOUTUBE </k><x> (youtube|ytimg|googlevideo|ggpht|gvt1\.com) </x></Rule>

SFlow

File: /usr/local/etc/trisul-probe/domain0/probe0/context0/PI-819CEF8E-B6DB-431B-97D0-7DB2A5EA5392.xml

See Netflow configuration file parameters The SFLOW options have the same meaning as those of the Netflow configuration.

TCP Flows

File: /usr/local/etc/trisul-probe/domain0/probe0/context0/PI-88384B31-883A-8383-1278-0F3A11CEEE90.xml

How TCP Sessions are metered.

ParametersDefaultsDescription
SubnetOnly0.0.0.0/0Only count flows in this subnet.
ShortUpdatesfalseOnly count payloads > 200 bytes and dont measure payload counts.

UDP Protocol dissector

File: /usr/local/etc/trisul-probe/domain0/probe0/context0/PI-09809283-125E-48D0-8AC9-A7E3AD2F60FD.xml

Controls how UDP protocol dissection is done.

ParametersDefaultsDescription
EnableAccessPointstrueAllows a dynamic mapping for port based higher level protocol. Disable for very high speed network on limited hardware.

TCP based metering

File: /usr/local/etc/trisul-probe/domain0/probe0/context0/PI-923740FF-125E-48D0-8AC9-A7E3AD2F60FD.xml

How TCP is metered.

ParametersDefaultsDescription
EnableAccessPointstrueAllows a dynamic mapping for port based higher level protocol. Disable for very high speed network on limited hardware.

APP Ports

File: /usr/local/etc/trisul-probe/domain0/probe0/context0/PI-9999CCCC-125E-48D0-8AC9-A7E3AD2F60FD.xml

ParametersDefaultsDescription
SampleRate1Only process every X packet.
ShortUpdatesfalseSet to true to skip some metrics. If true - skips tracking home network based meters.

AppPolicyItem

By default, the app ports are selected using the following formula. If TCP, the client port is the side with the initial SYN packet. Otherwise if the protocol is UDP, or if the SYN packet is missed, the lower port is treated as the server port. This section allows you to specify exact rules.

ParametersDefaultsDescription
ServerPortslist of portsList of ports. Eg 40000,50000~51000,8378
Subnetsa single subnetA range of IP to which the above server ports are used.

MAC

File: /usr/local/etc/trisul-probe/domain0/probe0/context0/PI-ABBBBBCC-125E-48D0-8AC9-A7E3AD2F60FD.xml

Controls how MAC addresses are metered.

ParametersDefaultsDescription
SampleRate1Process only 1 in X packets
MeterMACPairstrueMeter MAC pairs every single Source->Dest
MeterBroadcasttrueMeter broadcast addresess

IP TUNNELS

File: /usr/local/etc/trisul-probe/domain0/probe0/context0/PI-AFFFFFFF-125E-48D0-8AC9-A7E3AD2F60FD.xml

Used for Mobility tunnels.

ParametersDefaultsDescription
descriptionControls IP Tunneling Deployments
Detunnel3GPPGTPUfalseContact us for details.

DNS

File: /usr/local/etc/trisul-probe/domain0/probe0/context0/PI-CCCBBBB3-125E-48D0-8AC9-A7E3AD2F60FD.xml

How DNS protocol is metered.

ParametersDefaultsDescription
SampleRate1Once every X packets
CreateFTSDocumenttrueDo you want to create a Full Text Search Document.
ExtractResourcestrueExtract DNS Resources. Resources can be thought of as Logs
MergeCDNtrueIf true, CDN names like akamai.. in answer records map to the original Query name
TrackBaseDomainstrueEnable base domains feature.
BloomFilterResetMask20971512^21-1 increase this if you have a very large number of DNS responses
GenerateAlertOnErrortrueNXDomain responses will result in a UserAlerts error

HTTP Hosts

File: /usr/local/etc/trisul-probe/domain0/probe0/context0/PI-D2AAD7C6-E129-4366-A2AD-A8CB9AA4C2F4.xml

How HTTP Hosts are metered.

ParametersDefaultsDescription
DomainDepth0See below, you can control how HTTP hostnames are processed

DomainDepth if you have a HTTP host like lax25.sjv.y1.youtube.com

0indicates fulldomain
1com
2youtube.com
3y1.youtube.com