Top Banner
OpenStack Summit Tokyo OpenStack Summit Tokyo의 Keyword는… 컨테이너(Docker, Kuryr, Kubernetes) 그러나 빛나는 것이 또 있더라… SDN기술연구실 신용윤
32

Dragon flow and tricircle

Apr 13, 2017

Download

Internet

YongYoon Shin
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Dragon flow and tricircle

OpenStack Summit Tokyo

OpenStack Summit Tokyo의 Keyword는…

컨테이너(Docker, Kuryr, Kubernetes)

그러나 빛나는 것이 또 있더라…

SDN기술연구실 신용윤

Page 2: Dragon flow and tricircle

DRAGONFLOW

제발 우리와 다른 길을 가라…

OpenFlow를 활용한 L3 Flow 제어…

Page 3: Dragon flow and tricircle
Page 4: Dragon flow and tricircle

배경

• Network Node Bottleneck

– 모든 inter-subnet traffic은 Network Node를 통해야 함

– 대부분의 WE(West-East) Application traffic은 Subnet 사이에서 발생

– 가상 라우터

• Linux network namespace 사용

• 사전 구성 (필요하지 않아도 생성)

Page 5: Dragon flow and tricircle

문제점

• Single Virtual Network에서 VM간의 통신

Page 6: Dragon flow and tricircle

문제점

• Multi Virtual Network에서 VM간의 통신

Page 7: Dragon flow and tricircle

DVR (Distribute Virtual Router)

• Proactive approach

– Flow 사전 구성 (Routing/ARP Tables)

• Linux namespace

– 모든 같은 가상 네트워크에 속한 컴퓨트 노드에 복제

• 네임 스페이스 동기화

Page 8: Dragon flow and tricircle

DragonFlow

• Fully distributed virtual router for Neutron– Lightweight SDN Controller

• OVS forwarding engine의 Data plane에 OF flows(match, action) 서비스 로직 구현

– Performance/Scale 개선 및 Virtual Router 관리 단순화• 병목 현상 제거, single point failure 해결

• 현재 2가지 버전– Centralized Version (Kilo Release)

• Network Node: L3 Controller Agent

– Distributed Version (~ing)• Compute Node: Dragonflow Controller

Page 9: Dragon flow and tricircle

Centralized DragonFlow

• OpenStack Juno

Page 10: Dragon flow and tricircle

Hybrid OF Switch

• L3 Controller Agent

– 각 OVS에 구성된 VM에 대한 port 정보 확인

– VM에 대한 port가 아닌 경우 Normal L2 Switch 전송

Page 11: Dragon flow and tricircle

L3 Installed pipeline

• Virtual Router using flows

– All L2 flows offloaded to the normal path

Page 12: Dragon flow and tricircle

• Table0 (Metadata)

– action이 NORMAL인 DHCP 포트가 가상네트워크 마다 생성

– 가상네트워크에 생성되는 모든 인터페이스에 대한 Table

• Table51 (ARP)

– ARP에 대한 테이블 구성으로 각 가상네트워크의 라우터 인터페이스에 대한 MAC 반환

• Table52 (L3, DragonFlow)– NORMAL: metadata와 목적지가 같은 네트워크에 대한 내부 L2 네트워크 [match: metadata=0x1f42(net1), nw_dst=10.1.0.0/24(net1)]

– CONTROLLER: metadata와 목적지가 같은 네트워크에 대한 L3 네트워크 [match: metadata=0x1f43(net2), nw_dst=10.1.0.0/24(net1)]

Flow Rule

1.cookie=0x0, duration=3063.423s, table=0, n_packets=0, n_bytes=0, priority=1000,in_port=8 actions=NORMAL2.cookie=0x0, duration=3063.423s, table=0, n_packets=0, n_bytes=0, priority=1000,in_port=7 actions=NORMAL3.cookie=0x0, duration=3063.422s, table=51, n_packets=0, n_bytes=0, send_flow_rem

priority=100,arp,metadata=0x1f42,arp_tpa=10.1.0.1,arp_op=1 actions=set_field:2->arp_op,move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:fa:16:3e:c0:8d:8b->eth_src,set_field:fa:16:3e:c0:8d:8b->arp_sha,set_field:10.1.0.1->arp_spa,IN_PORT4.cookie=0x0, duration=3063.423s, table=51, n_packets=0, n_bytes=0, send_flow_rem

priority=100,arp,metadata=0x1f43,arp_tpa=10.2.0.1,arp_op=1 actions=set_field:2->arp_op,move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],set_field:fa:16:3e:c5:02:4d->eth_src,set_field:fa:16:3e:c5:02:4d->arp_sha,set_field:10.2.0.1->arp_spa,IN_PORT5.cookie=0x0, duration=3063.423s, table=52, n_packets=0, n_bytes=0,

priority=20,ip,metadata=0x1f43,nw_dst=10.1.0.0/24 actions=CONTROLLER:655356.cookie=0x0, duration=3063.421s, table=52, n_packets=0, n_bytes=0,

priority=30,ip,metadata=0x1f42,nw_dst=10.1.0.0/24 actions=NORMAL7.cookie=0x0, duration=3063.423s, table=52, n_packets=0, n_bytes=0,

priority=20,ip,metadata=0x1f42,nw_dst=10.2.0.0/24 actions=CONTROLLER:655358.cookie=0x0, duration=3063.423s, table=52, n_packets=0, n_bytes=0,

priority=30,ip,metadata=0x1f43,nw_dst=10.2.0.0/24 actions=NORMAL

