SlideShare a Scribd company logo
1 of 11
Download to read offline
Improving Packet Filtering feature
        (API and Driver)
        Akihiro Motoki, NEC
            2012/10/17
Motivation
• Demands for fine-grained packet filtering
  – Beyond security group ACL
     • Security group just defines incoming ACL from the Internet
       (outside of OpenStack).
     • ACLs for inter-VM communication
  – Dynamic rule configuration
     • Allow only during a limited period
       E.g.: Bare-metal support, TFTP only allowed during boot
  – Admin enforces “additional security policies” for
    tenants
     • Anti- MAC/ARP spoofing (like nova-compute does)
Steps to enforce security policy
 (1) Create a packet filtering policy

Policy : AllowHTTP (dst_port=80)


     (3) Binding a security policy      (4) Packet filtering rule is
         and a quantum port             enforced on a real network.
                                        Actual rule: AllowHTTP(dst_port=80)
                                                for Port-id: xxxxxxxx


       Port-id : xxxxxxxx

     (2) Create a Quantum port

 After a port is created, security policies are enforced in real.
 Flexible binding between port and policy is needed.
  Introducing a notion of “port group”
Security Policy with Port Group


                    AllowHTTP      Group1


VM                                                 VM
 2 P                                             P 1


          Group2   AllowDBAccess   Group1




                                            Security Policy
Packet Filtering Policy
      { "filter": {
         "priority": "<Priority number of this filter rule (1-65535)>",
         "condition": {
            "in_group": "<Incoming Quantum port group>",
            “out_group": "<Outgoing Quantum port group>",
            "src_mac": "<Source MAC address>",
            "dst_mac": "<Destination MAC address>",
            “ethertype” : <L3 protocol type (IPv4/IPv6/…)>
            "src_cidr": "<Source IP address>",
            "dst_cidr": "<Destination IP address>",
            "protocol": "<L4 Protocol (TCP/UDP/ICMP/…)>",
            "src_port": "<L4 source port number>",
            "dst_port": "<L4 destination port number>" },
         "action": "<Action for matched packets (ACCEPT or DROP)>" } }

• in/out_groups will be bound to quantum ports.
• Either of in_group or out_group can be ‘*’.
• Non-‘*’ in/out_group are bound to quantum ports, the security
  policy is applied to the associated ports.
Rule after bound with a port
   { "filter": {
      "priority": "<Priority number of this filter rule (1-65535)>",
      "condition": {
         "in_port": "<Incoming Quantum port ID>",
         “out_port": "<Outgoing Quantum port ID>",
         "src_mac": "<Source MAC address>",
         "dst_mac": "<Destination MAC address>",
         “ethertype” : <L2 protocol type (IPv4/IPv6/ARP)>
         "src_cidr": "<Source IP address>",
         "dst_cidr": "<Destination IP address>",
         "protocol": "<L3 Protocol (TCP/UDP/ICMP)>",
         "src_port": "<L4 source port number>",
         "dst_port": "<L4 destination port number>" },
      "action": "<Action for matched packets (ACCEPT or DROP)>" } }


• This rule is applied to a physical network.
Driver model
• Driver model is suitable.
   – There are several implementation options for
     packet filtering.
      •   Linux iptables, OVS flow rules (on compute nodes)
      •   SDN/OpenFlow controller (on a logical netwrok)
      •   Firewall appliance or gateway router
      •   Combination of the above
                                                 Packet Filter REST-API
   – In the real implementation,
      there are two options:
      • Driver class (using import_class)       Packet Filtering Support
      • Mixin class                           Driver     Driver      Driver



                                                                     FW
                                             iptables   OpenFlow
                                                                   Appliance
Driver interface where?
     Registering
  Packet Filter Policy   Add port binding
(Add Group)
                                            Option 1       Option 2

                                                                Common
         Filtering Policy Mngmnt
                                                Common
              Request Enforcing
                rule for a port
                                                                 Driver

          Filtering Rule Enforcing                Driver

             Configure devices

             Network devices
Security group support
• Security group can be implemented on top of
  this API.
  • Create a port group
  • Convert packet filtering policy from security group rule.


             Security Group API
                                            Packet Filter API

           Security Group Support

                  Method call


                     Packet Filtering Management

                                  Driver
Other topics
• “admin_flag”
  – Both tenant and admin can use the packet
    filtering API.
  – There are cases where admin enforces security
    policies for tenants. These policies should be
    invisible to tenants.
