09.11.2015 Views

Peter Bandzi Ahmed Maged

CloudVPN_usecase_OPNFV_Summit_amaged_pbandzi

CloudVPN_usecase_OPNFV_Summit_amaged_pbandzi

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Peter</strong> <strong>Bandzi</strong>, <strong>Ahmed</strong> <strong>Maged</strong><br />

@pbandzi @amaged<br />

Nov 2015<br />

1


• Assembling a VPN in the Cloud Service<br />

• Learning Experience<br />

2


- - - - - - - - - - -<br />

- - - - - - - - - -<br />

3


Application<br />

Home-grown<br />

Python Code<br />

Front End<br />

/User Portal<br />

Sharing VPN Meta-<br />

Data over Facebook<br />

Back End<br />

Orchestration/<br />

Dispatching


Bootstrap/Get Started (BGS)<br />

• The main goal of BGS is to assemble and test a base set of infrastructure<br />

components for OPNFV.<br />

• This project achieved that by supporting two deployers for OPNFV Arno, we<br />

used Fuel for building our infrastructure.<br />

5


Application<br />

Front End<br />

/User Portal<br />

Back End<br />

BGS/OPNFV<br />

Deployer<br />

Sharing VPN Meta-<br />

Data over Facebook<br />

Orchestration/<br />

Dispatching<br />

REST API<br />

RESTConf<br />

OpenStack<br />

Virtual Infra Manager<br />

SDN Controller<br />

OpenDayLight


Application<br />

Front End<br />

/User Portal<br />

Back End<br />

BGS/OPNFV<br />

Deployer<br />

Sharing VPN Meta-<br />

Data over Facebook<br />

Orchestration/<br />

Dispatching<br />

REST API<br />

RESTConf<br />

OpenStack<br />

Virtual Infra Manager<br />

SDN Controller<br />

OpenDayLight<br />

VPN Termination<br />

VNF<br />

Netconf/Yang


User<br />

Facebook<br />

App/<br />

Portal<br />

Open<br />

Stack<br />

OpenDay<br />

Light<br />

VNF/<br />

Router<br />

1<br />

Request VPN service<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

Peer Picking<br />

Peer Picked<br />

Post addressing and Password<br />

Spin up VNF<br />

Instruct ODL to provision VNF<br />

Report addressing and preshared key<br />

Provision IPSec<br />

9<br />

IPSec Tunnel Established<br />

8


ü Picking Peer from Facebook for rapid, painless setup *<br />

* Inspired by Cedric Dessez, https://www.ietf.org/proceedings/87/slides/slides-87-homenet-6.pdf<br />

9


User<br />

Facebook<br />

App/<br />

Portal<br />

Open<br />

Stack<br />

OpenDay<br />

Light<br />

VNF/<br />

Router<br />

1<br />

Request VPN service<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

Peer Picking<br />

Peer Picked<br />

Post addressing and Password<br />

Spin up VNF<br />

Instruct ODL to provision VNF<br />

Report addressing and preshared key<br />

Provision IPSec<br />

9<br />

IPSec Tunnel Established<br />

10


REST<br />

Calls<br />

http:///servers<br />

Python<br />

SDK<br />

client_manager.compute.servers.create(’router',<br />

image, flavor,<br />

key_name=keypair.name,<br />

nics=[{'net-id': network.id}])<br />

Nova Server<br />

RESTful<br />

API<br />

Create<br />

a VM<br />

VNF<br />

Hypervisor<br />

(KVM, etc)<br />

11


User<br />

Facebook<br />

App/<br />

Portal<br />

Open<br />

Stack<br />

OpenDay<br />

Light<br />

VNF/<br />

Router<br />

1<br />

Request VPN service<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

Peer Picking<br />

Peer Picked<br />

Post addressing and Password<br />

Spin up VNF<br />

Instruct ODL to provision VNF<br />

Report addressing and preshared key<br />

Provision IPSec<br />

9<br />

IPSec Tunnel Established<br />

12


RESTConf<br />

/restconf/data/ipsec-service:ipsec/ /<br />

<br />

JSON<br />

{<br />

“ipsec-service:node-list” :<br />

[<br />

{<br />

“node-name”: “vRouter”,<br />

“node-ip”: “X.X.X.X”<br />

}<br />

]<br />

}<br />

Appl/<br />

Portal<br />

ODL<br />

list node-subnets {<br />

description "IP and mask behind route";<br />

key "ip inv-mask";<br />

leaf ip {type inet:ipv4-address;}<br />

leaf inv-mask {type inet:ipv4-address;}<br />

}<br />

list shared-key {<br />

key shared-key;<br />

leaf shared-key Nova {type string;} Server<br />

leaf peer-address {type inet:ip-address;}<br />

}<br />

YANG Model<br />

VNF / Router<br />

13


User<br />

Facebook<br />

App/<br />

Portal<br />

Open<br />

Stack<br />

OpenDay<br />

Light<br />

VNF/<br />

Router<br />

1<br />

Request VPN service<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

Peer Picking<br />

Peer Picked<br />

Post addressing and Password<br />

Spin up VNF<br />

Instruct ODL to provision VNF<br />

Report addressing and preshared key<br />

Provision IPSec<br />

9<br />

IPSec Tunnel Established<br />

14


crypto isakmp key KEY address x.x.x.x<br />

!<br />

crypto ipsec transform-set TS esp-des esp-md5-<br />

hmac<br />

!<br />

crypto map CRYPTO 10 ipsec-isakmp<br />

set peer y.y.y.y<br />

set transform-set TS<br />

match address Spoke<br />

!<br />

interface TenGig0/0<br />

ip address x.x.x.x 255.255.255.0<br />

crypto map CRYPTO<br />

Peer 2<br />

CLI Config<br />

Peer 1<br />

15


• Assembling a VPN in the Cloud Service<br />

• Learning Experience<br />

16


“Open source propagates to fill all the nooks and crannies<br />

that people want it to fill.”<br />

Mitch Kapor<br />

Founder of Lotus, Co-Founder EFF


• In 1995, I almost lost my hair, building a Slackware server.<br />

• In 2005, I lost my hair, building/coding a Linux Jumpserver.<br />

• In 2015, We built a VPN in the Cloud server in a few days.<br />

Open Source<br />

Made it possible<br />

18


With BGS :<br />

• Install scripts for automated deployment of<br />

the test setup.<br />

• Comprehensive source-to-testeddeployment<br />

script for running the entire<br />

system start to end.<br />

Task<br />

Installing<br />

Infra(Arno/Fuel)<br />

Time<br />

1 Day


• APIs coming to networking, took networking out of its Silo.<br />

• Now Applications can easily control and interact with Networking.<br />

• Opening up the possibility to a wide range of use cases.<br />

I need<br />

REST<br />

APIs<br />

Task<br />

Write PoC Code*<br />

Time<br />

3 Days<br />

* Without Facebook App/Front End.<br />

20


Q&A<br />

Thanks<br />

21

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!