Sniffing modes: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
= | = VoIPmonitor Deployment Guide = | ||
== Overview == | |||
VoIPmonitor can run '''on the same host''' as your PBX/SBC or on a '''dedicated sensor''' that receives mirrored traffic. | |||
This page lists supported deployment models, tunnelling methods, firewall rules and minimal configuration examples. | |||
= | == Linux host capture == | ||
Running the sniffer directly on a PBX/SBC requires '''no extra hardware''' or topology changes, but adds CPU / RAM / I/O load to that host. | |||
If sharing resources is unacceptable, use hardware or software mirroring instead. | |||
Port | == Hardware port mirroring == | ||
Port-mirroring (SPAN, RAP…) on your switch sends a copy of selected traffic to a dedicated Linux box running VoIPmonitor. | |||
The sniffer interface is set to promiscuous mode automatically; to capture on multiple ports set <code>interface = any</code> and | |||
enable promiscuous mode on each NIC manually: | |||
ifconfig eth1 promisc | |||
== Tunnelling options == | |||
* IP-in-IP, GRE, ERSPAN – built-in | |||
* TZSP (Mikrotik) → <code>udp_port_tzsp = 37008</code> | |||
* L2TP → <code>udp_port_l2tp = 1701</code> | |||
* VXLAN (AWS) → <code>udp_port_vxlan = 4789</code> | |||
* [[audiocodes tunneling]] → <code>udp_port_audiocodes</code> / <code>tcp_port_audiocodes</code> | |||
* HEP3 → enable <code>hep*</code> options | |||
* IPFIX (Oracle SBC) → <code>ipfix*</code> options | |||
== Software packet mirroring == | |||
=== All-in-one === | |||
When the sniffer, MySQL and GUI share a host, the GUI reads PCAPs locally and connects to MySQL over <code>localhost</code>. | |||
No sensor records are required in the GUI. | |||
= | === Multiple remote sensors, one DB / GUI === | ||
A '''sensor''' (a.k.a. sniffer / probe) can operate in two main ways: | |||
# '''Standard remote sniffer''' – processes packets locally, stores PCAPs locally, sends only CDRs to MySQL. GUI connects directly to each sensor’s management port. | |||
# '''New client / server mode (v20+)''' – encrypted TCP channel between sensor and a '''central sniffer'''. | |||
* Sensor can process packets locally and send only CDRs, '''or''' | |||
* mirror packets to the central sniffer for processing. | |||
GUI talks only to the central sniffer; sensors can stay behind NAT. | |||
;Summary of remote deployment modes | |||
{| class="wikitable" | |||
! Deployment | |||
! Packet processing | |||
! PCAP storage | |||
! Traffic to DB | |||
! GUI connectivity | |||
|- | |||
| Standard remote sniffer | |||
| Remote | |||
| Remote | |||
| Minimal (CDR only) | |||
| GUI ↔ sensor (management port) | |||
|- | |||
| New client/server (v20+) – '''local processing''' | |||
| Remote | |||
| Remote | |||
| Encrypted TCP (CDR only) | |||
| GUI ↔ central sniffer | |||
|- | |||
| New client/server (v20+) – '''packet mirroring''' | |||
| Central | |||
| Central | |||
| Encrypted TCP (full packets) | |||
| GUI ↔ central sniffer | |||
|} | |||
=== New client / server configuration === | |||
''client (remote) example'' | |||
id_sensor = <unique < 65536> | |||
server_destination = <central-IP> | |||
server_destination_port = 60024 | |||
server_password = somepassword | |||
; uncomment next line to send full packet stream instead of local processing | |||
; packetbuffer_sender = yes | |||
= | ''server (central) example'' | ||
server_bind = 0.0.0.0 | |||
server_bind_port = 60024 | |||
server_password = somepassword | |||
; remember to set mysql* options | |||
Connection uses DH key-exchange + AES encryption and compression. | |||
Sensors appear automatically in '''GUI → Settings → Sensors'''. | |||
== | == Cloud mode == | ||
id_sensor = <unique> | |||
cloud_token = __your_token__ | |||
cloud_url = https://cloud.voipmonitor.org/reg/register.php | |||
packetbuffer_file_path = /var/spool/voipmonitor/packetbuffer | |||
== Firewall checklist == | |||
* '''New client/server''' – central: 60024/TCP (probes) + 60024/TCP & 5029/TCP (GUI) | |||
* '''Old mirroring''' – central: 5030/TCP (probes) + 5029/TCP (GUI) | |||
* '''Standalone''' – DB: 3306/TCP (sensors) | |||
* '''Cloud''' – probes → cloud.voipmonitor.org :60023/TCP | |||
== Time synchronisation == | |||
All machines should run NTP with <code>minpoll 3</code> and <code>maxpoll 4</code>. Clock drift breaks call-leg correlation. | |||
== | == Migration hints == | ||
You may run two instances on the same host (one with legacy <code>mirror_bind_ip</code>, one with new <code>server_bind</code>) by giving each: | |||
* its own <code>id_sensor</code>, <code>managerport</code>, <code>spooldir</code> | |||
* a separate init script and/or binary | |||
== | == Why choose the new mode? == | ||
* Encrypted, compressed transport | |||
* One MySQL user on the central sniffer instead of many on each probe | |||
* GUI needs access only to the central sniffer, not to every probe | |||
* Optional off-loading of CPU/RAM from remote probes by mirroring packets | |||
For more details about multi-instance setups, contact support@voipmonitor.org. | |||
. |
Revision as of 00:25, 23 June 2025
VoIPmonitor Deployment Guide
Overview
VoIPmonitor can run on the same host as your PBX/SBC or on a dedicated sensor that receives mirrored traffic. This page lists supported deployment models, tunnelling methods, firewall rules and minimal configuration examples.
Linux host capture
Running the sniffer directly on a PBX/SBC requires no extra hardware or topology changes, but adds CPU / RAM / I/O load to that host. If sharing resources is unacceptable, use hardware or software mirroring instead.
Hardware port mirroring
Port-mirroring (SPAN, RAP…) on your switch sends a copy of selected traffic to a dedicated Linux box running VoIPmonitor.
The sniffer interface is set to promiscuous mode automatically; to capture on multiple ports set interface = any
and
enable promiscuous mode on each NIC manually:
ifconfig eth1 promisc
Tunnelling options
- IP-in-IP, GRE, ERSPAN – built-in
- TZSP (Mikrotik) →
udp_port_tzsp = 37008
- L2TP →
udp_port_l2tp = 1701
- VXLAN (AWS) →
udp_port_vxlan = 4789
- audiocodes tunneling →
udp_port_audiocodes
/tcp_port_audiocodes
- HEP3 → enable
hep*
options - IPFIX (Oracle SBC) →
ipfix*
options
Software packet mirroring
All-in-one
When the sniffer, MySQL and GUI share a host, the GUI reads PCAPs locally and connects to MySQL over localhost
.
No sensor records are required in the GUI.
Multiple remote sensors, one DB / GUI
A sensor (a.k.a. sniffer / probe) can operate in two main ways:
- Standard remote sniffer – processes packets locally, stores PCAPs locally, sends only CDRs to MySQL. GUI connects directly to each sensor’s management port.
- New client / server mode (v20+) – encrypted TCP channel between sensor and a central sniffer.
* Sensor can process packets locally and send only CDRs, or * mirror packets to the central sniffer for processing. GUI talks only to the central sniffer; sensors can stay behind NAT.
- Summary of remote deployment modes
Deployment | Packet processing | PCAP storage | Traffic to DB | GUI connectivity |
---|---|---|---|---|
Standard remote sniffer | Remote | Remote | Minimal (CDR only) | GUI ↔ sensor (management port) |
New client/server (v20+) – local processing | Remote | Remote | Encrypted TCP (CDR only) | GUI ↔ central sniffer |
New client/server (v20+) – packet mirroring | Central | Central | Encrypted TCP (full packets) | GUI ↔ central sniffer |
New client / server configuration
client (remote) example
id_sensor = <unique < 65536> server_destination = <central-IP> server_destination_port = 60024 server_password = somepassword ; uncomment next line to send full packet stream instead of local processing ; packetbuffer_sender = yes
server (central) example
server_bind = 0.0.0.0 server_bind_port = 60024 server_password = somepassword ; remember to set mysql* options
Connection uses DH key-exchange + AES encryption and compression. Sensors appear automatically in GUI → Settings → Sensors.
Cloud mode
id_sensor = <unique> cloud_token = __your_token__ cloud_url = https://cloud.voipmonitor.org/reg/register.php packetbuffer_file_path = /var/spool/voipmonitor/packetbuffer
Firewall checklist
- New client/server – central: 60024/TCP (probes) + 60024/TCP & 5029/TCP (GUI)
- Old mirroring – central: 5030/TCP (probes) + 5029/TCP (GUI)
- Standalone – DB: 3306/TCP (sensors)
- Cloud – probes → cloud.voipmonitor.org :60023/TCP
Time synchronisation
All machines should run NTP with minpoll 3
and maxpoll 4
. Clock drift breaks call-leg correlation.
Migration hints
You may run two instances on the same host (one with legacy mirror_bind_ip
, one with new server_bind
) by giving each:
- its own
id_sensor
,managerport
,spooldir
- a separate init script and/or binary
Why choose the new mode?
- Encrypted, compressed transport
- One MySQL user on the central sniffer instead of many on each probe
- GUI needs access only to the central sniffer, not to every probe
- Optional off-loading of CPU/RAM from remote probes by mirroring packets
For more details about multi-instance setups, contact support@voipmonitor.org.