Proposal
• Define a more flexible model for packet
  filtering
  – Security Group is implemented on top this
    interface.
• Use Driver model approach to accept multiple
  implementation.

More Related Content

What's hot

IPV6 - Threats and Countermeasures / Crash Course
IPV6 - Threats and Countermeasures / Crash CourseIPV6 - Threats and Countermeasures / Crash Course
IPV6 - Threats and Countermeasures / Crash CourseThierry Zoller
 
Mum bandwidth management and qos
Mum   bandwidth management and qosMum   bandwidth management and qos
Mum bandwidth management and qosTeav Sovandara
 
Deployment of Juniper Contrail in AVG Technologies
Deployment of Juniper Contrail in AVG TechnologiesDeployment of Juniper Contrail in AVG Technologies
Deployment of Juniper Contrail in AVG TechnologiesMarketingArrowECS_CZ
 
Converting your linux Box in security Gateway Part – 2 (Looking inside VPN)
Converting your linux Box in security Gateway Part – 2 (Looking inside VPN)Converting your linux Box in security Gateway Part – 2 (Looking inside VPN)
Converting your linux Box in security Gateway Part – 2 (Looking inside VPN)n|u - The Open Security Community
 
Implementing BGP Flowspec at IP transit network
Implementing BGP Flowspec at IP transit networkImplementing BGP Flowspec at IP transit network
Implementing BGP Flowspec at IP transit networkPavel Odintsov
 
Devicemgmt
DevicemgmtDevicemgmt
Devicemgmtxyxz
 
MQTT – protocol for yours IoT
MQTT – protocol for yours IoTMQTT – protocol for yours IoT
MQTT – protocol for yours IoTMiroslav Resetar
 
Practical Verification of TKIP Vulnerabilities
Practical Verification of TKIP VulnerabilitiesPractical Verification of TKIP Vulnerabilities
Practical Verification of TKIP Vulnerabilitiesvanhoefm
 
Best Practices Using MQTT to Connect Millions of IoT Devices
Best Practices Using MQTT  to Connect Millions of IoT DevicesBest Practices Using MQTT  to Connect Millions of IoT Devices
Best Practices Using MQTT to Connect Millions of IoT DevicesChristian Götz
 
Dpdk 2019-ipsec-eventdev
Dpdk 2019-ipsec-eventdevDpdk 2019-ipsec-eventdev
Dpdk 2019-ipsec-eventdevHemant Agrawal
 
Low Latency Mobile Messaging using MQTT
Low Latency Mobile Messaging using MQTTLow Latency Mobile Messaging using MQTT
Low Latency Mobile Messaging using MQTTHenrik Sjöstrand
 
Ott Streaming Protocols and DRM
Ott Streaming Protocols and DRMOtt Streaming Protocols and DRM
Ott Streaming Protocols and DRMASIMYILDIZ
 
The IPv6 Snort Plugin (at DeepSec 2014)
The IPv6 Snort Plugin (at DeepSec 2014)The IPv6 Snort Plugin (at DeepSec 2014)
The IPv6 Snort Plugin (at DeepSec 2014)Martin Schütte
 
2015.7.17 JANOG36 BGP Flowspec Interoperability Test @ Interop Tokyo 2015 Sho...
2015.7.17 JANOG36 BGP Flowspec Interoperability Test @ Interop Tokyo 2015 Sho...2015.7.17 JANOG36 BGP Flowspec Interoperability Test @ Interop Tokyo 2015 Sho...
2015.7.17 JANOG36 BGP Flowspec Interoperability Test @ Interop Tokyo 2015 Sho...Shuichi Ohkubo
 
Summit 16: OpenStack Tacker - Open Platform for NFV Orchestration
Summit 16: OpenStack Tacker - Open Platform for NFV OrchestrationSummit 16: OpenStack Tacker - Open Platform for NFV Orchestration
Summit 16: OpenStack Tacker - Open Platform for NFV OrchestrationOPNFV
 
OpenStack and OpenContrail for FreeBSD platform by Michał Dubiel
OpenStack and OpenContrail for FreeBSD platform by Michał DubielOpenStack and OpenContrail for FreeBSD platform by Michał Dubiel
OpenStack and OpenContrail for FreeBSD platform by Michał Dubieleurobsdcon
 
