SlideShare a Scribd company logo
1 of 44
Download to read offline
Taking Security Groups
to Ludicrous Speed
with Open vSwitch
OpenStack Summit
Vancouver, 2015
Miguel Angel Ajo
@mangel_ajo
Ivar Lazzaro
@ivarlazzaro
Thomas Graf
@tgraf__
Justin Pettit
@Justin_D_Pettit
Agenda
Problem Statement
– Status Quo – a.k.a “The Bridge Mess”
Possible Solution
– OVS + Stateful services (+ OVN)
Results
– Performance Numbers
Q&A
Status Quo
Mess of Bridges.
br-eth1
(Open vSwitch)
OpenFlow
table
OVS
bridge
br-int
(Open vSwitch)
Mess of Bridges.
br-eth1
(Open vSwitch)
veth
OpenFlow
table
OVS
bridge
br-int
(Open vSwitch)
Mess of Bridges.
br-eth1
(Open vSwitch)
qbr
(Linux Bridge)
qbr
(Linux Bridge)
qbr
(Linux Bridge)
veth
iptables
rules
OpenFlow
tableOVS
bridge
Linux
bridge
br-int
(Open vSwitch)
Mess of Bridges. Why?
VM
br-eth1
(Open vSwitch)
qbr
(Linux Bridge)
qbr
(Linux Bridge)
qbr
(Linux Bridge)
VM lxc
tap
veth
iptables
rules
OpenFlow
table
OVS
bridge
Linux
bridge
4-5 network devices per guest in host!
br-int
(Open vSwitch)
Possible Solution
Stacking Things Properly
(c) Karen Sagovac
Can we have a pure OVS Model?
br-int
(Open vSwitch)
VM
br-eth1
(Open vSwitch)
VM lxc
Tap, veth, or
internal port
OpenFlow table
with security groups
OVS
bridge
1 network device per guest in host!
Makes VMs and containers equally happy.
Some Background
(OVS, OVN, Kernel CT)
● Highly scaleable multi layer virtual switch for hypervisors
– Apache License (User Space), GPL (Kernel)
● Extensive flow table programming capabilities
– OpenFlow 1.0 – 1.5 (some partial)
– Vendor Extensions
● Designed to manage overlay networks
– VXLAN (+ extensions), GRE, Geneve, LISP, STT, VLAN, ...
● Remote management protocol (OVSDB)
● Monitoring capabilities
Open vSwitch
● Virtual Networking for OVS
– Developed by same team that made OVS
– Works on same platorms (Linux, Containers, Hyper-V)
● Provides L2/L3 virtual networking
– Logical switches and routers
– Conntrack-based security groups
– L2/L3/L4 ACLs
– Physical and DPDK-based logical-physical gateways
● Integrated with OpenStack and other CMSs
OVN
Implementing a Firewall with OVS
● OVS has traditionally only supported stateless matches
● As an example, currently, two ways to implement a firewall in OVS
– Match on TCP flags (Enforce policy on SYN, allow ACK|RST)
● Pro: Fast
● Con: Allows non-established flow through with ACK or RST
set, only TCP
– Use “learn” action to setup new flow in reverse direction
● Pro: More “correct”
● Con: Forces every new flow to OVS userspace, reducing flow
setup by orders of magnitude
– Neither approach supports “related” flows or TCP window
enforcement
Connection Tracking
● We are adding the ability to use the conntrack module from Linux
– Stateful tracking of flows
– Supports ALGs to punch holes for related “data” channels
● FTP, TFTP, SIP
● Implement a distributed firewall with enforcement at the edge
– Better performance
– Better visibility
● Introduce new OpenFlow extensions:
– Action to send to conntrack
– Match fields on state of connection
● Have prototype working. Expect to ship as part of OVS in next
release.
Netfilter Conntrack Integration
OVS Flow Table
Netfilter
Connection Tracker
CT
Table
Userspace Netlink API
Create & Update
CT entries
Connection State (conn_state=)
conntrack()
Recirculation
1
2
3
4
Zone 1
Connection Tracking Zones
OVS Flow Table
CT
Table
Zone 2
CT
Table
Netfilter
Connection Tracker
OVSFirewallDriver
OVSFirewallDriver
● Original proposal from Amir Sadoughi
– https://review.openstack.org/#/c/89712
● Stable/kilo (just a POC)
– https://review.openstack.org/#/c/183725/
Example HTTP Request
VM 1 VM 2
HTTP req
response
GLOSARY of OF actions
NORMAL = “do like a normal switch”
ct(commit) = “push this packet to CT”
ct(recirc) = “grab any ct info we have, set
+trk, and send to T0”
SG OpenFlow Table structure
+trk(+est/+rel)
→ NORMAL
ARP (with filters)
→ NORMAL
(…)
SG rules in OF:
ip
Egress T1Input T0 ct(commit,
recirc)
(…)
SG rules:
tp_dst=80
Ingress T2
From VM(n)
(MAC+in_port -trk)
-trk → ct(recirc)
ToVM(n)(MAC)
match
ct(commit),NORMAL
VM1
VM2
SG OpenFlow Table structure
+trk(+est/+rel)
→ NORMAL
ARP (with filters)
→ NORMAL
(…)
SG rules in OF:
ip
Egress T1Input T0 ct(commit,
recirc)
(…)
SG rules:
tp_dst=80
Ingress T2
From VM(n)
(MAC+in_port -trk-trk)
-trk → ct(recirc)
ToVM(n)(MAC)
match
ct(commit),NORMAL
VM1
SG OpenFlow Table structure
+trk(+est/+rel)
→ NORMAL
ARP (with filters)
→ NORMAL
(…)
SG rules in OF:
ip
Egress T1Input T0 ct(commit,
recirc)
(…)
SG rules:
tp_dst=80
Ingress T2
From VM(n)
(MAC+in_port -trk)
-trk → ct(recirc)
ToVM(n)(MAC)
match
ct(commit),NORMAL
SG OpenFlow Table structure
+trk(+est or +rel)
→ NORMAL
ARP (with filters)
→ NORMAL
(…)
SG rules in OF:
ip
Egress T1Input T0 ct(commit,
recirc)
(…)
SG rules:
tp_dst=80
Ingress T2
From VM(n)
(MAC+in_port -trk)
-trk → ct(recirc)
ToVM(n)(MAC)
match
ct(commit),NORMAL
SG OpenFlow Table structure
+trk(+est/+rel)
→ NORMAL
ARP (with filters)
→ NORMAL
(…)
SG rules in OF:
ip
Egress T1Input T0 ct(commit,
recirc)
(…)
SG rules:
tp_dst=80
Ingress T2
From VM(n)
(MAC+in_port -trk)
-trk → ct(recirc)
ToVM(n)(MAC)
match
ct(commit),NORMAL
VM2
SG OpenFlow Table structure
+trk(+est/+rel)
→ NORMAL
ARP (with filters)
→ NORMAL
(…)
SG rules in OF:
ip
Egress T1Input T0 ct(commit,
recirc)
(…)
SG rules:
tp_dst=80
Ingress T2
From VM(n)
(MAC+in_port -trk)
-trk → ct(recirc)
ToVM(n)(MAC)
match
ct(commit),NORMAL
VM2
SG OpenFlow Table structure
+trk(+est/+rel)
→ NORMAL
ARP (with filters)
→ NORMAL
(…)
SG rules in OF:
ip
Egress T1Input T0 ct(commit,
recirc)
(…)
SG rules:
tp_dst=80
Ingress T2
From VM(n)
(MAC+in_port -trk)
-trk → ct(recirc)
ToVM(n)(MAC)
match
ct(commit),NORMAL
SG OpenFlow Table structure
+trk(+est/+rel)
→ NORMAL
ARP (with filters)
→ NORMAL
(…)
SG rules in OF:
ip
Egress T1Input T0 ct(commit,
recirc)
(…)
SG rules:
tp_dst=80
Ingress T2
From VM(n)
(MAC+in_port -trk)
-trk → ct(recirc)
ToVM(n)(MAC)
match
ct(commit),NORMAL
VM1
SG OpenFlow Table structure
+trk(+est/+rel)
→ NORMAL
ARP (with filters)
→ NORMAL
(…)
SG rules in OF:
ip
Egress T1Input T0 ct(commit,
recirc)
(…)
SG rules:
tp_dst=80
Ingress T2
From VM(n)
(MAC+in_port -trk)
-trk → ct(recirc)
ToVM(n)(MAC)
match
ct(commit),NORMAL
openvswitch_firewall.py
● update_security_group_{rules, members}
● prepare_port_filter
● update_port_filter
● remove_port_filter
● filter_defer_apply_{on,off}
neutron.agent.linux.firewall.FirewallDriver
neutron.agent.linux.openvswitch_firewall.OVSFirewallDriver
Performance Numbers
Test Setup Explained
System: 2 Socket, 24 core, IvyBridge
CPU: Intel(R) Xeon(R) CPU E5-2643 v2 @ 3.50GHz
Kernel: 3.10.0-229.1.2.el7.x86_64
Test: Netperf with TCP_STREAM and TCP_RR
Notes: Virt overhead eliminated, netperf/netserver runs baremetal
Compute 1
netperf
Compute 2
10GiB Link
netserver
netserver
local
Multi node
TCP Stream, Local, 1 netperf thread
64 128 512 1024 9000 64000
0
50
100
150
200
250
300
350
400
450
500
0
5,000
10,000
15,000
20,000
25,000
TCP stream Local, 1 netperf threads
sub-title
iptables throughput
OVS throughput
iptables cycles
OVS cycles
Packet Size
CPUMegacyclesperMbit
Mbit
TCP Stream, Local, 16 netperf threads
64 128 512 1024 9000 64000
0
50
100
150
200
250
300
350
400
0
50,000
100,000
150,000
200,000
250,000
TCP stream Local, 16 netperf threads
sub-title
iptables throughput
OVS throughput
iptables cycles
OVS cycles
Packet Size
CPUMegacyclesperMbit
Mbit
TCP Stream, Multi Node, 8 netperf threads
64 128 512 1024 9000 64000
0
50
100
150
200
250
0
1,000
2,000
3,000
4,000
5,000
6,000
7,000
8,000
9,000
10,000
TCP stream node-to-node, 8 netperf threads
iptables throughput
OVS throughput
iptables cycles
OVS cycles
Packet Size
CPUMegacyclesperMbit
Mbit
TCP Requests, Local, 1 netperf thread
64 128 512 1024 9000 64000
0
50
100
150
200
250
300
350
400
450
500
0
5,000
10,000
15,000
20,000
25,000
TCP stream Local, 1 netperf threads
sub-title
iptables throughput
OVS throughput
iptables cycles
OVS cycles
Packet Size
CPUMegacyclesperMbit
Mbit
TCP Requests, Local, 64K packets
1 4 8 16
0
10
20
30
40
50
60
70
0
20,000
40,000
60,000
80,000
100,000
120,000
140,000
160,000
TCP Requests/s Local, 64K packets
sub-title
iptables requests/s
OVS requests/s
iptables cycles
OVS cycles
Number netperf threads
CPUMegacyclesperMbit
Requests/s
TCP Requests, Multi Node, 1 netperf thread
64 128 512 1024 9000 64000
0
2
4
6
8
10
12
14
16
18
20
0
5,000
10,000
15,000
20,000
25,000
30,000
TCP Requests/s node-to-node, 1 netperf threads
sub-title
iptables requests/s
OVS requests/s
iptables cycles
OVS cycles
Packet Size
CPUMegacyclesperMbit
Requests/s
TCP Requests, Multi Node, 64K packets
1 4 8 16
0
5
10
15
20
25
30
35
40
0
2,000
4,000
6,000
8,000
10,000
12,000
14,000
16,000
18,000
20,000
TCP Requests/s node-to-node, 64K packets
sub-title
iptables requests/s
OVS requests/s
iptables cycles
OVS cycles
Number netperf threads
CPUMegacyclesperMbit
Requests/s
Conclusion
● Both throughput and latency are considerably improve (Up to 6x in
some situations).
● If limited by wire speed, pure OVS approach generally consumes
less CPU cycles for the same result, leaving more resources for
actual workload.
● Issue for specific packet sizes to be investigated and resolved before
merge.
Next Steps
● Convert ML2 PoC to a patch that can be merged
– Write functional tests
– Optimize OF rules/manipulation
● Complete upstream merge of connection tracking
support in Open vSwitch in the Linux kernel
● Consider and realize OVN integration of this work
● Hopefully ready for Liberty
Q&A
● OVS w/ CT Neutron ML2 plugin
– https://github.com/mangelajo/vagrant-rdo-juno-ovs-ct
-firewall
● Open vSwitch
– http://openvswitch.org/
● Conntrack code on GitHub
– https://github.com/justinpettit/ovs/tree/conntrack
● Stateful Connection Tracking & Stateful NAT (OVS
conference)
– http://www.openvswitch.org/support/ovscon2014/17
/1030-conntrack_nat.pdf
Thank You!

