Napatech: Difference between revisions
No edit summary |
No edit summary |
||
(11 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== Configuration & building == | == Configuration & building == | ||
= First Installation = | |||
== Steps == | |||
* download latest Napatech drivers and untar it into e.g. /opt/napatech3 | * download latest Napatech drivers and untar it into e.g. /opt/napatech3 | ||
Line 37: | Line 11: | ||
cd /usr/src | cd /usr/src | ||
git clone https://github.com/voipmonitor/sniffer.git | git clone -b master https://github.com/voipmonitor/sniffer.git | ||
OR | |||
git clone -b develop https://github.com/voipmonitor/sniffer.git | |||
cd sniffer | cd sniffer | ||
./configure --with-dpdk-include=/opt/napatech3/include --with-dpdk-lib=/opt/napatech3/lib | ./configure --with-dpdk-include=/opt/napatech3/include --with-dpdk-lib=/opt/napatech3/lib | ||
Line 52: | Line 28: | ||
* run it | * run it | ||
= Upgrade = | |||
==The GUI way (from the sensor's version 24.23)== | |||
Until sensor's version 24.23 was not possible to do the sensor's upgrade via 'upgrade_by_git' option because the configure script | |||
overwritten the adjusted Makefile and you built a binary with standard pcap libs (until you overwritten the orig libs). With 'configure_param' option you can adjust the Makefile creation for appropriate includes/libs | |||
* set these options into voipmonitor.conf | * set these options into voipmonitor.conf | ||
Line 68: | Line 41: | ||
upgrade_by_git = yes | upgrade_by_git = yes | ||
git_folder = /usr/src/sniffer | git_folder = /usr/src/sniffer | ||
configure_param --with-dpdk-include=/opt/napatech3/include --with-dpdk-lib=/opt/napatech3/lib | configure_param = --with-dpdk-include=/opt/napatech3/include --with-dpdk-lib=/opt/napatech3/lib | ||
* restart sniffer | * restart sniffer | ||
Line 76: | Line 49: | ||
== Settings == | ==The manual way== | ||
cd /usr/src/sniffer | |||
git pull | |||
make | |||
* copy to the original directory and restart sensor | |||
= napatech drivers = | |||
== Settings sample == | |||
* in voipmonitor.conf | * in voipmonitor.conf | ||
Line 138: | Line 121: | ||
System dependent: | System dependent: | ||
TimeSyncConnectorExt1 = NttsIn | TimeSyncConnectorExt1 = NttsIn | ||
For new napatech drivers use following to set OS time for packets from napatech | |||
TimesynConnectorExt1 = None | |||
TimeSyncReferencePrioroity =OSTime | |||
== Hints == | |||
=== service file for voipmonitor === | |||
You need to add to voipmonitor's service file that napatech drivers (ntservice) needs to be started before the voipmonitor | |||
[https://www.voipmonitor.org//doc/Systemd_for_voipmonitor_service_management#service_file_and_napatech_drivers by modifiyng the service file] | |||
=== Filter traffic on Napatech card === | |||
If you want to filter a data directly in the Napatech card you can use this example as a starting point. | |||
(many thanks to Distributel for the example) | |||
Create a file e.g /opt/napatech3/myfilter.ntpl | |||
# Start NTPL | |||
# Delete all existing filter | |||
delete = all | |||
# Setup UDP macros | |||
DefineMacro("mUdpSrcPort", "Data[DynOffset=DynOffUDPFrame;Offset=0;DataType=ByteStr2]") | |||
DefineMacro("mUdpDestPort", "Data[DynOffset=DynOffUDPFrame;Offset=2;DataType=ByteStr2]") | |||
# Setup filters | |||
# The first line is the SIP filter. The second line is the RTP filter for our specific ports in HEX (10000-61743) | |||
Assign[StreamId = 0] = (mUdpSrcPort == 5060, 5061) AND (mUdpDestPort == 5060, 5061) | |||
Assign[StreamId = 0] = (mUdpSrcPort == (0x2710..0xF12F)) | |||
Assign[StreamId = 1] = (mUdpSrcPort == 5060, 5061) AND (mUdpDestPort == 5060, 5061) | |||
Assign[StreamId = 1] = (mUdpSrcPort == (0x2710..0xF12F)) | |||
Assign[StreamId = 2] = (mUdpSrcPort == 5060, 5061) AND (mUdpDestPort == 5060, 5061) | |||
Assign[StreamId = 2] = (mUdpSrcPort == (0x2710..0xF12F)) | |||
Assign[StreamId = 3] = (mUdpSrcPort == 5060, 5061) AND (mUdpDestPort == 5060, 5061) | |||
Assign[StreamId = 3] = (mUdpSrcPort == (0x2710..0xF12F)) | |||
# End NTPL | |||
# Enable Deduplication | |||
DeduplicationConfig[drop=duplicate] = GroupID == 0 | |||
Define ckRecipe = CorrelationKey(Begin=StartOfFrame[0], End=EndOfFrame[0], DeduplicationGroupID=0) | |||
Assign[StreamID=0,1,2,3; CorrelationKey=ckRecipe] = Port == 0,1,2,3 | |||
Start it with the command | |||
/opt/napatech3/bin/ntstart.sh -n myfilters.ntpl |
Latest revision as of 15:51, 15 January 2025
Configuration & building
First Installation
Steps
- download latest Napatech drivers and untar it into e.g. /opt/napatech3
- build the driver
- download the the sniffer's source
cd /usr/src git clone -b master https://github.com/voipmonitor/sniffer.git OR git clone -b develop https://github.com/voipmonitor/sniffer.git cd sniffer ./configure --with-dpdk-include=/opt/napatech3/include --with-dpdk-lib=/opt/napatech3/lib
Install all libraries that the configure needs.
- run make
- check it's built properly
root@server:/usr/src/sniffer# ldd ./voipmonitor | grep pcap libpcap.so.1 => /opt/napatech3/lib/libpcap.so.1 (0x00007fc0b69b0000)
- replace original binary in the /usr/local/sbin
- run it
Upgrade
The GUI way (from the sensor's version 24.23)
Until sensor's version 24.23 was not possible to do the sensor's upgrade via 'upgrade_by_git' option because the configure script overwritten the adjusted Makefile and you built a binary with standard pcap libs (until you overwritten the orig libs). With 'configure_param' option you can adjust the Makefile creation for appropriate includes/libs
- set these options into voipmonitor.conf
upgrade_by_git = yes git_folder = /usr/src/sniffer configure_param = --with-dpdk-include=/opt/napatech3/include --with-dpdk-lib=/opt/napatech3/lib
- restart sniffer
- do the upgrade via clicking in the GUI
The sniffer will perform (after click on UPGRADE in GUI) git pull,configure,make_clean,make, service voipmonitor stop, make install, service voipmonitor start.
The manual way
cd /usr/src/sniffer git pull make
- copy to the original directory and restart sensor
napatech drivers
Settings sample
- in voipmonitor.conf
interface = napa0 # filter option must be commented out !!! E.g. #filter = udp or (vlan and udp)
- /opt/napatech3/config/ntpcap.ini
# Napatech default ntpcap.ini file [Common] Ntpl1 = "Assign[streamid=0;txport=0;txignore=true]=all" [napa0 ] StreamId = 0 Tx = 0
- old version
[napa0] Rx1="Assign[streamid=252;txport=0;txignore=true]=all" Tx=0
- /opt/napatech3/config/ntservice.ini
[System] TimestampFormat = NATIVE_UNIX TimestampMethod = EOF HostBufferWaitMethod = 0 SDRAMFillLevelWarning = 0
[logging] LogMask = 0x07 LogToFile = 0 LogFileName = /tmp/Log3G_%s.log LogBufferWrap = wrap [Adapter0] AdapterType = NT4E BusId = 00:07:00:00 PacketDescriptor = NT HostBuffersRx = [8,16,0] HostBuffersTx = [8,16,0] TimeSyncProtocol = NT TimeSyncConnectorIn = Ext TimeSyncConnectorOut = None TimeSyncConnectorRepeat = None TimeSyncTimeJumpThreshold = 1 TimeSyncTimeOffset = 0 MaxFrameSize = 9018 AltTPID = 0x8100 Profile = Capture DiscardSize = 16 OsTimeSyncFailover = DISABLE
Timing source In napatech where timestamp of packets is shifted to GMT and you want use system time instead: GMT:
TimeSyncConnectorExt1 = PpsIn
System dependent:
TimeSyncConnectorExt1 = NttsIn
For new napatech drivers use following to set OS time for packets from napatech
TimesynConnectorExt1 = None TimeSyncReferencePrioroity =OSTime
Hints
service file for voipmonitor
You need to add to voipmonitor's service file that napatech drivers (ntservice) needs to be started before the voipmonitor by modifiyng the service file
Filter traffic on Napatech card
If you want to filter a data directly in the Napatech card you can use this example as a starting point. (many thanks to Distributel for the example)
Create a file e.g /opt/napatech3/myfilter.ntpl
# Start NTPL # Delete all existing filter delete = all # Setup UDP macros DefineMacro("mUdpSrcPort", "Data[DynOffset=DynOffUDPFrame;Offset=0;DataType=ByteStr2]") DefineMacro("mUdpDestPort", "Data[DynOffset=DynOffUDPFrame;Offset=2;DataType=ByteStr2]") # Setup filters # The first line is the SIP filter. The second line is the RTP filter for our specific ports in HEX (10000-61743) Assign[StreamId = 0] = (mUdpSrcPort == 5060, 5061) AND (mUdpDestPort == 5060, 5061) Assign[StreamId = 0] = (mUdpSrcPort == (0x2710..0xF12F)) Assign[StreamId = 1] = (mUdpSrcPort == 5060, 5061) AND (mUdpDestPort == 5060, 5061) Assign[StreamId = 1] = (mUdpSrcPort == (0x2710..0xF12F)) Assign[StreamId = 2] = (mUdpSrcPort == 5060, 5061) AND (mUdpDestPort == 5060, 5061) Assign[StreamId = 2] = (mUdpSrcPort == (0x2710..0xF12F)) Assign[StreamId = 3] = (mUdpSrcPort == 5060, 5061) AND (mUdpDestPort == 5060, 5061) Assign[StreamId = 3] = (mUdpSrcPort == (0x2710..0xF12F)) # End NTPL # Enable Deduplication DeduplicationConfig[drop=duplicate] = GroupID == 0 Define ckRecipe = CorrelationKey(Begin=StartOfFrame[0], End=EndOfFrame[0], DeduplicationGroupID=0) Assign[StreamID=0,1,2,3; CorrelationKey=ckRecipe] = Port == 0,1,2,3
Start it with the command
/opt/napatech3/bin/ntstart.sh -n myfilters.ntpl