Technical Overview of QUIC
Technical  Overview of QUICTechnical  Overview of QUIC
Technical Overview of QUICshigeki_ohtsu
 

What's hot (20)

IPV6 - Threats and Countermeasures / Crash Course
IPV6 - Threats and Countermeasures / Crash CourseIPV6 - Threats and Countermeasures / Crash Course
IPV6 - Threats and Countermeasures / Crash Course
 
Mum bandwidth management and qos
Mum   bandwidth management and qosMum   bandwidth management and qos
Mum bandwidth management and qos
 
Deployment of Juniper Contrail in AVG Technologies
Deployment of Juniper Contrail in AVG TechnologiesDeployment of Juniper Contrail in AVG Technologies
Deployment of Juniper Contrail in AVG Technologies
 
Converting your linux Box in security Gateway Part – 2 (Looking inside VPN)
Converting your linux Box in security Gateway Part – 2 (Looking inside VPN)Converting your linux Box in security Gateway Part – 2 (Looking inside VPN)
Converting your linux Box in security Gateway Part – 2 (Looking inside VPN)
 
Implementing BGP Flowspec at IP transit network
Implementing BGP Flowspec at IP transit networkImplementing BGP Flowspec at IP transit network
Implementing BGP Flowspec at IP transit network
 
Devicemgmt
DevicemgmtDevicemgmt
Devicemgmt
 
MQTT – protocol for yours IoT
MQTT – protocol for yours IoTMQTT – protocol for yours IoT
MQTT – protocol for yours IoT
 
Practical Verification of TKIP Vulnerabilities
Practical Verification of TKIP VulnerabilitiesPractical Verification of TKIP Vulnerabilities
Practical Verification of TKIP Vulnerabilities
 
Libpcap
LibpcapLibpcap
Libpcap
 
Best Practices Using MQTT to Connect Millions of IoT Devices
Best Practices Using MQTT  to Connect Millions of IoT DevicesBest Practices Using MQTT  to Connect Millions of IoT Devices
Best Practices Using MQTT to Connect Millions of IoT Devices
 
Introduction to SDN and NFV
Introduction to SDN and NFVIntroduction to SDN and NFV
Introduction to SDN and NFV
 
Dpdk 2019-ipsec-eventdev
Dpdk 2019-ipsec-eventdevDpdk 2019-ipsec-eventdev
Dpdk 2019-ipsec-eventdev
 
Low Latency Mobile Messaging using MQTT
Low Latency Mobile Messaging using MQTTLow Latency Mobile Messaging using MQTT
Low Latency Mobile Messaging using MQTT
 
Ott Streaming Protocols and DRM
Ott Streaming Protocols and DRMOtt Streaming Protocols and DRM
Ott Streaming Protocols and DRM
 
The IPv6 Snort Plugin (at DeepSec 2014)
The IPv6 Snort Plugin (at DeepSec 2014)The IPv6 Snort Plugin (at DeepSec 2014)
The IPv6 Snort Plugin (at DeepSec 2014)
 
Comparison between-ipv6-and-6 lowpan
Comparison between-ipv6-and-6 lowpanComparison between-ipv6-and-6 lowpan
Comparison between-ipv6-and-6 lowpan
 
2015.7.17 JANOG36 BGP Flowspec Interoperability Test @ Interop Tokyo 2015 Sho...
2015.7.17 JANOG36 BGP Flowspec Interoperability Test @ Interop Tokyo 2015 Sho...2015.7.17 JANOG36 BGP Flowspec Interoperability Test @ Interop Tokyo 2015 Sho...
2015.7.17 JANOG36 BGP Flowspec Interoperability Test @ Interop Tokyo 2015 Sho...
 
Summit 16: OpenStack Tacker - Open Platform for NFV Orchestration
Summit 16: OpenStack Tacker - Open Platform for NFV OrchestrationSummit 16: OpenStack Tacker - Open Platform for NFV Orchestration
Summit 16: OpenStack Tacker - Open Platform for NFV Orchestration
 
OpenStack and OpenContrail for FreeBSD platform by Michał Dubiel
OpenStack and OpenContrail for FreeBSD platform by Michał DubielOpenStack and OpenContrail for FreeBSD platform by Michał Dubiel
OpenStack and OpenContrail for FreeBSD platform by Michał Dubiel
 
Technical Overview of QUIC
Technical  Overview of QUICTechnical  Overview of QUIC
Technical Overview of QUIC
 

Viewers also liked

