11
COPYRIGHT © 2013 ALCATEL-LUCENT. ALL RIGHTS RESERVED. ALCATEL-LUCENT — CONFIDENTIAL — SOLELY FOR AUTHORIZED PERSONS HAVING A NEED TO KNOW — PROPRIETARY — USE PURSUANT TO COMPANY INSTRUCTION DR1 Presentation Template 8AY-03030-0004-TQZZA Revision 07 Issue <x.y> Dated <yyyy-mm-dd> <Baselined/Draft>, Doc <id#, if applicable> NETWORK CONNECTIVITY USE CASES AT CARRIER / SERVICE PROVIDERS [email protected] CloudBand June 2014

NETWORK CONNECTIVITY USE CASES AT CARRIER / SERVICE PROVIDERS [email protected] CloudBand June 2014

Embed Size (px)

Citation preview

Page 1: NETWORK CONNECTIVITY USE CASES AT CARRIER / SERVICE PROVIDERS Avi.vachnis@alcatel-lucent.com CloudBand June 2014

NETWORK CONNECTIVITY USE CASES AT CARRIER / SERVICE [email protected]

CloudBandJune 2014

Page 2: NETWORK CONNECTIVITY USE CASES AT CARRIER / SERVICE PROVIDERS Avi.vachnis@alcatel-lucent.com CloudBand June 2014

USE CASES

As an application architect I’d like to model my application and network topology as follows:

Page 3: NETWORK CONNECTIVITY USE CASES AT CARRIER / SERVICE PROVIDERS Avi.vachnis@alcatel-lucent.com CloudBand June 2014

TOSCA SIMPLE PROFILE YAML - NETWORK NODE TYPE

node_types:

tosca.nodes.Network:

derived_from: tosca.nodes.Root

properties:

ip_version:

type: integer

required: false

cidr:

type: string

required: false

start_ip:

type: string

required: false

# continue at the right

# continue…

end_ip:

type: string

required: false

gateway: # generalize this idea and address also static routes

type: string

required: false

segmentation_id:

type: string

description: VLAN ID to be set in runtime

capabilities:

connection:

type: tosca.capabilities.Connectivity

Page 4: NETWORK CONNECTIVITY USE CASES AT CARRIER / SERVICE PROVIDERS Avi.vachnis@alcatel-lucent.com CloudBand June 2014

TOSCA SIMPLE PROFILE YAML - PORT NODE TYPEnode_types:

tosca.nodes.Port:

derived_from: tosca.nodes.Root

properties:

ip_address:

   type: string

is_default:

type: boolean

default: false

start_range:

type: string

end_range:

type: string

order:

type: integer

required: true

description: The order of the network interface

default: 0

constraints:

- greater_or_equal: 0

relationship_types:

tosca.relationships.LinkedTo:

short_name: link

derived_from: tosca.relationships.DependsOn

valid_targets: [ tosca.capabilities.Linkable ]

# The name relationships.Network should be revised

tosca.relationships.Network:

short_name: network

derived_from: tosca.relationships.DependsOn

valid_targets: [ tosca.capabilities.Connection ]

# Compute node should be added with this capability

capability types:

tosca.capabilities.Linkable:

derived_from: tosca.capabilities.Feature

# Network/Router node type should have this capability

capability types:

tosca.capabilities.Connectivity:

short_name: connection

derived_from: tosca.capabilities.Feature

Page 5: NETWORK CONNECTIVITY USE CASES AT CARRIER / SERVICE PROVIDERS Avi.vachnis@alcatel-lucent.com CloudBand June 2014

SERVICE TEMPLATE WITH NETWORKS STITCHING – OPTION 1node_templates:

frontend:

type: tosca.nodes.Compute

properties: # omitted for brevity

backend:

type: tosca.nodes.Compute

properties: # omitted for brevity

database:

type: tosca.nodes.Compute

properties: # omitted for brevity

oam_network:

type: tosca.nodes.Network

properties:

ip_version: { get_input: oam_network_ip_version } # 4

