mcore: running suricata on dpdk - reservoir labs, inc.€¦ · mcore: running suricata on dpdk...

1
mCore: Running Suricata on DPDK Peter Cullen, Troy Hanson, Jordi Ros-Giralt, Sruthi Yellamraju, James Ezick, Alison Ryan, Erik Mogus, Richard Lethin Reservoir Labs What is mCore? A vendor independent high-performance packet forwarding engine Runs on any DPDK-capable NIC, leverages DPDK high-performance features Forwards packets from the NIC to $N parallel applications, including Suricata and Zeek Suricata integration: Utilizes multi-threaded workers for scalability Easy configuration through suricata.yaml Integrated with Suricata stats counters (packets, bytes, drops) Base Architecture High-Performance Optimizations LongQE™ (Long queue emulation) BQE™ (Lockless bimodal queues) Kernel bypass Zero packet copy Lockless data structures Intelligent packet shunting NUMA affinity CPU/core affinity/pinning Multi-core elastic scalability Selective packet capture Emulates forwarder, avoids compute and cache thrashing overhead TailQE™ (Tail early dropping queue) Upon congestion, prioritize packets that carry highest entropy Lockless hash table: Negligible false positives, very low false negatives Lockless algorithm to mutate from single-producer/ no-consumer to single-producer/ single-consumer queue. mCore controller: Inits, manages, terminates the forwarding engine mcore-net-util: User CLI Plugins: Support for Zeek, Suricata, TAP Can filter traffic using DPDK rte_flow and BPF Elephant (LFN) Tables™

Upload: others

Post on 27-Jun-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: mCore: Running Suricata on DPDK - Reservoir Labs, Inc.€¦ · mCore: Running Suricata on DPDK Peter Cullen, Troy Hanson, Jordi Ros-Giralt, Sruthi Yellamraju, James Ezick, Alison

mCore: Running Suricata on DPDKPeter Cullen, Troy Hanson, Jordi Ros-Giralt, Sruthi Yellamraju, James Ezick, Alison Ryan, Erik Mogus, Richard Lethin

Reservoir Labs

What is mCore?● A vendor independent high-performance packet forwarding engine● Runs on any DPDK-capable NIC, leverages DPDK high-performance features● Forwards packets from the NIC to $N parallel applications, including Suricata

and Zeek● Suricata integration:

○ Utilizes multi-threaded workers for scalability○ Easy configuration through suricata.yaml○ Integrated with Suricata stats counters (packets, bytes, drops)

Base Architecture

High-Performance Optimizations

LongQE™ (Long queue emulation)

BQE™ (Lockless bimodal queues)

● Kernel bypass● Zero packet copy● Lockless data structures● Intelligent packet shunting

● NUMA affinity ● CPU/core affinity/pinning● Multi-core elastic scalability● Selective packet capture

Emulates forwarder, avoids compute and cache thrashing overhead

TailQE™ (Tail early dropping queue)

Upon congestion, prioritize packets that carry highest entropy

Lockless hash table: Negligible false positives,very low false negatives

Lockless algorithm to mutate from single-producer/no-consumer to single-producer/single-consumer queue.

● mCore controller: Inits, manages, terminates the forwarding engine

● mcore-net-util: User CLI● Plugins: Support for Zeek, Suricata, TAP● Can filter traffic using DPDK rte_flow

and BPF

Elephant (LFN) Tables™