19
OpenStack Neutron Service Insertion and Chaining Icehouse Summit Nov 2013 Sumit Naiksatam, Kanzhe Jiang

OpenStack Neutron Service Chaining and Insertion

Embed Size (px)

DESCRIPTION

This is the service insertion and chaining proposal which was presented during the OpenStack Icehouse Design Summit (Hong Kong, Nov 2013).

Citation preview

Page 1: OpenStack Neutron Service Chaining and Insertion

OpenStack Neutron Service Insertion and Chaining

Icehouse Summit Nov 2013

Sumit Naiksatam, Kanzhe Jiang

Page 2: OpenStack Neutron Service Chaining and Insertion

Resource Model

Page 3: OpenStack Neutron Service Chaining and Insertion

Service Insertion Context and different insertion modes

Page 4: OpenStack Neutron Service Chaining and Insertion

Service Insertion Context

Page 5: OpenStack Neutron Service Chaining and Insertion

L3 insertion

Page 6: OpenStack Neutron Service Chaining and Insertion

L3 Insertion

Page 7: OpenStack Neutron Service Chaining and Insertion

L3 Insertion

Page 8: OpenStack Neutron Service Chaining and Insertion

L3 Insertion

Page 9: OpenStack Neutron Service Chaining and Insertion

L2 Insertion

Page 10: OpenStack Neutron Service Chaining and Insertion

Bump in the Wire

Page 11: OpenStack Neutron Service Chaining and Insertion

Tap

Page 12: OpenStack Neutron Service Chaining and Insertion

Service Chain Resource

Page 13: OpenStack Neutron Service Chaining and Insertion

Create and insert individual service

Page 14: OpenStack Neutron Service Chaining and Insertion

Chooses Service Provider Name from list of available service providers.

$ neutron service-provider-list

-----------------------------------------------------| Service Type | Name | Default ||----------------------------------------------------| FIREWALL | IPTables | True || FIREWALL | VendorA | False || VPN | OpenSwan | True || VPN | VendorB | False |-----------------------------------------------------

Page 15: OpenStack Neutron Service Chaining and Insertion

Create service instance (firewall in this case)

$ neutron firewall-create <firewall_policy_id>

OR

$ neutron firewall-create <firewall_policy_id> \ --provider VendorA

OR

$ neutron firewall-create <firewall_policy_id> \ --provider VendorA \ --insertion-context router_id=<router_id>

Page 16: OpenStack Neutron Service Chaining and Insertion

Create a Service Chain

Page 17: OpenStack Neutron Service Chaining and Insertion

Chooses Service Provider Name from list of available service providers.

$ neutron service-provider-list-----------------------------------------------------| Service Type | Name | Default ||----------------------------------------------------| FIREWALL | IPTables | True || FIREWALL | VendorA | False || VPN | OpenSwan | True || VPN | VendorB | False |-----------------------------------------------------

$ neutron service-chain-provider-list

-----------------------------------------------| Chain Name | Services ||----------------------------------------------|Firewall-VPN-Ref-Chain| [IPTables,OpenSwan] |-----------------------------------------------

Page 18: OpenStack Neutron Service Chaining and Insertion

Create each service in the eventual chain

$ neutron firewall-create <firewall_policy_id> \ --provider IPTables \ –-in-chain True \ … … …

$ neutron vpn-service-create \ --provider OpenSwan \ –-in-chain True \ … … …

Page 19: OpenStack Neutron Service Chaining and Insertion

Create chain

$ neutron service-chain-create \ --provider Firewall-VPN-Ref-Chain \ --services <firewall_instance_id, vpn_instance_id> \ --name my_fw_vpn_chain \ --source-insertion-context --router_id=<router_id> … … …