FFPF: Fairly Fast Packet Filters uspace kspace nspace Vrije Universiteit Amsterdam Herbert Bos Willem de Bruijn Trung Nguyen Mihai Cristea Georgios Portokalidis.

Slides:



Advertisements
Similar presentations
Categories of I/O Devices
Advertisements

CS 443 Advanced OS Fabián E. Bustamante, Spring 2005 Resource Containers: A new Facility for Resource Management in Server Systems G. Banga, P. Druschel,
Computer Organization and Architecture
01/05/2015Leiden Institute of Advanced Computer Science 1 The Open Kernel Environment - spinning Linux - Herbert Bos Bart Samwel
Chapter 12 CPU Structure and Function. CPU Sequence Fetch instructions Interpret instructions Fetch data Process data Write data.
Computer Organization and Architecture
Computer Organization and Architecture
CS-334: Computer Architecture
Introduction to ISA 2004 Dana Epp Microsoft Security MVP.
Access Control for Networks Problems: –Enforce an access control policy Allow trust relationships among machines –Protect local internet from outsiders.
Firewalls and Intrusion Detection Systems
Snort - an network intrusion prevention and detection system Student: Yue Jiang Professor: Dr. Bojan Cukic CS665 class presentation.
RDMA ENABLED WEB SERVER Rajat Sharma. Objective  To implement a Web Server serving HTTP client requests through RDMA replacing the traditional TCP/IP.
OS support for (flexible) high-speed networking Herbert Bos Vrije Universiteit Amsterdam uspace kspace nspace u k n monitoring intrusion detection packet.
FFPF: Fairly Fast Packet Filters uspace kspace nspace Vrije Universiteit Amsterdam Herbert Bos Willem de Bruijn Trung Nguyen Mihai Cristea Georgios Portokalidis.
An IST Projecthttp:// 1 Herbert Bos, VU, FFPF: Fairly Fast Packet Filters Herbert Bos Vrije Universiteit.
FIREWALLS & NETWORK SECURITY with Intrusion Detection and VPNs, 2 nd ed. 6 Packet Filtering By Whitman, Mattord, & Austin© 2008 Course Technology.
Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS Professor Yan Chen.
Gursharan Singh Tatla Transport Layer 16-May
September RTC-Mon Enabling High-Speed and Extensible Real-Time Communications Monitoring Diego Costantini, Felipe Huici
CH12 CPU Structure and Function
FIREWALL TECHNOLOGIES Tahani al jehani. Firewall benefits  A firewall functions as a choke point – all traffic in and out must pass through this single.
Sven Ubik, Petr Žejdl CESNET TNC2008, Brugges, 19 May 2008 Passive monitoring of 10 Gb/s lines with PC hardware.
Networks CSCI-N 100 Dept. of Computer and Information Science.
A Brief Taxonomy of Firewalls
RAID2005 CardGuard: Towards software-based signature detection for intrusion prevention on the network card Herbert Bos and Kaiming Huang presented by.
Jennifer Rexford Princeton University MW 11:00am-12:20pm Programmable Data Planes COS 597E: Software Defined Networking.
FIREWALL Mạng máy tính nâng cao-V1.
Chapter 1 An Introduction to Networking
Workpackage 3 New security algorithm design ICS-FORTH Paris, 30 th June 2008.
ECE 526 – Network Processing Systems Design Network Processor Architecture and Scalability Chapter 13,14: D. E. Comer.
LiNK: An Operating System Architecture for Network Processors Steve Muir, Jonathan Smith Princeton University, University of Pennsylvania
SIGCOMM 2002 New Directions in Traffic Measurement and Accounting Focusing on the Elephants, Ignoring the Mice Cristian Estan and George Varghese University.
N E T G R O U P P O L I T E C N I C O D I T O R I N O Towards Effective Portability of Packet Handling Applications Across Heterogeneous Hardware Platforms.
1 Liquid Software Larry Peterson Princeton University John Hartman University of Arizona
MIDeA :A Multi-Parallel Instrusion Detection Architecture Author: Giorgos Vasiliadis, Michalis Polychronakis,Sotiris Ioannidis Publisher: CCS’11, October.
Programmable Networks: Active Networks + SDN. How to Introduce new services Overlays: user can introduce what-ever – Ignores physical network  perf overhead.
OPERATING SYSTEMS Goals of the course Definitions of operating systems Operating system goals What is not an operating system Computer architecture O/S.
Vladimír Smotlacha CESNET Full Packet Monitoring Sensors: Hardware and Software Challenges.
1 The Internet and Networked Multimedia. 2 Layering  Internet protocols are designed to work in layers, with each layer building on the facilities provided.
Routers and Routing Basics CCNA 2 Chapter 10.
Network Security. 2 SECURITY REQUIREMENTS Privacy (Confidentiality) Data only be accessible by authorized parties Authenticity A host or service be able.
Distributed Denial of Service Attacks Shankar Saxena Veer Vivek Kaushik.
Computer Security Workshops Networking 101. Reasons To Know Networking In Regard to Computer Security To understand the flow of information on the Internet.
EECB 473 DATA NETWORK ARCHITECTURE AND ELECTRONICS PREPARED BY JEHANA ERMY JAMALUDDIN Basic Packet Processing: Algorithms and Data Structures.
Department of Computer Science and Engineering Applied Research Laboratory Architecture for a Hardware Based, TCP/IP Content Scanning System David V. Schuehler.
Sniffer, tcpdump, Ethereal, ntop
Workpackage 3 New security algorithm design ICS-FORTH Ipswich 19 th December 2007.
High-Speed Policy-Based Packet Forwarding Using Efficient Multi-dimensional Range Matching Lakshman and Stiliadis ACM SIGCOMM 98.
ICS-FORTH WISDOM Workpackage 3: New security algorithm design FORTH-ICS Update and plans for the next six months Heraklion, 4 th June 2007.
Hardened IDS using IXP Didier Contis, Dr. Wenke Lee, Dr. David Schimmel Chris Clark, Jun Li, Chengai Lu, Weidong Shi, Ashley Thomas, Yi Zhang  Current.
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
1 ECE 526 – Network Processing Systems Design System Implementation Principles I Varghese Chapter 3.
Addressing Data Compatibility on Programmable Network Platforms Ada Gavrilovska, Karsten Schwan College of Computing Georgia Tech.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco Public 1 OSI transport layer CCNA Exploration Semester 1 – Chapter 4.
SDN and Security Security as a service in the cloud
Snort – IDS / IPS.
Data Streaming in Computer Networking
COS 561: Advanced Computer Networks
POOJA Programmer, CSE Department
Lecture 2: Overview of TCP/IP protocol
Lecture 3: Secure Network Architecture
Congestion Control, Internet Transport Protocols: UDP
CS703 - Advanced Operating Systems
Chapter 11 Processor Structure and function
Last Class: Communication in Distributed Systems
Transport Layer 9/22/2019.
Presentation transcript:

FFPF: Fairly Fast Packet Filters uspace kspace nspace Vrije Universiteit Amsterdam Herbert Bos Willem de Bruijn Trung Nguyen Mihai Cristea Georgios Portokalidis Universiteit Leiden Vrije Universiteit Amsterdam u k n

Why? ● Traffic characterisation – what % of traffic used by KaZaa, Gnutella, e-Donkey, video streams, FTP data?  difficult due to dynamic ports

Why? ● Security: worms – early warning: are there any worms on the loose? – intrusion detection ● Denial of Service attacks spread of CODE-RED in 24 hours

Why? ● Security: worms – early warning: are there any worms on the loose? – intrusion detection ● Denial of Service attacks  difficult at high speeds spread of SAPPHIRE in 30 minutes

Why? ● traffic engineering ● accounting ● billing ● SLA monitoring  monitoring increasingly important  hypothesis: multiple applications on single host – monitoring nodes (e.g., gateways)

Network Monitoring ● Existing solutions: – designed for slow networks or traffic engineering/QoS – not very flexible ● We’re hurting because of – hardware (bus, memory) – software  demand for solution: – scales to high link rates – scalable in no. of apps – flexible -process at lowest possible level -minimise copying -minimise context switching -freedom at the bottom

FFPF contributions generalised concept of ‘flow’ copying and context switching are minimised complex processing in kernel or NIC - reduces no. of packets that must be sent to userspace - language neutral - complex packet processing by connecting simple filters (not unlike UNIX pipes) FPL: FFPF Packet Language persistent storage for flow-specific state flow groups - applications sharing buffers