neutron_icehouse_update
neutron_icehouse_updateneutron_icehouse_update
neutron_icehouse_updateAkihiro Motoki
 
20131011_openstack-neutron-vyattameeting
20131011_openstack-neutron-vyattameeting20131011_openstack-neutron-vyattameeting
20131011_openstack-neutron-vyattameetingAkihiro Motoki
 
Horizon quantum-integration-grizzly
Horizon quantum-integration-grizzlyHorizon quantum-integration-grizzly
Horizon quantum-integration-grizzlyAkihiro Motoki
 
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessionsOpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessionsAkihiro Motoki
 
20161129 neutron recent topic
20161129 neutron recent topic20161129 neutron recent topic
20161129 neutron recent topicAkihiro Motoki
 
20150713 OpenStack Translation in Japan
20150713 OpenStack Translation in Japan20150713 OpenStack Translation in Japan
20150713 OpenStack Translation in JapanAkihiro Motoki
 
20131212 Okinawa OpenDays OpenStack
20131212 Okinawa OpenDays OpenStack20131212 Okinawa OpenDays OpenStack
20131212 Okinawa OpenDays OpenStackAkihiro Motoki
 
20150713-OpenStack-5thbirthday-kilo-liberty-and-towards
20150713-OpenStack-5thbirthday-kilo-liberty-and-towards20150713-OpenStack-5thbirthday-kilo-liberty-and-towards
20150713-OpenStack-5thbirthday-kilo-liberty-and-towardsAkihiro Motoki
 
Neutron: br-ex is now deprecated! what is modern way?
Neutron: br-ex is now deprecated! what is modern way?Neutron: br-ex is now deprecated! what is modern way?
Neutron: br-ex is now deprecated! what is modern way?Akihiro Motoki
 
20131211 Neutron Havana
20131211 Neutron Havana20131211 Neutron Havana
20131211 Neutron HavanaAkihiro Motoki
 
Neutron Icehouse Update (Japanese)
Neutron Icehouse Update (Japanese)Neutron Icehouse Update (Japanese)
Neutron Icehouse Update (Japanese)Akihiro Motoki
 

Viewers also liked (11)

neutron_icehouse_update
neutron_icehouse_updateneutron_icehouse_update
neutron_icehouse_update
 
20131011_openstack-neutron-vyattameeting
20131011_openstack-neutron-vyattameeting20131011_openstack-neutron-vyattameeting
20131011_openstack-neutron-vyattameeting
 
Horizon quantum-integration-grizzly
Horizon quantum-integration-grizzlyHorizon quantum-integration-grizzly
Horizon quantum-integration-grizzly
 
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessionsOpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
 
20161129 neutron recent topic
20161129 neutron recent topic20161129 neutron recent topic
20161129 neutron recent topic
 
20150713 OpenStack Translation in Japan
20150713 OpenStack Translation in Japan20150713 OpenStack Translation in Japan
20150713 OpenStack Translation in Japan
 
20131212 Okinawa OpenDays OpenStack
20131212 Okinawa OpenDays OpenStack20131212 Okinawa OpenDays OpenStack
20131212 Okinawa OpenDays OpenStack
 
20150713-OpenStack-5thbirthday-kilo-liberty-and-towards
20150713-OpenStack-5thbirthday-kilo-liberty-and-towards20150713-OpenStack-5thbirthday-kilo-liberty-and-towards
20150713-OpenStack-5thbirthday-kilo-liberty-and-towards
 
Neutron: br-ex is now deprecated! what is modern way?
Neutron: br-ex is now deprecated! what is modern way?Neutron: br-ex is now deprecated! what is modern way?
Neutron: br-ex is now deprecated! what is modern way?
 
20131211 Neutron Havana
20131211 Neutron Havana20131211 Neutron Havana
20131211 Neutron Havana
 
Neutron Icehouse Update (Japanese)
Neutron Icehouse Update (Japanese)Neutron Icehouse Update (Japanese)
Neutron Icehouse Update (Japanese)
 

Similar to Quantum-grizzly-packet-filtering

4.1-cnse-study-guide.pdf
4.1-cnse-study-guide.pdf4.1-cnse-study-guide.pdf
4.1-cnse-study-guide.pdfssuser88346b
 
Security defined routing_cybergamut_v1_1
Security defined routing_cybergamut_v1_1Security defined routing_cybergamut_v1_1
Security defined routing_cybergamut_v1_1Joel W. King
 