Page 13: Dragon flow and tricircle

• DragonFlow– Neutron을 통하여 변경된 모든 구성에 대하여 Proactive Flow Rule 설정

• Table40

– Classifier에 대한 테이블 구성

Flow Rule

cookie=0x0, duration=260870.502s, table=40, n_packets=0, n_bytes=0, priority=1 actions=goto_table:52cookie=0x0, duration=260870.502s, table=40, n_packets=0, n_bytes=0,

priority=100,dl_dst=ff:ff:ff:ff:ff:ff actions=NORMALcookie=0x0, duration=260870.502s, table=40, n_packets=6, n_bytes=252, priority=1000,arp

actions=goto_table:51

cookie=0x0, duration=153.339s, table=0, n_packets=27, n_bytes=2462, priority=1000,in_port=11 actions=write_metadata:0x1f42/0xffff,goto_table:40cookie=0x0, duration=149.796s, table=0, n_packets=23, n_bytes=2182, priority=1000,in_port=12

actions=write_metadata:0x1f43/0xffff,goto_table:40

cookie=0x1008000000019, duration=5.704s, table=52, n_packets=1, n_bytes=98, idle_timeout=300, priority=100,ip,metadata=0x1f43,in_port=12,dl_src=fa:16:3e:cf:4b:ed,dl_dst=fa:16:3e:c5:02:4d,nw_src=10.2.0.3,nw_dst=10.1.0.3 actions=dec_ttl,set_field:fa:16:3e:c5:02:4d->eth_src,set_field:fa:16:3e:00:17:e6->eth_dst,output:11cookie=0x1008000040051, duration=5.708s, table=52, n_packets=1, n_bytes=98, idle_timeout=300,

priority=100,ip,metadata=0x1f42,in_port=11,dl_src=fa:16:3e:00:17:e6,dl_dst=fa:16:3e:c0:8d:8b,nw_src=10.1.0.3,nw_dst=10.2.0.3 actions=dec_ttl,set_field:fa:16:3e:c0:8d:8b->eth_src,set_field:fa:16:3e:cf:4b:ed->eth_dst,output:12

ARP Table=51

Page 14: Dragon flow and tricircle

Distributed DragonFlow

• 분산 DB 솔루션을 사용하여 컴퓨트 노드에 분포된 DragonFlow와 동기화

– Network DB Layer 구성

– 각 컴퓨팅 호스트의 br-int만 사용하여 L2, L3 OF Flow Rule

Page 15: Dragon flow and tricircle

Pluggable DB Layer

• 모든 로컬 컨트롤러에 가상 네트워크 토폴로지를 동기화 하기 위한 DB 프레임워크– 로컬 컨트롤러는 DB에 자신을 등록

– HA/Redundancy/Clustering 필요

– SLA, Performance, latency 요구

Page 16: Dragon flow and tricircle

Pluggable Database

• Network DB Layer– DragonFlow Neutron Plugin/Compute Node DragonFlow Controller/응용 프로그램

모두 사용가능

– DB 운영을 위한 DB Driver API 호출

Page 17: Dragon flow and tricircle

Selective Distribution

• 각 Compute Node의 컨트롤러간 동기화

– 관련 데이터만 동기화

• 동기화 관련 부하를 줄임

Page 18: Dragon flow and tricircle

Selective Proactive Distribution

Page 19: Dragon flow and tricircle

Roadmap

• Containers

• Distributed SNAT/DNAT

• Reactive DB

• Topology Service Injection / Service Chaining

• Smart NICs

• Hierarchical Port Binding (SDN ToR)

• Inter Cloud Connectivity (Boarder GW/L2 GW)

• Fault Detection

Page 20: Dragon flow and tricircle

TRICIRCLE

제발 우리와 다른 길을 가라…

OpenStack over OpenStack!!!

OpenStack Cascading이 새로운 이름으로…

Page 21: Dragon flow and tricircle
Page 22: Dragon flow and tricircle

OpenStack to manage OpenStacks

• Current Production Architecture

– OpenStack Cascading

Page 23: Dragon flow and tricircle

배경

• 현재의 OpenStack은 ‘Single’ 개념

• Multi-Site 기반의 OpenStack은

– 사이트간 개념이 추가되어야 함

– 일관성 있는 접근이 필요함

– 하위 사이트의 다양한 환경을 디자인 하여야 함

Page 24: Dragon flow and tricircle

needs

• Global management of cloud resources

– Images, VMs, volumes, networks

– Across multiple OpenStack clouds

• Single resource utilization dashboard

• Cross-site virtual networks (L2 & L3)

• Single identity Management

– Single cloud account

– Federated Keystone

Page 25: Dragon flow and tricircle

Tricircle

• Management Orchestration for Multiple site OpenStack

Page 26: Dragon flow and tricircle

Lunch Instance demo

Page 27: Dragon flow and tricircle

Tricircle v2.0

• Architecture

Page 28: Dragon flow and tricircle

Tricircle OpenStack Adapter

• Aggregated by Availability Zones

Page 29: Dragon flow and tricircle

Tricircle Top Service

• Top Service

Page 30: Dragon flow and tricircle

Tricircle Bottom Site Service

• Bottom Site Service

Page 31: Dragon flow and tricircle

Cross-Site Router

• 1 Site Router

– 효율적이지 못함

– Not Cross-site 모델

– 다른 Solution 필요

• Cross-site Router

– 동일한 Router 생성• IP/MAC 까지 동일

Page 32: Dragon flow and tricircle

Tricircle Cross-site L2/L3 Connectivity