cidr: { get_input: oam_network_cidr }

start_ip: { get_input: oam_network_start_ip }

end_ip: { get_input: oam_network_end_ip }

admin_network:

type: tosca.nodes.Network

properties:

ip_version: { get_input: admin_network_ip_version } # 4

dhcp_enabled: { get_input: admin_network_dhcp_enabled } # false

data_network:

type: tosca.nodes.Network

properties:

ip_version: { get_input: data_network_ip_version } # 6

cidr: { get_input: data_network_cidr } # 2001:db8:92a4:0:0:6b3a:180:abcd/64

# continue from left side template node_templates: # appears here again just for indentation orientation

fe_oam_net_port: type: tosca.nodes.Port properties: is_default: true requirements: - link: frontend - network: oam_network

fe_admin_net_port: type: tosca.nodes.Port requirements: - link: frontend - network: admin_network

be_admin_net_port: type: tosca.nodes.Port properties: order: 0 requirements: - link: backend - network: admin_network

be_data_net_port: type: tosca.nodes.Port properties: order: 1 requirements: - link: backend - network: data_network db_data_net_port: type: tosca.nodes.Port requirements: - link: database - network: data_network

Page 6: NETWORK CONNECTIVITY USE CASES AT CARRIER / SERVICE PROVIDERS Avi.vachnis@alcatel-lucent.com CloudBand June 2014

6COPYRIGHT © 2013 ALCATEL-LUCENT. ALL RIGHTS RESERVED. ALCATEL-LUCENT — CONFIDENTIAL — SOLELY FOR AUTHORIZED PERSONS HAVING A NEED TO KNOW — PROPRIETARY — USE PURSUANT TO COMPANY

INSTRUCTION

DR1 Presentation Template 8AY-03030-0004-TQZZA Revision 07

SERVICE TEMPLATE WITH NETWORKS STITCHING – OPTION 1

Service Template

Network Template

A

Network Template

B

Page 7: NETWORK CONNECTIVITY USE CASES AT CARRIER / SERVICE PROVIDERS Avi.vachnis@alcatel-lucent.com CloudBand June 2014

SERVICE TEMPLATE WITH NETWORKS STITCHING – OPTION 2

node_templates:

frontend:

type: tosca.nodes.Compute

properties: # omitted for brevity

requirements:

- network: oam_network

- network: admin_network

backend:

type: tosca.nodes.Compute

properties: # omitted for brevity

requirements:

- network: admin_network

- network: data_network

database:

type: tosca.nodes.Compute

properties: # omitted for brevity

requirements:

- network: data_network

# continue from left side template node_templates: # appears here again just for indentation orientation

oam_network: type: tosca.nodes.Network properties: ip_version: { get_input: oam_network_ip_version } # 4 cidr: { get_input: oam_network_cidr } start_ip: { get_input: oam_network_start_ip } end_ip: { get_input: oam_network_end_ip } admin_network: type: tosca.nodes.Network properties: ip_version: { get_input: admin_network_ip_version } # 4 dhcp_enabled: { get_input: admin_network_dhcp_enabled } # false data_network: type: tosca.nodes.Network properties:

ip_version: { get_input: data_network_ip_version } # 6 cidr: { get_input: data_network_cidr } # 2001:db8:92a4:0:0:6b3a:180:abcd/64

Page 8: NETWORK CONNECTIVITY USE CASES AT CARRIER / SERVICE PROVIDERS Avi.vachnis@alcatel-lucent.com CloudBand June 2014

8COPYRIGHT © 2013 ALCATEL-LUCENT. ALL RIGHTS RESERVED. ALCATEL-LUCENT — CONFIDENTIAL — SOLELY FOR AUTHORIZED PERSONS HAVING A NEED TO KNOW — PROPRIETARY — USE PURSUANT TO COMPANY

INSTRUCTION

DR1 Presentation Template 8AY-03030-0004-TQZZA Revision 07

SERVICE TEMPLATE WITH NETWORKS STITCHING – OPTION 2

Service Template

Network Template