Firewall in Perl by Chankey Pathak
Firewall in Perl by Chankey PathakFirewall in Perl by Chankey Pathak
Firewall in Perl by Chankey PathakChankey Pathak
 
Linux sever building
Linux sever buildingLinux sever building
Linux sever buildingEdmond Yu
 
Securing your Container Environment with Open Source
Securing your Container Environment with Open SourceSecuring your Container Environment with Open Source
Securing your Container Environment with Open SourceMichael Ducy
 
IRATI: an open source RINA implementation for Linux/OS
IRATI: an open source RINA implementation for Linux/OSIRATI: an open source RINA implementation for Linux/OS
IRATI: an open source RINA implementation for Linux/OSICT PRISTINE
 
Hardening Linux and introducing Securix Linux
Hardening Linux and introducing Securix LinuxHardening Linux and introducing Securix Linux
Hardening Linux and introducing Securix LinuxSecurity Session
 
Marrion Kujinga ; Firewalls
Marrion Kujinga ; FirewallsMarrion Kujinga ; Firewalls
Marrion Kujinga ; FirewallsMarrion Kujinga
 
25 years of firewalls and network filtering - From antiquity to the cloud
25 years of firewalls and network filtering - From antiquity to the cloud25 years of firewalls and network filtering - From antiquity to the cloud
25 years of firewalls and network filtering - From antiquity to the cloudshira koper
 
Cloud Native Networking & Security with Cilium & eBPF
Cloud Native Networking & Security with Cilium & eBPFCloud Native Networking & Security with Cilium & eBPF
Cloud Native Networking & Security with Cilium & eBPFRaphaël PINSON
 
Automating cloud security - Jonny Griffin
Automating cloud security - Jonny GriffinAutomating cloud security - Jonny Griffin
Automating cloud security - Jonny GriffinJonnathan Griffin
 
Tech 101: Understanding Firewalls
Tech 101: Understanding FirewallsTech 101: Understanding Firewalls
Tech 101: Understanding FirewallsLikan Patra
 
IPTABLES_linux_Firewall_Administration (1).pdf
IPTABLES_linux_Firewall_Administration (1).pdfIPTABLES_linux_Firewall_Administration (1).pdf
IPTABLES_linux_Firewall_Administration (1).pdfmpassword
 
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)Jakub Botwicz
 
Hardening Linux, introducing Securix GNU/Linux
Hardening Linux, introducing Securix GNU/LinuxHardening Linux, introducing Securix GNU/Linux
Hardening Linux, introducing Securix GNU/LinuxMartin Holovský
 
Pristine rina-security-icc-2016
Pristine rina-security-icc-2016Pristine rina-security-icc-2016
Pristine rina-security-icc-2016ICT PRISTINE
 

Similar to Quantum-grizzly-packet-filtering (20)

4.1-cnse-study-guide.pdf
4.1-cnse-study-guide.pdf4.1-cnse-study-guide.pdf
4.1-cnse-study-guide.pdf
 
Security defined routing_cybergamut_v1_1
Security defined routing_cybergamut_v1_1Security defined routing_cybergamut_v1_1
Security defined routing_cybergamut_v1_1
 
Firewall in Perl by Chankey Pathak
Firewall in Perl by Chankey PathakFirewall in Perl by Chankey Pathak
Firewall in Perl by Chankey Pathak
 
Linux sever building
Linux sever buildingLinux sever building
Linux sever building
 
Securing your Container Environment with Open Source
Securing your Container Environment with Open SourceSecuring your Container Environment with Open Source
Securing your Container Environment with Open Source
 
Linux and firewall
Linux and firewallLinux and firewall
Linux and firewall
 
IRATI: an open source RINA implementation for Linux/OS
IRATI: an open source RINA implementation for Linux/OSIRATI: an open source RINA implementation for Linux/OS
IRATI: an open source RINA implementation for Linux/OS
 
Snort
SnortSnort
Snort
 
Hardening Linux and introducing Securix Linux
Hardening Linux and introducing Securix LinuxHardening Linux and introducing Securix Linux
Hardening Linux and introducing Securix Linux
 
Breach and attack simulation tools
Breach and attack simulation toolsBreach and attack simulation tools
Breach and attack simulation tools
 
Marrion Kujinga ; Firewalls
Marrion Kujinga ; FirewallsMarrion Kujinga ; Firewalls
Marrion Kujinga ; Firewalls
 
