Napatech
Configuration & building
First Installation
The old way
- 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
Install all libraries that the configure needs.
- edit INCLUDES and LIBS_PATH lines in the Makefile
INCLUDES = -I/usr/napatech3/include -I/usr/local/include ${MYSQLINC} -I jitterbuffer/ ${JSONCFLAGS} ${GLIBCFLAGS} LIBS_PATH = -L/opt/napatech3/lib -L/usr/local/lib/
- 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
The new way (from the sensor's version 24.23)
- 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 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 manual way
cd /usr/src/sniffer git pull make
- copy to the original directory and restart sensor
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.
Settings
- 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
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)) # End NTPL
Start it with the command
/opt/napatech3/bin/ntstart.sh -n myfilters.ntpl