A

Network Template

B

Page 9: NETWORK CONNECTIVITY USE CASES AT CARRIER / SERVICE PROVIDERS Avi.vachnis@alcatel-lucent.com CloudBand June 2014

DISTINGUISH BETWEEN CREATING NEW TO USE EXISTING NETWORK

node_templates:

oam_network:

type: tosca.nodes.Network

properties:

ip_version: { get_input: oam_network_ip_version } # 4

cidr: { get_input: oam_network_cidr }

start_ip: { get_input: oam_network_start_ip }

end_ip: { get_input: oam_network_end_ip }

# the property below is mutually exclusive with the ones above

network_id : { get_input: my_oam_network_id }

network_name: { get_input: my_oam_network_name }

admin_network:

type: tosca.nodes.Network

properties:

ip_version: { get_input: admin_network_ip_version } # 4

dhcp_enabled: { get_input: admin_network_dhcp_enabled } # false

network_id : { get_input: my_admin_network_id }

network_name: { get_input: my_admin_network_name }

App modeler should be able to specify whether a certain node should be newly created or an existing one should be used by the tosca container.

Concrete use cases:

1. Create new network that is modeled in service template or use an existing one by referencing it as shown in the left side of this slide (and in use case #1 in slide 2)

2. As appear in Block Storage node type which has a property and attribute named volume_id to reference an exiting volume id.

3. How to reference an existing service that is not modeled in service template (e.g. DNS, AAA services)

Page 10: NETWORK CONNECTIVITY USE CASES AT CARRIER / SERVICE PROVIDERS Avi.vachnis@alcatel-lucent.com CloudBand June 2014

10COPYRIGHT © 2013 ALCATEL-LUCENT. ALL RIGHTS RESERVED. ALCATEL-LUCENT — CONFIDENTIAL — SOLELY FOR AUTHORIZED PERSONS HAVING A NEED TO KNOW — PROPRIETARY — USE PURSUANT TO COMPANY

INSTRUCTION

DR1 Presentation Template 8AY-03030-0004-TQZZA Revision 07

** DRAFT ** – ROUTING USE CASE

Page 11: NETWORK CONNECTIVITY USE CASES AT CARRIER / SERVICE PROVIDERS Avi.vachnis@alcatel-lucent.com CloudBand June 2014

11COPYRIGHT © 2013 ALCATEL-LUCENT. ALL RIGHTS RESERVED. ALCATEL-LUCENT — CONFIDENTIAL — SOLELY FOR AUTHORIZED PERSONS HAVING A NEED TO KNOW — PROPRIETARY — USE PURSUANT TO COMPANY

INSTRUCTION

DR1 Presentation Template 8AY-03030-0004-TQZZA Revision 07

** DRAFT ** – ROUTER USE CASEnode_templates:

frontend:

type: tosca.nodes.Compute

properties: # omitted for brevity

backend:

type: tosca.nodes.Compute

properties: # omitted for brevity

fe_admin_network:

type: tosca.nodes.Network

properties:

ip_version: { get_input: oam_network_ip_version } # 4

cidr: { get_input: oam_network_cidr }

start_ip: { get_input: oam_network_start_ip }

end_ip: { get_input: oam_network_end_ip }

be_admin_network:

type: tosca.nodes.Network

properties:

network_id: { get_input: admin_net_id }

admin_connectivity: type: tosca.nodes.L3_Connectivity    properties:                                                   id: { get_input: admin_router_id } # name: { get_input: admin_router_name } mutually exclusive with id property requirements: - network: fe_admin_network - network: be_admin_network

other_router: type: tosca.nodes.Router    properties:                                                   id: { get_input: admin_router_id }

be_admin_net_port: type: tosca.nodes.Port properties:requirements: - link: backend

# requires support of referencing a node template in deploy time (currently missing) - connectivity: { get_input: admin_network / admin_connectivity}

fe_admin_net_port: type: tosca.nodes.Port properties: requirements: - link: frontend - connectivity: { get_input: admin_network / admin_connectivity}