25 years of firewalls and network filtering - From antiquity to the cloud
25 years of firewalls and network filtering - From antiquity to the cloud25 years of firewalls and network filtering - From antiquity to the cloud
25 years of firewalls and network filtering - From antiquity to the cloud
 
Cloud Native Networking & Security with Cilium & eBPF
Cloud Native Networking & Security with Cilium & eBPFCloud Native Networking & Security with Cilium & eBPF
Cloud Native Networking & Security with Cilium & eBPF
 
Firewalls
FirewallsFirewalls
Firewalls
 
Automating cloud security - Jonny Griffin
Automating cloud security - Jonny GriffinAutomating cloud security - Jonny Griffin
Automating cloud security - Jonny Griffin
 
Tech 101: Understanding Firewalls
Tech 101: Understanding FirewallsTech 101: Understanding Firewalls
Tech 101: Understanding Firewalls
 
IPTABLES_linux_Firewall_Administration (1).pdf
IPTABLES_linux_Firewall_Administration (1).pdfIPTABLES_linux_Firewall_Administration (1).pdf
IPTABLES_linux_Firewall_Administration (1).pdf
 
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
 
Hardening Linux, introducing Securix GNU/Linux
Hardening Linux, introducing Securix GNU/LinuxHardening Linux, introducing Securix GNU/Linux
Hardening Linux, introducing Securix GNU/Linux
 
Pristine rina-security-icc-2016
Pristine rina-security-icc-2016Pristine rina-security-icc-2016
Pristine rina-security-icc-2016
 

More from Akihiro Motoki

20190722 OpenStack community past present future
20190722 OpenStack community past present future20190722 OpenStack community past present future
20190722 OpenStack community past present futureAkihiro Motoki
 
20190722 Building handy CI with zuul and OpenStack
20190722 Building handy CI with zuul and OpenStack20190722 Building handy CI with zuul and OpenStack
20190722 Building handy CI with zuul and OpenStackAkihiro Motoki
 
20190118-josug-open stack-community-goals
20190118-josug-open stack-community-goals20190118-josug-open stack-community-goals
20190118-josug-open stack-community-goalsAkihiro Motoki
 
OpenStack Neutron IPv6 Lessons
OpenStack Neutron IPv6 LessonsOpenStack Neutron IPv6 Lessons
OpenStack Neutron IPv6 LessonsAkihiro Motoki
 
20130724 openstack-3rd-anniversary-amotoki
20130724 openstack-3rd-anniversary-amotoki20130724 openstack-3rd-anniversary-amotoki
20130724 openstack-3rd-anniversary-amotokiAkihiro Motoki
 
OpenStack Contribution Howto
OpenStack Contribution HowtoOpenStack Contribution Howto
OpenStack Contribution HowtoAkihiro Motoki
 
20121216 OSC Cloud OpenStack Quantum
20121216 OSC Cloud OpenStack Quantum20121216 OSC Cloud OpenStack Quantum
20121216 OSC Cloud OpenStack QuantumAkihiro Motoki
 
Horizon Quantum Integration grizzly
Horizon Quantum Integration grizzlyHorizon Quantum Integration grizzly
Horizon Quantum Integration grizzlyAkihiro Motoki
 

More from Akihiro Motoki (8)

20190722 OpenStack community past present future
20190722 OpenStack community past present future20190722 OpenStack community past present future
20190722 OpenStack community past present future
 
20190722 Building handy CI with zuul and OpenStack
20190722 Building handy CI with zuul and OpenStack20190722 Building handy CI with zuul and OpenStack
20190722 Building handy CI with zuul and OpenStack
 
20190118-josug-open stack-community-goals
20190118-josug-open stack-community-goals20190118-josug-open stack-community-goals
20190118-josug-open stack-community-goals
 
OpenStack Neutron IPv6 Lessons
OpenStack Neutron IPv6 LessonsOpenStack Neutron IPv6 Lessons
OpenStack Neutron IPv6 Lessons
 
20130724 openstack-3rd-anniversary-amotoki
20130724 openstack-3rd-anniversary-amotoki20130724 openstack-3rd-anniversary-amotoki
20130724 openstack-3rd-anniversary-amotoki
 
OpenStack Contribution Howto
OpenStack Contribution HowtoOpenStack Contribution Howto
OpenStack Contribution Howto
 
