Microboxes: High Performance NFV with Customizable, Asynchronous TCP Stacks and Dynamic Subscriptions
Guyue (Grace) Liu, Yuxin Ren, Mykola Yurchenko K.K. Ramakrishnan, Timothy Wood
1
Microboxes: High Performance NFV with Customizable, Asynchronous TCP - - PowerPoint PPT Presentation
Microboxes: High Performance NFV with Customizable, Asynchronous TCP Stacks and Dynamic Subscriptions Guyue (Grace) Liu , Yuxin Ren, Mykola Yurchenko K.K. Ramakrishnan, Timothy Wood 1 Why Improve Existing NFV Frameworks? Existing NFV
Guyue (Grace) Liu, Yuxin Ren, Mykola Yurchenko K.K. Ramakrishnan, Timothy Wood
1
Guyue Liu – George Washington University
OpenNetVM [Hotmiddlebox’16] E2 [SOSP’15] ClickOS [NSDI’14] netmap [Usenix ATC ‘12] PF_RING [SANE’04]
2
Guyue Liu – George Washington University Transport Network Data Link Physical
L4 L3 L5-7 L2 L1
UDP TCP Ethernet, PPP, LLDP IP, ICMP, ARP HTTP, DNS, FTP, SMTP, SSH, POP TELNET L2 Fwd L3 Fwd Firewall NAT IPsec Shaper
Packet Application
NF1
NFV IO
NIC NIC
NF2 NF3
P P P P
Data
3
Guyue Liu – George Washington University Transport Network Data Link Physical
L4 L3 L5-7 L2 L1
UDP TCP Ethernet, PPP, LLDP IP, ICMP, ARP HTTP, DNS, FTP, SMTP, SSH, POP TELNET L2 Fwd L3 Fwd Firewall NAT IPsec Shaper
Packet Application
Load Balancer Web Proxy IDS Gateway Transcoder NFV IO
NIC NIC
P P
Data
P P
stack NF1
data
stack NF2
data
stack NF3
data
[NSDI’17]
4
Guyue Liu – George Washington University
20 40 60 80 100 120 140 1 2 3 4 5 6 7 8 Processing Latency (us) Chain Length stack-8KB fwd-8KB
169% 79%
5
Guyue Liu – George Washington University
NFV IO
NIC P P
stack
NF1
app
stack
NF2
app
stack
NF3
app
NIC P P 6
Guyue Liu – George Washington University app NFV IO
NIC
stack
NF1
NIC P P
NF2 NF3
P P 7
Guyue Liu – George Washington University
NFV IO
NIC
stack
NF1
app
NIC P P
NF2
app
NF3
app
P P 8
Guyue Liu – George Washington University
1 2 3 4 5 6 7 8 9 10 Simple Fwd Connection Splicing TCP State Tracking TCP Bytetream Assembly Throughput (Gbps)
9
Guyue Liu – George Washington University
Stack
NFV IO
NIC
NF1
app
NIC P P P P
NF2
app
NF3
app
10
Guyue Liu – George Washington University
NFV IO
NIC
NF1
app
NIC P P Bytestream Reconstruction State Monitoring P P
NF2
app
NF3
app
11
Guyue Liu – George Washington University
NFV IO
NIC
IDS
NIC P P
DPI MON
Stack 2 Stack 3 Stack 1
Linux TCP
Web Proxy
P P Socket API 12
Guyue Liu – George Washington University
NFV IO
NIC
IDS
NIC P P
DPI MON
Stack 2 Stack 3 Stack 1
Linux TCP
Web Proxy
P P Socket API
13
Guyue Liu – George Washington University
NFV IO
NIC NIC P P Stack 2 Stack 3 Stack 1 Stack 4
Event Event Event Event Event
IDS DPI MON
Web Proxy
14
Guyue Liu – George Washington University
NF NF NF NF NF
µStack µStack µStack µStack µStack µStack µStack µEvent µEvent µEvent µEvent
15
Guyue Liu – George Washington University
16
Guyue Liu – George Washington University
L2/3 µStack TCP Split Proxy µStack TCP monitor µStack TCP Splicer µStack TCP Endpoint µStack
Web Proxy HTTP LB IDS Firewall Transcoder
17
Guyue Liu – George Washington University
L2/3 µStack TCP Split Proxy µStack TCP monitor µStack TCP Splicer µStack TCP Endpoint µStack
Web Proxy HTTP LB IDS Firewall Transcoder
18
Guyue Liu – George Washington University
L2/3 µStack TCP Split Proxy µStack TCP monitor µStack TCP Splicer µStack TCP Endpoint µStack
Web Proxy HTTP LB IDS Firewall Transcoder
19
Guyue Liu – George Washington University
L2/3 µStack TCP Split Proxy µStack TCP monitor µStack TCP Splicer µStack TCP Endpoint µStack
Web Proxy HTTP LB IDS Firewall Transcoder
20
Guyue Liu – George Washington University
L2/3 µStack TCP Split Proxy µStack TCP monitor µStack TCP Splicer µStack TCP Endpoint µStack
Web Proxy HTTP LB IDS Firewall Transcoder
21
Guyue Liu – George Washington University
L2/3 µStack TCP Split Proxy µStack TCP monitor µStack TCP Splicer µStack TCP Endpoint µStack
Web Proxy HTTP LB IDS Firewall Transcoder
22
Guyue Liu – George Washington University
P1 P3
Stack State
NF1 NF2 NF3 Stack
P2
23
Guyue Liu – George Washington University
P1 P3
Stack State
NF1 NF2 NF3 Stack
P2
Stack Consistency: Protocol stack associated with each packet needs to be consistent when each NF processes this packet.
24
Guyue Liu – George Washington University
P1
Core 0 (Stack) Core 1 (NF1) Core 2 (NF2) Core 3 (NF3) time
P1 P1 P2 P2 P2 P2 P3
Stack State
P1 P1 P3 P3 P3 P3
NF1 NF2 NF3 Stack
P2
25
Guyue Liu – George Washington University
Core 0 (Stack) Core 1 (NF1) Core 2 (NF2) Core 3 (NF3) time
P1 P1 P2 P2 P2 P2 P1 P1 P3 P3 P3 P3
Idle !
T
P1 P3
Stack State
NF1 NF2 NF3 Stack
P2
26
Guyue Liu – George Washington University
Core 0 (Stack) Core 1 (NF1) Core 2 (NF2) Core 3 (NF3) time
P1 P1 P2 P2 P2 P2 P1 P1 P3 P3 P3 P3
T
P1 P3
Stack State
NF1 NF2 NF3 Stack
P2
27
Guyue Liu – George Washington University
P1 P3
Stack State
NF1 NF2 NF3 Stack
P2
bytestream Core 0 (Stack) Core 1 (NF1) Core 2 (NF2) Core 3 (NF3) time
P1 P1 P2 P2 P2 P2 P1 P1 P3 P3 P3 P3
T
28
Guyue Liu – George Washington University
NF1 NF2 NF3 Stack Core 0 (Stack) Core 1 (NF1) Core 2 (NF2) Core 3 (NF3) time
P1 P1 P2 P2 P2 P2 P1 P1 P3 P3 P3 P3
T
P1 P3 P2 P1 P1
29
Guyue Liu – George Washington University NIC RSS
NF1 µStack NF5 NF3 NF4 µStack NF2 µStack µStack µStack
30
Guyue Liu – George Washington University
individual packets. An event can encapsulate the data and notify the subscribers
NF1 NF2 NF3 Stack PKT
FLOW
NF
STACK
31
Guyue Liu – George Washington University
adding extra fields in addition to parent fields.
Event PKT FLOW PKT/TCP FLOW/TCP PKT/TCP/SYN PKT/TCP/FIN FLOW/TCP/TERMINATE PKT/TCP/FLOW_TYPE FLOW/QUIC ALERT FLOW/TCP/DATA_RDY ALERT/SIG_MATCH PKT/UDP PKT/QUIC FLOW/UDP
32
Guyue Liu – George Washington University
hierarchy and gets the subevents.
Event PKT PKT/TCP PKT/TCP/SYN PKT/TCP/FIN PKT/TCP/FLOW_TYPE PKT/UDP PKT/QUIC
33
Guyue Liu – George Washington University
hierarchy and gets the subevents.
Event PKT PKT/TCP PKT/TCP/SYN PKT/TCP/FIN PKT/UDP PKT/QUIC PKT/TCP/FLOW_TYPE
34
Guyue Liu – George Washington University
allow fast event propagation
hop associated with this event port
Controller
Monitor µStack
SIG_ MATCH
Logger
Flow Service Chain flow1 Mon stack (p2) -> DPI (p2) DPI (p3) -> SIG (p1) SIG (p2) -> Logger (p1)
DPI
35
DPI
SIG_ MATCH Monitor µStack
Logger
Pub/Sub architecture provides convenient, higher level interfaces based on the flow of events rather than the flow of packets
Guyue Liu – George Washington University
L4 Load Balancer L7 Load Balancer TCP Proxy nDPI SIG Match Flow Stats Logger
µStack Modules (mOS [NSDI’17], mTCP [NSDI’14]) NFV IO (DPDK) Chain Management + NF Communication (OpenNetVM) µEvent Pub/Sub Interface
36
Guyue Liu – George Washington University
10Gb NIC, 160GB memory
Apache Bench 2.3
37
Guyue Liu – George Washington University
NF1 NF2 NF3 Stack Stack Stack NF1 NF2 NF3 Stack
1 2 3 4 5 6 1 2 3 4 5 6 7 8 Throughput (Gbps) Chain Length mOS
microboxes
event pkt pkt event event
2nd Socket
38
Guyue Liu – George Washington University
NF1 NF2 NF3 Stack Stack Stack NF1 NF2 NF3 Stack
1 2 3 4 5 6 1 2 3 4 5 6 7 8 Throughput (Gbps) Chain Length mOS
microboxes
event pkt pkt event event
Removing redundant stack processing can improve the performance by ~2X or more
39
Guyue Liu – George Washington University
nginx Web Server(s) 8KB file Clients 4K conns 50 100 150 200 250 300 350 400
DPDK L2 Fwd HAProxy L4 LB L7 LB L7 LB + 50% Cache L7 LB + 100% Cache Latency (us)
L2 FWD or HAProxy
40
Guyue Liu – George Washington University
50 100 150 200 250 300 350 400
DPDK L2 Fwd HAProxy L4 LB L7 LB L7 LB + 50% Cache L7 LB + 100% Cache Latency (us)
Web Servers Clients L2/3 µStack L4 NF nginx Web Server(s) 8KB file Clients 4K conns
41
Guyue Liu – George Washington University
50 100 150 200 250 300 350 400
DPDK L2 Fwd HAProxy L4 LB L7 LB L7 LB + 50% Cache L7 LB + 100% Cache Latency (us)
Web Servers Clients Splicer µStack L7 NF nginx Web Server(s) 8KB file Clients 4K conns
42
Guyue Liu – George Washington University
50 100 150 200 250 300 350 400
DPDK L2 Fwd HAProxy L4 LB L7 LB L7 LB + 50% Cache L7 LB + 100% Cache Latency (us)
Web Servers Clients L7 NF Endpoint µStack Cache 50% Traffic Splicer µStack nginx Web Server(s) 8KB file Clients 4K conns
43
Guyue Liu – George Washington University
50 100 150 200 250 300 350 400
DPDK L2 Fwd HAProxy L4 LB L7 LB L7 LB + 50% Cache L7 LB + 100% Cache Latency (us)
Web Servers Clients L7 NF Endpoint µStack Cache 100% Traffic Splicer µStack
Microboxes seamlessly integrates middleboxes and endpoints to build complex network services!
nginx Web Server(s) 8KB file Clients 4K conns
44
Guyue Liu – George Washington University
Guyue Liu – George Washington University
= stack snapshot + parallel stacks + parallel events + event hierarchy + publish/subscribe interface
NF NF NF NF NF
µStack µStack µStack µStack µStack µStack µStack µEvent µEvent µEvent µEvent