Application B reduce copying ● FFPF avoids both ‘horizontal’ and ‘vertical’ copies ● 3 buffers: PBuf, IBuf, and MBuf Application A U K ‘filter’ - no ‘vertical’ copies - no ‘horizontal’ copies within flow group - more than ‘just filtering’ in kernel (e.g.,statistics)

Fairly Fast Packet Filters Flow: “a stream of packets that matches arbitrary user criteria” TCP SYN UID 0 eth0 U TCP UDP IP HTTP RTSP RTP “contains worm”

? x ? ? ? kernel userspace network card Efficient ● flowgroups: sharing data ● flowgraphs: sharing computations ● reduced copying and context switches “push filtering tasks as far down the processing hierarchy as possible”

(device,eth0) | (device,eth1) -> (sampler,2) -> (FPL-2,”..”) | (BPF,”..”) -> (bytecount) (device,eth0) -> (sampler,2) -> (BPF,”..”) -> (packetcount) Extensible ✔ modular framework ✔ language agnostic ✔ plug-in filters (device,eth0) -> (sampler,2) -> (BPF,”..”) -> (packetcount) (device,eth0) -> (sampler,2) -> (BPF,”..”) -> (strsearch) devicesamplerBPFpktcount strsearch

uspace kspace nspace MAPI PCAP ANY APP Compatible processing hierarchy

Buffers ● MBuf – unstructured array of bytes ● PBuf – circular buffer with N fixed-size slots – large enough to hold packet ● IBuf – circular buffer with N slots of size ‘sizeof(int)+sizeof(int*)’ – contains classification result  writer (e.g., kernel) writes in circular buffer at write position  reader explicitly advances its read pointer X O O O O O OO W R

Buffers ● MBuf – unstructured array of bytes ● PBuf – circular buffer with N fixed-size slots – large enough to hold packet ● IBuf – circular buffer with N slots of size ‘sizeof(int)+sizeof(int*)’ – contains classification result  writer (e.g., kernel) writes in circular buffer at write position  reader explicitly advances its read pointer X O O O O O OO W R

● MBuf – unstructured array of bytes ● PBuf – circular buffer with N fixed-size slots – large enough to hold packet ● IBuf – circular buffer with N slots of size ‘sizeof(int)+sizeof(int*)’ – contains classification result  writer (e.g., kernel) writes in circular buffer at write position  reader explicitly advances its read pointer (typically by >1) X X X X X X OO W R Buffers

Buffer management  what to do if writer catches up with slowest reader? ● slow reader preference – drop new packets (traditional way of dealing with this) – overall speed determined by slowest reader ● fast reader preference – overwrite existing packets – application responsible for keeping up ● can check that packets have been overwritten ● different drop rates for different apps O O O O O OO R1 O O O O O O O O O W

Languages ● FFPF is language neutral ● Currently support: – BPF – C – OKE Cyclone – FPL-1 – FPL-2 simple to use compiles to C and then to optimised object code resource limited restricted FOR loop access to persistent storage (Mbuf) calls to external functions (e.g., fast C functions or hardware assists) compiler for uspace, kspace, and nspace (ixp1200) IF (PKT.IP_PROTO == PROTO_TCP) THEN // reg.0 = hash over flow fields R[0] = Hash (14,12,256) // increment pkt counter at this // location in MBuf MEM[ R[0] ]++ FI

Authorisation and third-party code ● client requests need to be approved by authd – may check that: ● X only looks at packets destined to itself ● Y never applies a string search ● string search only occurs after sampling ● FPL-2 filter really are what they claims they are ● FFPF allows third party code in the lowest levels – based on Open Kernel Environment

Performance results

NIC-FIX: FFPF on IXPs uspace kspace nspace bottom of the processing hierarchy eliminates mem & bus bottlenecks

Network Processors “programmable NIC” zero copy copy once on-demand copy

Performance

More Information

microbenchmarks