20121216 OSC Cloud OpenStack Quantum
20121216 OSC Cloud OpenStack Quantum20121216 OSC Cloud OpenStack Quantum
20121216 OSC Cloud OpenStack Quantum
 
Horizon Quantum Integration grizzly
Horizon Quantum Integration grizzlyHorizon Quantum Integration grizzly
Horizon Quantum Integration grizzly
 

Quantum-grizzly-packet-filtering

  • 1. Improving Packet Filtering feature (API and Driver) Akihiro Motoki, NEC 2012/10/17
  • 2. Motivation • Demands for fine-grained packet filtering – Beyond security group ACL • Security group just defines incoming ACL from the Internet (outside of OpenStack). • ACLs for inter-VM communication – Dynamic rule configuration • Allow only during a limited period E.g.: Bare-metal support, TFTP only allowed during boot – Admin enforces “additional security policies” for tenants • Anti- MAC/ARP spoofing (like nova-compute does)
  • 3. Steps to enforce security policy (1) Create a packet filtering policy Policy : AllowHTTP (dst_port=80) (3) Binding a security policy (4) Packet filtering rule is and a quantum port enforced on a real network. Actual rule: AllowHTTP(dst_port=80) for Port-id: xxxxxxxx Port-id : xxxxxxxx (2) Create a Quantum port After a port is created, security policies are enforced in real. Flexible binding between port and policy is needed.  Introducing a notion of “port group”
  • 4. Security Policy with Port Group AllowHTTP Group1 VM VM 2 P P 1 Group2 AllowDBAccess Group1 Security Policy
  • 5. Packet Filtering Policy { "filter": { "priority": "<Priority number of this filter rule (1-65535)>", "condition": { "in_group": "<Incoming Quantum port group>", “out_group": "<Outgoing Quantum port group>", "src_mac": "<Source MAC address>", "dst_mac": "<Destination MAC address>", “ethertype” : <L3 protocol type (IPv4/IPv6/…)> "src_cidr": "<Source IP address>", "dst_cidr": "<Destination IP address>", "protocol": "<L4 Protocol (TCP/UDP/ICMP/…)>", "src_port": "<L4 source port number>", "dst_port": "<L4 destination port number>" }, "action": "<Action for matched packets (ACCEPT or DROP)>" } } • in/out_groups will be bound to quantum ports. • Either of in_group or out_group can be ‘*’. • Non-‘*’ in/out_group are bound to quantum ports, the security policy is applied to the associated ports.
  • 6. Rule after bound with a port { "filter": { "priority": "<Priority number of this filter rule (1-65535)>", "condition": { "in_port": "<Incoming Quantum port ID>", “out_port": "<Outgoing Quantum port ID>", "src_mac": "<Source MAC address>", "dst_mac": "<Destination MAC address>", “ethertype” : <L2 protocol type (IPv4/IPv6/ARP)> "src_cidr": "<Source IP address>", "dst_cidr": "<Destination IP address>", "protocol": "<L3 Protocol (TCP/UDP/ICMP)>", "src_port": "<L4 source port number>", "dst_port": "<L4 destination port number>" }, "action": "<Action for matched packets (ACCEPT or DROP)>" } } • This rule is applied to a physical network.
  • 7. Driver model • Driver model is suitable. – There are several implementation options for packet filtering. • Linux iptables, OVS flow rules (on compute nodes) • SDN/OpenFlow controller (on a logical netwrok) • Firewall appliance or gateway router • Combination of the above Packet Filter REST-API – In the real implementation, there are two options: • Driver class (using import_class) Packet Filtering Support • Mixin class Driver Driver Driver FW iptables OpenFlow Appliance
  • 8. Driver interface where? Registering Packet Filter Policy Add port binding (Add Group) Option 1 Option 2 Common Filtering Policy Mngmnt Common Request Enforcing rule for a port Driver Filtering Rule Enforcing Driver Configure devices Network devices
  • 9. Security group support • Security group can be implemented on top of this API. • Create a port group • Convert packet filtering policy from security group rule. Security Group API Packet Filter API Security Group Support Method call Packet Filtering Management Driver
  • 10. Other topics • “admin_flag” – Both tenant and admin can use the packet filtering API. – There are cases where admin enforces security policies for tenants. These policies should be invisible to tenants.
  • 11. Proposal • Define a more flexible model for packet filtering – Security Group is implemented on top this interface. • Use Driver model approach to accept multiple implementation.