More Related Content

What's hot

[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개OpenStack Korea Community
 
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-RegionJi-Woong Choi
 
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDNOpenStack Korea Community
 
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/NeutronOverview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/Neutronvivekkonnect
 
Routed Provider Networks on OpenStack
Routed Provider Networks on OpenStack Routed Provider Networks on OpenStack
Routed Provider Networks on OpenStack Romana Project
 
Kolla talk at OpenStack Summit 2017 in Sydney
Kolla talk at OpenStack Summit 2017 in SydneyKolla talk at OpenStack Summit 2017 in Sydney
Kolla talk at OpenStack Summit 2017 in SydneyVikram G Hosakote
 
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDPDockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDPThomas Graf
 
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...Vietnam Open Infrastructure User Group
 
Cilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDPCilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDPThomas Graf
 
Neutron-to-Neutron: interconnecting multiple OpenStack deployments
Neutron-to-Neutron: interconnecting multiple OpenStack deploymentsNeutron-to-Neutron: interconnecting multiple OpenStack deployments
Neutron-to-Neutron: interconnecting multiple OpenStack deploymentsThomas Morin
 
Operationalizing EVPN in the Data Center: Part 2
Operationalizing EVPN in the Data Center: Part 2Operationalizing EVPN in the Data Center: Part 2
Operationalizing EVPN in the Data Center: Part 2Cumulus Networks
 
20150511 jun lee_openstack neutron 분석 (최종)
20150511 jun lee_openstack neutron 분석 (최종)20150511 jun lee_openstack neutron 분석 (최종)
20150511 jun lee_openstack neutron 분석 (최종)rootfs32
 
[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험NHN FORWARD
 
Large scale overlay networks with ovn: problems and solutions
Large scale overlay networks with ovn: problems and solutionsLarge scale overlay networks with ovn: problems and solutions
Large scale overlay networks with ovn: problems and solutionsHan Zhou
 
Monitoring MySQL with DTrace/SystemTap
Monitoring MySQL with DTrace/SystemTapMonitoring MySQL with DTrace/SystemTap
Monitoring MySQL with DTrace/SystemTapPadraig O'Sullivan
 
The Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchThe Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchTe-Yen Liu
 
Red Hat OpenStack 17 저자직강+스터디그룹_3주차
Red Hat OpenStack 17 저자직강+스터디그룹_3주차Red Hat OpenStack 17 저자직강+스터디그룹_3주차
Red Hat OpenStack 17 저자직강+스터디그룹_3주차Nalee Jang
 
eBPF - Observability In Deep
eBPF - Observability In DeepeBPF - Observability In Deep
eBPF - Observability In DeepMydbops
 

What's hot (20)

[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
 
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
 
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
 
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/NeutronOverview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
 
Routed Provider Networks on OpenStack
Routed Provider Networks on OpenStack Routed Provider Networks on OpenStack
Routed Provider Networks on OpenStack
 
Kolla talk at OpenStack Summit 2017 in Sydney
Kolla talk at OpenStack Summit 2017 in SydneyKolla talk at OpenStack Summit 2017 in Sydney
Kolla talk at OpenStack Summit 2017 in Sydney
 
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDPDockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
DockerCon 2017 - Cilium - Network and Application Security with BPF and XDP
 
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
 
Cilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDPCilium - Fast IPv6 Container Networking with BPF and XDP
Cilium - Fast IPv6 Container Networking with BPF and XDP
 
VPNaaS in Neutron
VPNaaS in NeutronVPNaaS in Neutron
VPNaaS in Neutron
 
Neutron-to-Neutron: interconnecting multiple OpenStack deployments
Neutron-to-Neutron: interconnecting multiple OpenStack deploymentsNeutron-to-Neutron: interconnecting multiple OpenStack deployments
Neutron-to-Neutron: interconnecting multiple OpenStack deployments
 
Operationalizing EVPN in the Data Center: Part 2
Operationalizing EVPN in the Data Center: Part 2Operationalizing EVPN in the Data Center: Part 2
Operationalizing EVPN in the Data Center: Part 2
 
20150511 jun lee_openstack neutron 분석 (최종)
20150511 jun lee_openstack neutron 분석 (최종)20150511 jun lee_openstack neutron 분석 (최종)
20150511 jun lee_openstack neutron 분석 (최종)
 
[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험
 
Large scale overlay networks with ovn: problems and solutions
Large scale overlay networks with ovn: problems and solutionsLarge scale overlay networks with ovn: problems and solutions
Large scale overlay networks with ovn: problems and solutions
 
Deploying IPv6 on OpenStack
Deploying IPv6 on OpenStackDeploying IPv6 on OpenStack
Deploying IPv6 on OpenStack
 
Monitoring MySQL with DTrace/SystemTap
Monitoring MySQL with DTrace/SystemTapMonitoring MySQL with DTrace/SystemTap
Monitoring MySQL with DTrace/SystemTap
 
The Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchThe Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitch
 
Red Hat OpenStack 17 저자직강+스터디그룹_3주차
Red Hat OpenStack 17 저자직강+스터디그룹_3주차Red Hat OpenStack 17 저자직강+스터디그룹_3주차
Red Hat OpenStack 17 저자직강+스터디그룹_3주차
 
eBPF - Observability In Deep
eBPF - Observability In DeepeBPF - Observability In Deep
eBPF - Observability In Deep
 

Similar to Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)

2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful Services2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful ServicesThomas Graf
 
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecasesLF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecasesLF_OpenvSwitch
 
LinuxCon 2015 Stateful NAT with OVS
LinuxCon 2015 Stateful NAT with OVSLinuxCon 2015 Stateful NAT with OVS
LinuxCon 2015 Stateful NAT with OVSThomas Graf
 
Open vSwitch - Stateful Connection Tracking & Stateful NAT
Open vSwitch - Stateful Connection Tracking & Stateful NATOpen vSwitch - Stateful Connection Tracking & Stateful NAT
Open vSwitch - Stateful Connection Tracking & Stateful NATThomas Graf
 
Design and Performance Characteristics of Tap-as-a-Service
Design and Performance Characteristics of Tap-as-a-ServiceDesign and Performance Characteristics of Tap-as-a-Service
Design and Performance Characteristics of Tap-as-a-Servicesoichi shigeta
 
(NET404) Making Every Packet Count
(NET404) Making Every Packet Count(NET404) Making Every Packet Count
(NET404) Making Every Packet CountAmazon Web Services
 
AWS re:Invent 2016: Making Every Packet Count (NET404)
AWS re:Invent 2016: Making Every Packet Count (NET404)AWS re:Invent 2016: Making Every Packet Count (NET404)
AWS re:Invent 2016: Making Every Packet Count (NET404)Amazon Web Services
 
Troubleshooting TCP/IP
Troubleshooting TCP/IPTroubleshooting TCP/IP
Troubleshooting TCP/IPvijai s
 
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...Cloud Native Day Tel Aviv
 
Computer network (11)
Computer network (11)Computer network (11)
Computer network (11)NYversity
 
design-compiler.pdf
design-compiler.pdfdesign-compiler.pdf
design-compiler.pdfFrangoCamila
 
Scaling Kubernetes to Support 50000 Services.pptx
Scaling Kubernetes to Support 50000 Services.pptxScaling Kubernetes to Support 50000 Services.pptx
Scaling Kubernetes to Support 50000 Services.pptxthaond2
 
Technical Overview of QUIC
Technical  Overview of QUICTechnical  Overview of QUIC
Technical Overview of QUICshigeki_ohtsu
 
SDN/OpenFlow #lspe
SDN/OpenFlow #lspeSDN/OpenFlow #lspe
SDN/OpenFlow #lspeChris Westin
 
Cisco data center support
Cisco data center supportCisco data center support
Cisco data center supportKrunal Shah
 
Lab 4 marking
Lab 4 markingLab 4 marking
Lab 4 markingVNG
 
Renegotiating the boundary between database latency and consistency
Renegotiating the boundary between database latency  and consistencyRenegotiating the boundary between database latency  and consistency
Renegotiating the boundary between database latency and consistencyScyllaDB
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Andriy Berestovskyy
 
Part 9 : Congestion control and IPv6
Part 9 : Congestion control and IPv6Part 9 : Congestion control and IPv6
Part 9 : Congestion control and IPv6Olivier Bonaventure
 

Similar to Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015) (20)

2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful Services2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful Services
 
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecasesLF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
 
LinuxCon 2015 Stateful NAT with OVS
LinuxCon 2015 Stateful NAT with OVSLinuxCon 2015 Stateful NAT with OVS
LinuxCon 2015 Stateful NAT with OVS
 
Open vSwitch - Stateful Connection Tracking & Stateful NAT
Open vSwitch - Stateful Connection Tracking & Stateful NATOpen vSwitch - Stateful Connection Tracking & Stateful NAT
Open vSwitch - Stateful Connection Tracking & Stateful NAT
 
Design and Performance Characteristics of Tap-as-a-Service
Design and Performance Characteristics of Tap-as-a-ServiceDesign and Performance Characteristics of Tap-as-a-Service
Design and Performance Characteristics of Tap-as-a-Service
 
(NET404) Making Every Packet Count
(NET404) Making Every Packet Count(NET404) Making Every Packet Count
(NET404) Making Every Packet Count
 
AWS re:Invent 2016: Making Every Packet Count (NET404)
AWS re:Invent 2016: Making Every Packet Count (NET404)AWS re:Invent 2016: Making Every Packet Count (NET404)
AWS re:Invent 2016: Making Every Packet Count (NET404)
 
Protocol Independence
Protocol IndependenceProtocol Independence
Protocol Independence
 
Troubleshooting TCP/IP
Troubleshooting TCP/IPTroubleshooting TCP/IP
Troubleshooting TCP/IP
 
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
 
Computer network (11)
Computer network (11)Computer network (11)
Computer network (11)
 
design-compiler.pdf
design-compiler.pdfdesign-compiler.pdf
design-compiler.pdf
 
Scaling Kubernetes to Support 50000 Services.pptx
Scaling Kubernetes to Support 50000 Services.pptxScaling Kubernetes to Support 50000 Services.pptx
Scaling Kubernetes to Support 50000 Services.pptx
 
Technical Overview of QUIC
Technical  Overview of QUICTechnical  Overview of QUIC
Technical Overview of QUIC
 
SDN/OpenFlow #lspe
SDN/OpenFlow #lspeSDN/OpenFlow #lspe
SDN/OpenFlow #lspe
 
Cisco data center support
Cisco data center supportCisco data center support
Cisco data center support
 
Lab 4 marking
Lab 4 markingLab 4 marking
Lab 4 marking
 
Renegotiating the boundary between database latency and consistency
Renegotiating the boundary between database latency  and consistencyRenegotiating the boundary between database latency  and consistency
Renegotiating the boundary between database latency and consistency
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)
 
Part 9 : Congestion control and IPv6
Part 9 : Congestion control and IPv6Part 9 : Congestion control and IPv6
Part 9 : Congestion control and IPv6
 

More from Thomas Graf

eBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KerneleBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KernelThomas Graf
 
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
BPF  & Cilium - Turning Linux into a Microservices-aware Operating SystemBPF  & Cilium - Turning Linux into a Microservices-aware Operating System
BPF & Cilium - Turning Linux into a Microservices-aware Operating SystemThomas Graf
 
Cilium - Bringing the BPF Revolution to Kubernetes Networking and Security
Cilium - Bringing the BPF Revolution to Kubernetes Networking and SecurityCilium - Bringing the BPF Revolution to Kubernetes Networking and Security
Cilium - Bringing the BPF Revolution to Kubernetes Networking and SecurityThomas Graf
 
Accelerating Envoy and Istio with Cilium and the Linux Kernel
Accelerating Envoy and Istio with Cilium and the Linux KernelAccelerating Envoy and Istio with Cilium and the Linux Kernel
Accelerating Envoy and Istio with Cilium and the Linux KernelThomas Graf
 
Cilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPFCilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPFThomas Graf
 
Cilium - Network security for microservices
Cilium - Network security for microservicesCilium - Network security for microservices
Cilium - Network security for microservicesThomas Graf
 
Linux Native, HTTP Aware Network Security
Linux Native, HTTP Aware Network SecurityLinux Native, HTTP Aware Network Security
Linux Native, HTTP Aware Network SecurityThomas Graf
 
BPF: Next Generation of Programmable Datapath
BPF: Next Generation of Programmable DatapathBPF: Next Generation of Programmable Datapath
BPF: Next Generation of Programmable DatapathThomas Graf
 
Cilium - Container Networking with BPF & XDP
Cilium - Container Networking with BPF & XDPCilium - Container Networking with BPF & XDP
Cilium - Container Networking with BPF & XDPThomas Graf
 
Cilium - BPF & XDP for containers
Cilium - BPF & XDP for containersCilium - BPF & XDP for containers
Cilium - BPF & XDP for containersThomas Graf
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking ExplainedThomas Graf
 
LinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughLinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughThomas Graf
 
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RCThe Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RCThomas Graf
 
SDN & NFV Introduction - Open Source Data Center Networking
SDN & NFV Introduction - Open Source Data Center NetworkingSDN & NFV Introduction - Open Source Data Center Networking
SDN & NFV Introduction - Open Source Data Center NetworkingThomas Graf
 
DevConf 2014 Kernel Networking Walkthrough
DevConf 2014   Kernel Networking WalkthroughDevConf 2014   Kernel Networking Walkthrough
DevConf 2014 Kernel Networking WalkthroughThomas Graf
 

More from Thomas Graf (15)

eBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KerneleBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux Kernel
 
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
BPF  & Cilium - Turning Linux into a Microservices-aware Operating SystemBPF  & Cilium - Turning Linux into a Microservices-aware Operating System
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
 
Cilium - Bringing the BPF Revolution to Kubernetes Networking and Security
Cilium - Bringing the BPF Revolution to Kubernetes Networking and SecurityCilium - Bringing the BPF Revolution to Kubernetes Networking and Security
Cilium - Bringing the BPF Revolution to Kubernetes Networking and Security
 
Accelerating Envoy and Istio with Cilium and the Linux Kernel
Accelerating Envoy and Istio with Cilium and the Linux KernelAccelerating Envoy and Istio with Cilium and the Linux Kernel
Accelerating Envoy and Istio with Cilium and the Linux Kernel
 
Cilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPFCilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPF
 
Cilium - Network security for microservices
Cilium - Network security for microservicesCilium - Network security for microservices
Cilium - Network security for microservices
 
Linux Native, HTTP Aware Network Security
Linux Native, HTTP Aware Network SecurityLinux Native, HTTP Aware Network Security
Linux Native, HTTP Aware Network Security
 
BPF: Next Generation of Programmable Datapath
BPF: Next Generation of Programmable DatapathBPF: Next Generation of Programmable Datapath
BPF: Next Generation of Programmable Datapath
 
Cilium - Container Networking with BPF & XDP
Cilium - Container Networking with BPF & XDPCilium - Container Networking with BPF & XDP
Cilium - Container Networking with BPF & XDP
 
Cilium - BPF & XDP for containers
Cilium - BPF & XDP for containersCilium - BPF & XDP for containers
Cilium - BPF & XDP for containers
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking Explained
 
LinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughLinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking Walkthrough
 
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RCThe Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
 
SDN & NFV Introduction - Open Source Data Center Networking
SDN & NFV Introduction - Open Source Data Center NetworkingSDN & NFV Introduction - Open Source Data Center Networking
SDN & NFV Introduction - Open Source Data Center Networking
 
DevConf 2014 Kernel Networking Walkthrough
DevConf 2014   Kernel Networking WalkthroughDevConf 2014   Kernel Networking Walkthrough
DevConf 2014 Kernel Networking Walkthrough
 

Recently uploaded

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 

Recently uploaded (20)

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 

Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)

  • 1. Taking Security Groups to Ludicrous Speed with Open vSwitch OpenStack Summit Vancouver, 2015 Miguel Angel Ajo @mangel_ajo Ivar Lazzaro @ivarlazzaro Thomas Graf @tgraf__ Justin Pettit @Justin_D_Pettit
  • 2. Agenda Problem Statement – Status Quo – a.k.a “The Bridge Mess” Possible Solution – OVS + Stateful services (+ OVN) Results – Performance Numbers Q&A
  • 4.
  • 5. Mess of Bridges. br-eth1 (Open vSwitch) OpenFlow table OVS bridge br-int (Open vSwitch)
  • 6. Mess of Bridges. br-eth1 (Open vSwitch) veth OpenFlow table OVS bridge br-int (Open vSwitch)
  • 7. Mess of Bridges. br-eth1 (Open vSwitch) qbr (Linux Bridge) qbr (Linux Bridge) qbr (Linux Bridge) veth iptables rules OpenFlow tableOVS bridge Linux bridge br-int (Open vSwitch)
  • 8. Mess of Bridges. Why? VM br-eth1 (Open vSwitch) qbr (Linux Bridge) qbr (Linux Bridge) qbr (Linux Bridge) VM lxc tap veth iptables rules OpenFlow table OVS bridge Linux bridge 4-5 network devices per guest in host! br-int (Open vSwitch)
  • 9.
  • 10. Possible Solution Stacking Things Properly (c) Karen Sagovac
  • 11. Can we have a pure OVS Model? br-int (Open vSwitch) VM br-eth1 (Open vSwitch) VM lxc Tap, veth, or internal port OpenFlow table with security groups OVS bridge 1 network device per guest in host! Makes VMs and containers equally happy.
  • 13. ● Highly scaleable multi layer virtual switch for hypervisors – Apache License (User Space), GPL (Kernel) ● Extensive flow table programming capabilities – OpenFlow 1.0 – 1.5 (some partial) – Vendor Extensions ● Designed to manage overlay networks – VXLAN (+ extensions), GRE, Geneve, LISP, STT, VLAN, ... ● Remote management protocol (OVSDB) ● Monitoring capabilities Open vSwitch
  • 14. ● Virtual Networking for OVS – Developed by same team that made OVS – Works on same platorms (Linux, Containers, Hyper-V) ● Provides L2/L3 virtual networking – Logical switches and routers – Conntrack-based security groups – L2/L3/L4 ACLs – Physical and DPDK-based logical-physical gateways ● Integrated with OpenStack and other CMSs OVN
  • 15. Implementing a Firewall with OVS ● OVS has traditionally only supported stateless matches ● As an example, currently, two ways to implement a firewall in OVS – Match on TCP flags (Enforce policy on SYN, allow ACK|RST) ● Pro: Fast ● Con: Allows non-established flow through with ACK or RST set, only TCP – Use “learn” action to setup new flow in reverse direction ● Pro: More “correct” ● Con: Forces every new flow to OVS userspace, reducing flow setup by orders of magnitude – Neither approach supports “related” flows or TCP window enforcement
  • 16. Connection Tracking ● We are adding the ability to use the conntrack module from Linux – Stateful tracking of flows – Supports ALGs to punch holes for related “data” channels ● FTP, TFTP, SIP ● Implement a distributed firewall with enforcement at the edge – Better performance – Better visibility ● Introduce new OpenFlow extensions: – Action to send to conntrack – Match fields on state of connection ● Have prototype working. Expect to ship as part of OVS in next release.
  • 17. Netfilter Conntrack Integration OVS Flow Table Netfilter Connection Tracker CT Table Userspace Netlink API Create & Update CT entries Connection State (conn_state=) conntrack() Recirculation 1 2 3 4
  • 18. Zone 1 Connection Tracking Zones OVS Flow Table CT Table Zone 2 CT Table Netfilter Connection Tracker
  • 20. OVSFirewallDriver ● Original proposal from Amir Sadoughi – https://review.openstack.org/#/c/89712 ● Stable/kilo (just a POC) – https://review.openstack.org/#/c/183725/
  • 21. Example HTTP Request VM 1 VM 2 HTTP req response GLOSARY of OF actions NORMAL = “do like a normal switch” ct(commit) = “push this packet to CT” ct(recirc) = “grab any ct info we have, set +trk, and send to T0”
  • 22. SG OpenFlow Table structure +trk(+est/+rel) → NORMAL ARP (with filters) → NORMAL (…) SG rules in OF: ip Egress T1Input T0 ct(commit, recirc) (…) SG rules: tp_dst=80 Ingress T2 From VM(n) (MAC+in_port -trk) -trk → ct(recirc) ToVM(n)(MAC) match ct(commit),NORMAL VM1 VM2
  • 23. SG OpenFlow Table structure +trk(+est/+rel) → NORMAL ARP (with filters) → NORMAL (…) SG rules in OF: ip Egress T1Input T0 ct(commit, recirc) (…) SG rules: tp_dst=80 Ingress T2 From VM(n) (MAC+in_port -trk-trk) -trk → ct(recirc) ToVM(n)(MAC) match ct(commit),NORMAL VM1
  • 24. SG OpenFlow Table structure +trk(+est/+rel) → NORMAL ARP (with filters) → NORMAL (…) SG rules in OF: ip Egress T1Input T0 ct(commit, recirc) (…) SG rules: tp_dst=80 Ingress T2 From VM(n) (MAC+in_port -trk) -trk → ct(recirc) ToVM(n)(MAC) match ct(commit),NORMAL
  • 25. SG OpenFlow Table structure +trk(+est or +rel) → NORMAL ARP (with filters) → NORMAL (…) SG rules in OF: ip Egress T1Input T0 ct(commit, recirc) (…) SG rules: tp_dst=80 Ingress T2 From VM(n) (MAC+in_port -trk) -trk → ct(recirc) ToVM(n)(MAC) match ct(commit),NORMAL
  • 26. SG OpenFlow Table structure +trk(+est/+rel) → NORMAL ARP (with filters) → NORMAL (…) SG rules in OF: ip Egress T1Input T0 ct(commit, recirc) (…) SG rules: tp_dst=80 Ingress T2 From VM(n) (MAC+in_port -trk) -trk → ct(recirc) ToVM(n)(MAC) match ct(commit),NORMAL VM2
  • 27. SG OpenFlow Table structure +trk(+est/+rel) → NORMAL ARP (with filters) → NORMAL (…) SG rules in OF: ip Egress T1Input T0 ct(commit, recirc) (…) SG rules: tp_dst=80 Ingress T2 From VM(n) (MAC+in_port -trk) -trk → ct(recirc) ToVM(n)(MAC) match ct(commit),NORMAL VM2
  • 28. SG OpenFlow Table structure +trk(+est/+rel) → NORMAL ARP (with filters) → NORMAL (…) SG rules in OF: ip Egress T1Input T0 ct(commit, recirc) (…) SG rules: tp_dst=80 Ingress T2 From VM(n) (MAC+in_port -trk) -trk → ct(recirc) ToVM(n)(MAC) match ct(commit),NORMAL
  • 29. SG OpenFlow Table structure +trk(+est/+rel) → NORMAL ARP (with filters) → NORMAL (…) SG rules in OF: ip Egress T1Input T0 ct(commit, recirc) (…) SG rules: tp_dst=80 Ingress T2 From VM(n) (MAC+in_port -trk) -trk → ct(recirc) ToVM(n)(MAC) match ct(commit),NORMAL VM1
  • 30. SG OpenFlow Table structure +trk(+est/+rel) → NORMAL ARP (with filters) → NORMAL (…) SG rules in OF: ip Egress T1Input T0 ct(commit, recirc) (…) SG rules: tp_dst=80 Ingress T2 From VM(n) (MAC+in_port -trk) -trk → ct(recirc) ToVM(n)(MAC) match ct(commit),NORMAL
  • 31. openvswitch_firewall.py ● update_security_group_{rules, members} ● prepare_port_filter ● update_port_filter ● remove_port_filter ● filter_defer_apply_{on,off} neutron.agent.linux.firewall.FirewallDriver neutron.agent.linux.openvswitch_firewall.OVSFirewallDriver
  • 33. Test Setup Explained System: 2 Socket, 24 core, IvyBridge CPU: Intel(R) Xeon(R) CPU E5-2643 v2 @ 3.50GHz Kernel: 3.10.0-229.1.2.el7.x86_64 Test: Netperf with TCP_STREAM and TCP_RR Notes: Virt overhead eliminated, netperf/netserver runs baremetal Compute 1 netperf Compute 2 10GiB Link netserver netserver local Multi node
  • 34. TCP Stream, Local, 1 netperf thread 64 128 512 1024 9000 64000 0 50 100 150 200 250 300 350 400 450 500 0 5,000 10,000 15,000 20,000 25,000 TCP stream Local, 1 netperf threads sub-title iptables throughput OVS throughput iptables cycles OVS cycles Packet Size CPUMegacyclesperMbit Mbit
  • 35. TCP Stream, Local, 16 netperf threads 64 128 512 1024 9000 64000 0 50 100 150 200 250 300 350 400 0 50,000 100,000 150,000 200,000 250,000 TCP stream Local, 16 netperf threads sub-title iptables throughput OVS throughput iptables cycles OVS cycles Packet Size CPUMegacyclesperMbit Mbit
  • 36. TCP Stream, Multi Node, 8 netperf threads 64 128 512 1024 9000 64000 0 50 100 150 200 250 0 1,000 2,000 3,000 4,000 5,000 6,000 7,000 8,000 9,000 10,000 TCP stream node-to-node, 8 netperf threads iptables throughput OVS throughput iptables cycles OVS cycles Packet Size CPUMegacyclesperMbit Mbit
  • 37. TCP Requests, Local, 1 netperf thread 64 128 512 1024 9000 64000 0 50 100 150 200 250 300 350 400 450 500 0 5,000 10,000 15,000 20,000 25,000 TCP stream Local, 1 netperf threads sub-title iptables throughput OVS throughput iptables cycles OVS cycles Packet Size CPUMegacyclesperMbit Mbit
  • 38. TCP Requests, Local, 64K packets 1 4 8 16 0 10 20 30 40 50 60 70 0 20,000 40,000 60,000 80,000 100,000 120,000 140,000 160,000 TCP Requests/s Local, 64K packets sub-title iptables requests/s OVS requests/s iptables cycles OVS cycles Number netperf threads CPUMegacyclesperMbit Requests/s
  • 39. TCP Requests, Multi Node, 1 netperf thread 64 128 512 1024 9000 64000 0 2 4 6 8 10 12 14 16 18 20 0 5,000 10,000 15,000 20,000 25,000 30,000 TCP Requests/s node-to-node, 1 netperf threads sub-title iptables requests/s OVS requests/s iptables cycles OVS cycles Packet Size CPUMegacyclesperMbit Requests/s
  • 40. TCP Requests, Multi Node, 64K packets 1 4 8 16 0 5 10 15 20 25 30 35 40 0 2,000 4,000 6,000 8,000 10,000 12,000 14,000 16,000 18,000 20,000 TCP Requests/s node-to-node, 64K packets sub-title iptables requests/s OVS requests/s iptables cycles OVS cycles Number netperf threads CPUMegacyclesperMbit Requests/s
  • 41. Conclusion ● Both throughput and latency are considerably improve (Up to 6x in some situations). ● If limited by wire speed, pure OVS approach generally consumes less CPU cycles for the same result, leaving more resources for actual workload. ● Issue for specific packet sizes to be investigated and resolved before merge.
  • 42. Next Steps ● Convert ML2 PoC to a patch that can be merged – Write functional tests – Optimize OF rules/manipulation ● Complete upstream merge of connection tracking support in Open vSwitch in the Linux kernel ● Consider and realize OVN integration of this work ● Hopefully ready for Liberty
  • 43. Q&A ● OVS w/ CT Neutron ML2 plugin – https://github.com/mangelajo/vagrant-rdo-juno-ovs-ct -firewall ● Open vSwitch – http://openvswitch.org/ ● Conntrack code on GitHub – https://github.com/justinpettit/ovs/tree/conntrack ● Stateful Connection Tracking & Stateful NAT (OVS conference) – http://www.openvswitch.org/support/ovscon2014/17 /1030-conntrack_nat.pdf