SlideShare a Scribd company logo
What is OpenStack DVR
(Distribute Virtual Router)
내것인듯 내것아닌 내것같은 Neutron/DVR
Yongyoon SHIN. SDN section, ETRI
Let’s Talk
• OpenStack and Distribute Virtual Router
– OpenStack
– What is DVR
• DVR Case
– East/West Traffic
– SNAT
– Floating IP
OpenStack Naming
• OpenStack Version Naming
– Austin: Austin, Texas
– Bexar: San Antonio, Texas
– Cactus: Cactus, Texas
– Diablo: Santa Clara, CA
– Essex: Boston, Massachusetts
– Folsom: San Francisco, CA
– Grizzly: San Diego, CA
– Havana: Portland, Oregon
– Icehouse: Hong Kong
– Juno: Atlanta, Georgia
– Kilo: Paris, France
– Liberty: Vancouver, British Columbia
– M*: Tokyo, Japan (https://wiki.openstack.org/wiki/Release_Naming/M_Proposals)
– N*: Austin, Texas
– O*: Barcelona, Spain
Quantum
Neutron
Nova Network
* 한국은 Vancouver summit에서 2019년 summit 신청 (Naming 순서는 ‘W’)
.. 2019년에도 OpenStack이 지금처럼 번성할까? ..
OpenStack Release
• Main Schedule (Neutron)
OpenStack Source
• github 사용
• Neutron
– 현재까지 업데이트 중
• 2015.06.11. 현재 8일전 update
3 Main Services in Neutron
• East-West Communication
– Data Center 내부, VM 사이의 IP Traffic 처리
• Floating IP (aka DNAT: Destination NAT)
– Public Network을 통하여 직접 VM에 접근 가능할 수 있도록 VM에
Public IP를 제공
• Shard IP (aka SNAT: Source NAT)
– Data Center 내부 VM들이 외부 IP를 공용으로 사용하여 public Network
에 접속할 수 있도록 함
Main Idea of DVR
• Network Node의 병목현상 해소
– L3 Agent 기능을 모든 Compute Node에 분산
• 네트워크 노드의 단일 장애점 및 트래픽 집중문제 해결
Compute Node A
VM VM VM
VM VM VM
10.0.10.0/24
129.254.172.0/24
129.254.172.0/24
20.0.20.0/24
DVR
Public Network
(129.254.172.0/24)
Compute Node B
VM VM VM
VM VM VM
10.0.10.0/24
129.254.172.0/24
129.254.172.0/24
20.0.20.0/24
DVR
DVR vs without DVR
• Without DVR
• With DVR
Compute Node A
VM
Network Node Compute Node B
br-int
br-tun
VM
br-int
br-tun
br-int
br-tun
eth eth eth
VR
Compute Node A
VM
Compute Node B
br-int
br-tun
VM
br-int
br-tun
eth eth
VR VR
OpenStack DVR
• OpenStack major work
– Juno version release (~ing)
• 리눅스의 Name Space 사용
OpenStack DVR
• Network/Compute Node NameSpace
Network Node Compute Node
VM01
(Network A)
VM02
(Network B)
br-int
br-ex br-tun
dnsmasq dnsmasq
br-int
br-ex br-tun
dhcp NameSpacedhcp NameSpace
Router NameSpace Router NameSpace
SNAT NameSpace
patch-tun
patch-int
patch-tun
patch-int
eth0 eth0 vxlan-xxxx vxlan-yyyyvxlan-xxxx vxlan-yyyy
FIP NameSpace
qvoVM1 qvoVM2
qrouter-xxx
fip-xxx
qr-aaa qr-bbb
rfp-xxx
fpr-xxx
fg-yyy
qdhcp-kkk qdhcp-qqq
tap123abc tap456def
int-br-ex
phy-br-ex
qrouter-xxx
snat-xxx
qr-aaa qr-bbbsg-123aaa sg-456bbb
qg-789abc
External
Inter subnet routing East-West
• ML2 plugin
• l2pop mechanism driver enabled
• Openvswitch mechanism driver enavled
• ovs agent installed on all of compute nodes
• Tunneling (only use VXLAN / GRE)
– Kilo version support VLAN
Inter subnet routing East-West
OpenStack DVR_What is DVR?
Inter subnet routing East-West
• Compute Node Router
– Compute Node A
– Compute Node B
• Controller Node
- IP: 192.168.56.20
- DevStack All_in_one
• Compute Node
- IP: 192.168.56.25
- DevStack Compute
• Network Node
- IP: 192.168.56.30
- DevStack Network
Inter subnet routing East-West
• Router namespace created on both nodes
– Same interfaces, MAC, IP
Inter subnet routing East-West
• ARP Table
– Compute Node A
• vm01(100.0.0.2) / vm03(100.0.20.2)
• ARP Table: vm01/vm02/vm03
– Compute Node B
• vm02(100.0.10.2)
• ARP Table: vm01/vm02/vm03
Inter subnet routing East-West
• Flows
Compute Node A
VM
Compute Node B
br-int
br-tun
VM
br-int
br-tun
eth eth
VR VR
① ②
③
④
⑤
⑥
⑦
⑧
src MAC dst MAC src IP dest IP
Blue VM Blue Router Interface Blue VM Red VM
Inter subnet routing East-West
• Flows
– ARP Tables
Compute Node A
VM
Compute Node B
br-int
br-tun
VM
br-int
br-tun
eth eth
VR VR
①
②
③
④
⑤
⑥
⑦
⑧
src MAC dst MAC src IP dest IP
Red Router Interface Red VM Blue VM Red VM
Inter subnet routing East-West
• Flows
– Matched Red VM MAC
Compute Node A
VM
Compute Node B
br-int
br-tun
VM
br-int
br-tun
eth eth
VR VR
① ②
③
④
⑤
⑥
⑦
⑧
src MAC dst MAC src IP dest IP
Red Router Interface Red VM Blue VM Red VM
Inter subnet routing East-West
• Flows
Compute Node A
VM
Compute Node B
br-int
br-tun
VM
br-int
br-tun
eth eth
VR VR
① ②
③
④
⑤
⑥
⑦
⑧
src MAC dst MAC src IP dest IP
Compute Node A MAC Red VM Blue VM Red VM
Inter subnet routing East-West
• Flows
– Encapsulation via VXLAN/GRE tunnel
Compute Node A
VM
Compute Node B
br-int
br-tun
VM
br-int
br-tun
eth eth
VR VR
① ②
③
④
⑤ VXLAN / GRE
⑥
⑦
⑧
src MAC dst MAC src IP dest IP
Compute Node A MAC Red VM Blue VM Red VM
Inter subnet routing East-West
• Flows
– Tunnel encapsulation is stripped, tagged with a local VLAN
Compute Node A
VM
Compute Node B
br-int
br-tun
VM
br-int
br-tun
eth eth
VR VR
① ②
③
④
⑤
⑥
⑦
⑧
src MAC dst MAC src IP dest IP
Compute Node A MAC Red VM Blue VM Red VM
Inter subnet routing East-West
• Flows
– Traffic matched remote host MAC
Compute Node A
VM
Compute Node B
br-int
br-tun
VM
br-int
br-tun
eth eth
VR VR
① ②
③
④
⑤
⑥
⑦
⑧
src MAC dst MAC src IP dest IP
Compute Node A MAC Red VM Blue VM Red VM
Inter subnet routing East-West
• Flows
– Traffic matched remote host MAC, Red Network VLAN tag
– VLAN tag stripped
Compute Node A
VM
Compute Node B
br-int
br-tun
VM
br-int
br-tun
eth eth
VR VR
① ②
③
④
⑤
⑥
⑦
⑧
src MAC dst MAC src IP dest IP
Red Router Interface Red VM Blue VM Red VM
Inter subnet routing East-West
• East/West Traffic Flow summary
Compute Node B
VM03
(Network A)
br-int
br-ex br-tun
Router NameSpace
patch-tun
patch-int
eth0 vxlan-xxxx vxlan-yyyy
qvoVM3
qrouter-xxx
qr-aaa qr-bbb
Compute Node A
VM01
(Network A)
VM02
(Network B)
br-int
br-ex br-tun
Router NameSpace
patch-tun
patch-int
eth0 vxlan-xxxx vxlan-yyyy
FIP NameSpace
qvoVM1 qvoVM2
qrouter-xxx
fip-xxx
qr-aaa qr-bbb
rfp-xxx
fpr-xxx
fg-yyy
Distribute Virtual Routing - SNAT
• SNAT : Source NAT
– Floating IP를 설정하지 않은 VM이 외부 통신
– 라우터는 외부 네트워크에서 단일 IP를 할당 받음 (VM은 IP 공유)
• Still Centralized
– 현재 완전 분산 형태로 진행 중 (neutron blueprint)
• SNAT를 사용하지 않아도 되는 경우 발생 (VM이 외부망을 사용할 필요 없음)
Compute Node A
VM
Network Node
br-int
br-tun
br-int
br-tun
eth1 eth0
VR VR(SNAT)
eth1
br-ex
qr1 qr2 sg1 sg2 qg
Distribute Virtual Routing - SNAT
OpenStack DVR_What is DVR?
Distribute Virtual Routing - SNAT
• Network node
– Neutron l3_agent.ini
– Network node Interface
Distribute Virtual Routing - SNAT
• Network Node IP Rule
Distribute Virtual Routing - SNAT
• Compute Node A – IP Rule
• Compute Node B – IP Rule
모든 컴퓨트 노드의 라우팅 룰은
라우터와 연결된 모든 서브넷
에 대한 내용
dvr_snat 노드의 SNAT
네임스페이스에 대한 내용
Distribute Virtual Routing - SNAT
• Flows
Compute Node A
VM
Network Node
br-int
br-tun
br-int
br-tun
eth1 eth0
VR VR(SNAT)
① ②
③
④
⑤
⑥
⑦
src MAC dst MAC src IP dest IP
Blue VM Blue qr Interface Blue VM ex) Google IP
eth1
br-ex
qr1 qr2 sg1 sg2 qg
⑧
Distribute Virtual Routing - SNAT
• Flows
Compute Node A
VM
Network Node
br-int
br-tun
br-int
br-tun
eth1 eth0
VR VR(SNAT)
①
②
③
④
⑤
⑥
⑦
src MAC dst MAC src IP dest IP
Blue VM Blue qr Interface Blue VM ex) Google IP
eth1
br-ex
qr1 qr2 sg1 sg2 qg
⑧
Distribute Virtual Routing - SNAT
• Flows
Compute Node A
VM
Network Node
br-int
br-tun
br-int
br-tun
eth1 eth0
VR VR(SNAT)
① ②
③
④
⑤
⑥
⑦
src MAC dst MAC src IP dest IP
Blue qr Interface Blue sg Interface Blue VM ex) Google IP
eth1
br-ex
qr1 qr2 sg1 sg2 qg
⑧
Distribute Virtual Routing - SNAT
• Flows
Compute Node A
VM
Network Node
br-int
br-tun
br-int
br-tun
eth1 eth0
VR VR(SNAT)
① ②
③
④
⑤
⑥
⑦
src MAC dst MAC src IP dest IP
Compute Node A MAC Blue sg Interface Blue VM ex) Google IP
eth1
br-ex
qr1 qr2 sg1 sg2 qg
⑧
Distribute Virtual Routing - SNAT
• Flows
Compute Node A
VM
Network Node
br-int
br-tun
br-int
br-tun
eth1 eth0
VR VR(SNAT)
① ②
③
④
⑤
⑥
⑦
src MAC dst MAC src IP dest IP
Blue qr Interface Blue sg Interface Blue VM ex) Google IP
eth1
br-ex
qr1 qr2 sg1 sg2 qg
⑧
Distribute Virtual Routing - SNAT
• Flows
Compute Node A
VM
Network Node
br-int
br-tun
br-int
br-tun
eth1 eth0
VR VR(SNAT)
① ②
③
④
⑤
⑥
⑦
src MAC dst MAC src IP dest IP
qg Interface Default GW MAC qg Interface ex) Google IP
eth1
br-ex
qr1 qr2 sg1 sg2 qg
⑧
Distribute Virtual Routing - SNAT
• SNAT Traffic Flow summary
Network Node Compute Node
VM01
(Network A)
VM02
(Network B)
br-int
br-ex br-tun
dnsmasq dnsmasq
br-int
br-ex br-tun
dhcp NameSpacedhcp NameSpace
Router NameSpace Router NameSpace
SNAT NameSpace
patch-tun
patch-int
patch-tun
patch-int
eth0 eth0 vxlan-xxxx vxlan-yyyyvxlan-xxxx vxlan-yyyy
FIP NameSpace
qvoVM1 qvoVM2
qrouter-xxx
fip-xxx
qr-aaa qr-bbb
rfp-xxx
fpr-xxx
fg-yyy
qdhcp-kkk qdhcp-qqq
tap123abc tap456def
int-br-ex
phy-br-ex
qrouter-xxx
snat-xxx
qr-aaa qr-bbbsg-123aaa sg-456bbb
qg-789abc
Distribute Virtual Routing – Floating IP
• Compute Node의 FIP(Floating IP) namespace
– rfp: Router NameSpace에 생성
– fpr: FIP NameSpace에 생성
Compute Node
VM01
(Network A)
VM02
(Network B)
br-int
br-ex br-tun
Router NameSpace
patch-tun
patch-int
eth0 vxlan-xxxx vxlan-yyyy
FIP NameSpace
qvoVM1 qvoVM2
qrouter-xxx
fip-xxx
qr-aaa qr-bbb
rfp-xxx
fpr-xxx
fg-yyy
Veth pair
Compute Node A
VM
br-int
VR
qr
FIP
br-ex
eth0
rfp - 129.254.171.0/24
fpr - 129.254.171.0/24
fg
Distribute Virtual Routing – Floating IP
OpenStack DVR_What is DVR?
Distribute Virtual Routing – Floating IP
• FIP NameSpace 생성 및 External Network 확인
– Compute Node A
– Compute Node B
Distribute Virtual Routing – Floating IP
• veth pare
– Compute Node A
• Router NameSpace
– Compute Node B
• Router NameSpace
Distribute Virtual Routing – Floating IP
• Veth pair
– Compute Node A
• FIP NameSpace
• External Device: fg
– Compute Node B
• FIP NameSpace
• External Device: fg
Distribute Virtual Routing – Floating IP
• Routing Rule
– Compute Node A
– Compute Node B
Distribute Virtual Routing – Floating IP
• Floating IP Packet Tracking
– Compute Node A
– Compute Node B
Distribute Virtual Routing – Floating IP
Compute Node A
VM
br-int
VR
① qr
FIP
br-ex
eth0
rfp - 129.254.171.0/24
fpr - 129.254.171.0/24
fg
src MAC dst MAC src IP dest IP
Blue VM Blue qr Interface Blue VM fixed IP ex) Google IP
④
⑤
②
③
Distribute Virtual Routing – Floating IP
Compute Node A
VM
br-int
VR
① qr
FIP
br-ex
eth0
rfp - 129.254.171.0/24
fpr - 129.254.171.0/24
fg
src MAC dst MAC src IP dest IP
Blue VM Blue qr Interface Blue VM fixed IP ex) Google IP
④
⑤
②
③
Distribute Virtual Routing – Floating IP
Compute Node A
VM
br-int
VR
①
②
qr
FIP
br-ex
eth0
rfp - 129.254.171.0/24
fpr - 129.254.171.0/24
fg
src MAC dst MAC src IP dest IP
Blue VM Blue qr Interface Blue VM fixed IP ex) Google IP
③
④
⑤
Distribute Virtual Routing – Floating IP
Compute Node A
VM
br-int
VR
① qr
FIP
br-ex
eth0
rfp - 129.254.171.0/24
fpr - 129.254.171.0/24
fg
src MAC dst MAC src IP dest IP
rfp fpr Blue VM Floating IP ex) Google IP
④
⑤
②
③
Distribute Virtual Routing – Floating IP
Compute Node A
VM
br-int
VR
① qr
FIP
br-ex
eth0
rfp - 129.254.171.0/24
fpr - 129.254.171.0/24
fg
src MAC dst MAC src IP dest IP
fg default GW Blue VM Floating IP ex) Google IP
⑤
④
②
③
Distribute Virtual Routing - Floating IP
• Floating-IP Traffic Flow summary
Network Node Compute Node
VM01
(Network A)
VM02
(Network B)
br-int
br-ex br-tun
dnsmasq dnsmasq
br-int
br-ex br-tun
dhcp NameSpacedhcp NameSpace
Router NameSpace Router NameSpace
SNAT NameSpace
patch-tun
patch-int
patch-tun
patch-int
eth0 eth0 vxlan-xxxx vxlan-yyyyvxlan-xxxx vxlan-yyyy
FIP NameSpace
qvoVM1 qvoVM2
qrouter-xxx
fip-xxx
qr-aaa qr-bbb
rfp-xxx
fpr-xxx
fg-yyy
qdhcp-kkk qdhcp-qqq
tap123abc tap456def
int-br-ex
phy-br-ex
qrouter-xxx
snat-xxx
qr-aaa qr-bbbsg-123aaa sg-456bbb
qg-789abc
OpenStack DVR Summary
특성 Forwarding Mechanism
Local
• Source/Destination IP는 동일한 Subnet에 속함
• VM들은 동일한 노드에 배열
br-int는 관련된 MAC Address를 학습하고 로컬 트래픽을 전달
Remote
• Source/Destination IP는 동일한 Subnet에 속함
• VM들은 서로 다른 노드에 배열
Segmentation type(VXLAN/GRE)에 따라 전달
East/West • Source/Destination IP는 다른 Subnet에 속함 컴퓨트 노드의 라우터 인터페이스에 의해 전달
SNAT
(Source NAT)
• Destination IP는 컴퓨트 노드가 알고 있는 Subnet
에 속하지 않음
• VM에 Floating IP 설정이 되어 있지 않음
dvr_snat 노드 상의 SNAT 네임스페이스에 존재하는 IP 매칭에
따라 전달
FIP
(Floating IP)
• Destination IP는 컴퓨트 노드가 알고 있는 Subnet
에 속하지 않음
• VM에 Floating IP 설정
컴퓨트 노드의 FIP 네임스페이스와 연결된 컴퓨트 노드 라우터에 전
달
OpenStack에서는 앞으로…
• Juno 배포 이후 업데이트 예정
– L3 고가용성 지원
• HA 지원 / Cascading 관련 내용 Candidate
– Security Groups 개선
• VM의 증가로 인하여 iptables의 필터링 규칙 폭증 -> 패킷 필터링 성능 저하
• Kilo 배포 이후 추가 사항
– VPNaaS (Virtual Private Network as a Service) 지원
– VLAN 지원
– IPv6 지원
– 분산 DHCP 서비스
– 분산 SNAT 서비스
Yongyoon. SHIN (SDN Research Section, ETRI)
Email: uni2u@etri.re.kr
http://uni2u.meximas.com
Thank you

More Related Content

PDF
Open shift 4 infra deep dive
PPTX
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
PPTX
Meetup 23 - 02 - OVN - The future of networking in OpenStack
PDF
OpenStack networking (Neutron)
PDF
Comparison of Current Service Mesh Architectures
PPTX
Rtf v2 ingress muleSoft meetup self managed kubernetes
PDF
WSO2 API Manager 2.0 - Overview
PPTX
OVN - Basics and deep dive
Open shift 4 infra deep dive
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
Meetup 23 - 02 - OVN - The future of networking in OpenStack
OpenStack networking (Neutron)
Comparison of Current Service Mesh Architectures
Rtf v2 ingress muleSoft meetup self managed kubernetes
WSO2 API Manager 2.0 - Overview
OVN - Basics and deep dive

What's hot (20)

PPTX
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
PDF
KubeVirt (Kubernetes and Cloud Native Toronto)
PPTX
Ceph Tech Talk -- Ceph Benchmarking Tool
PPTX
OpenTelemetry For Operators
PPTX
SDN Architecture & Ecosystem
PPTX
How Zillow Unlocked Kafka to 50 Teams in 8 months | Shahar Cizer Kobrinsky, Z...
PDF
Open vSwitch 패킷 처리 구조
PDF
The Complete Guide to Service Mesh
PPTX
Kubernetes
PPTX
OpenvSwitch Deep Dive
PPTX
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
PDF
Intro to open source observability with grafana, prometheus, loki, and tempo(...
PPTX
OpenStack Quantum Intro (OS Meetup 3-26-12)
PDF
Nightmare with ceph : Recovery from ceph cluster total failure
PPTX
Adopting OpenTelemetry
PPTX
Manchester MuleSoft Meetup #6 - Runtime Fabric with Mulesoft
PPTX
Microservices With Istio Service Mesh
PDF
Cloud Native Application
PDF
Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py...
PPTX
Turning Virtual Machines Cloud-Native using KubeVirt
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
KubeVirt (Kubernetes and Cloud Native Toronto)
Ceph Tech Talk -- Ceph Benchmarking Tool
OpenTelemetry For Operators
SDN Architecture & Ecosystem
How Zillow Unlocked Kafka to 50 Teams in 8 months | Shahar Cizer Kobrinsky, Z...
Open vSwitch 패킷 처리 구조
The Complete Guide to Service Mesh
Kubernetes
OpenvSwitch Deep Dive
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
Intro to open source observability with grafana, prometheus, loki, and tempo(...
OpenStack Quantum Intro (OS Meetup 3-26-12)
Nightmare with ceph : Recovery from ceph cluster total failure
Adopting OpenTelemetry
Manchester MuleSoft Meetup #6 - Runtime Fabric with Mulesoft
Microservices With Istio Service Mesh
Cloud Native Application
Apache Airflow in the Cloud: Programmatically orchestrating workloads with Py...
Turning Virtual Machines Cloud-Native using KubeVirt
Ad

Similar to OpenStack DVR_What is DVR? (20)

PDF
NFV Usecase in OpenStack(vEPC)
PDF
OpenStack networking juno l3 h-a, dvr
PPT
[OpenStack 하반기 스터디] HA using DVR
PDF
OpenStack KOREA 정기 세미나_OpenStack meet iNaaS SDN Controller
PDF
[OpenStack 스터디] OpenStack With Contrail
PDF
오픈소스 네트워킹
PDF
OpenStack networking-sfc flow 분석
PDF
debugging openstack neutron /w openvswitch
PDF
Openstack Networking Internals - first part
PPTX
Harmonia open iris_basic_v0.1
PDF
네트워크 가상화 보안현황 및 보안연관성
PDF
Open stack 4day
PDF
1st SDN Interest Group Seminar - Session4 (121017)
PPTX
Linux network namespaces
PPTX
[오픈소스컨설팅] Linux Network Troubleshooting
PDF
Open stack pike-devstack-tutorial
PPTX
OpenStack and private cloud
PDF
Make container without_docker_6-overlay-network_1
PDF
Network Multitenancy in Xen-Based Clouds-XPUS13 Vittal
PDF
Make container without_docker_7
NFV Usecase in OpenStack(vEPC)
OpenStack networking juno l3 h-a, dvr
[OpenStack 하반기 스터디] HA using DVR
OpenStack KOREA 정기 세미나_OpenStack meet iNaaS SDN Controller
[OpenStack 스터디] OpenStack With Contrail
오픈소스 네트워킹
OpenStack networking-sfc flow 분석
debugging openstack neutron /w openvswitch
Openstack Networking Internals - first part
Harmonia open iris_basic_v0.1
네트워크 가상화 보안현황 및 보안연관성
Open stack 4day
1st SDN Interest Group Seminar - Session4 (121017)
Linux network namespaces
[오픈소스컨설팅] Linux Network Troubleshooting
Open stack pike-devstack-tutorial
OpenStack and private cloud
Make container without_docker_6-overlay-network_1
Network Multitenancy in Xen-Based Clouds-XPUS13 Vittal
Make container without_docker_7
Ad

More from Yongyoon Shin (7)

PDF
Google Cloud NEXT'17 정리
PDF
Open stack summit_barcelona_보고서
PDF
OpenStack summit austin 2016
PDF
Dragon flow and tricircle
PDF
Open stack korea_uni2u_pdf
PPTX
Openstack Testbed_ovs_virtualbox_devstack_single node
PDF
ONS2014 출장보고
Google Cloud NEXT'17 정리
Open stack summit_barcelona_보고서
OpenStack summit austin 2016
Dragon flow and tricircle
Open stack korea_uni2u_pdf
Openstack Testbed_ovs_virtualbox_devstack_single node
ONS2014 출장보고

Recently uploaded (20)

PPTX
E -tech empowerment technologies PowerPoint
PDF
💰 𝐔𝐊𝐓𝐈 𝐊𝐄𝐌𝐄𝐍𝐀𝐍𝐆𝐀𝐍 𝐊𝐈𝐏𝐄𝐑𝟒𝐃 𝐇𝐀𝐑𝐈 𝐈𝐍𝐈 𝟐𝟎𝟐𝟓 💰
PPTX
Slides PPTX World Game (s) Eco Economic Epochs.pptx
PPT
Design_with_Watersergyerge45hrbgre4top (1).ppt
PDF
RPKI Status Update, presented by Makito Lay at IDNOG 10
PDF
Unit-1 introduction to cyber security discuss about how to secure a system
PDF
How to Ensure Data Integrity During Shopify Migration_ Best Practices for Sec...
PDF
The Internet -By the Numbers, Sri Lanka Edition
PDF
The New Creative Director: How AI Tools for Social Media Content Creation Are...
PPTX
522797556-Unit-2-Temperature-measurement-1-1.pptx
PPTX
introduction about ICD -10 & ICD-11 ppt.pptx
PPTX
Introuction about WHO-FIC in ICD-10.pptx
PPTX
INTERNET------BASICS-------UPDATED PPT PRESENTATION
PDF
Introduction to the IoT system, how the IoT system works
PPTX
Funds Management Learning Material for Beg
PPTX
presentation_pfe-universite-molay-seltan.pptx
PDF
Testing WebRTC applications at scale.pdf
PPTX
Digital Literacy And Online Safety on internet
PPTX
Power Point - Lesson 3_2.pptx grad school presentation
PPTX
Introduction about ICD -10 and ICD11 on 5.8.25.pptx
E -tech empowerment technologies PowerPoint
💰 𝐔𝐊𝐓𝐈 𝐊𝐄𝐌𝐄𝐍𝐀𝐍𝐆𝐀𝐍 𝐊𝐈𝐏𝐄𝐑𝟒𝐃 𝐇𝐀𝐑𝐈 𝐈𝐍𝐈 𝟐𝟎𝟐𝟓 💰
Slides PPTX World Game (s) Eco Economic Epochs.pptx
Design_with_Watersergyerge45hrbgre4top (1).ppt
RPKI Status Update, presented by Makito Lay at IDNOG 10
Unit-1 introduction to cyber security discuss about how to secure a system
How to Ensure Data Integrity During Shopify Migration_ Best Practices for Sec...
The Internet -By the Numbers, Sri Lanka Edition
The New Creative Director: How AI Tools for Social Media Content Creation Are...
522797556-Unit-2-Temperature-measurement-1-1.pptx
introduction about ICD -10 & ICD-11 ppt.pptx
Introuction about WHO-FIC in ICD-10.pptx
INTERNET------BASICS-------UPDATED PPT PRESENTATION
Introduction to the IoT system, how the IoT system works
Funds Management Learning Material for Beg
presentation_pfe-universite-molay-seltan.pptx
Testing WebRTC applications at scale.pdf
Digital Literacy And Online Safety on internet
Power Point - Lesson 3_2.pptx grad school presentation
Introduction about ICD -10 and ICD11 on 5.8.25.pptx

OpenStack DVR_What is DVR?

  • 1. What is OpenStack DVR (Distribute Virtual Router) 내것인듯 내것아닌 내것같은 Neutron/DVR Yongyoon SHIN. SDN section, ETRI
  • 2. Let’s Talk • OpenStack and Distribute Virtual Router – OpenStack – What is DVR • DVR Case – East/West Traffic – SNAT – Floating IP
  • 3. OpenStack Naming • OpenStack Version Naming – Austin: Austin, Texas – Bexar: San Antonio, Texas – Cactus: Cactus, Texas – Diablo: Santa Clara, CA – Essex: Boston, Massachusetts – Folsom: San Francisco, CA – Grizzly: San Diego, CA – Havana: Portland, Oregon – Icehouse: Hong Kong – Juno: Atlanta, Georgia – Kilo: Paris, France – Liberty: Vancouver, British Columbia – M*: Tokyo, Japan (https://wiki.openstack.org/wiki/Release_Naming/M_Proposals) – N*: Austin, Texas – O*: Barcelona, Spain Quantum Neutron Nova Network * 한국은 Vancouver summit에서 2019년 summit 신청 (Naming 순서는 ‘W’) .. 2019년에도 OpenStack이 지금처럼 번성할까? ..
  • 4. OpenStack Release • Main Schedule (Neutron)
  • 5. OpenStack Source • github 사용 • Neutron – 현재까지 업데이트 중 • 2015.06.11. 현재 8일전 update
  • 6. 3 Main Services in Neutron • East-West Communication – Data Center 내부, VM 사이의 IP Traffic 처리 • Floating IP (aka DNAT: Destination NAT) – Public Network을 통하여 직접 VM에 접근 가능할 수 있도록 VM에 Public IP를 제공 • Shard IP (aka SNAT: Source NAT) – Data Center 내부 VM들이 외부 IP를 공용으로 사용하여 public Network 에 접속할 수 있도록 함
  • 7. Main Idea of DVR • Network Node의 병목현상 해소 – L3 Agent 기능을 모든 Compute Node에 분산 • 네트워크 노드의 단일 장애점 및 트래픽 집중문제 해결 Compute Node A VM VM VM VM VM VM 10.0.10.0/24 129.254.172.0/24 129.254.172.0/24 20.0.20.0/24 DVR Public Network (129.254.172.0/24) Compute Node B VM VM VM VM VM VM 10.0.10.0/24 129.254.172.0/24 129.254.172.0/24 20.0.20.0/24 DVR
  • 8. DVR vs without DVR • Without DVR • With DVR Compute Node A VM Network Node Compute Node B br-int br-tun VM br-int br-tun br-int br-tun eth eth eth VR Compute Node A VM Compute Node B br-int br-tun VM br-int br-tun eth eth VR VR
  • 9. OpenStack DVR • OpenStack major work – Juno version release (~ing) • 리눅스의 Name Space 사용
  • 10. OpenStack DVR • Network/Compute Node NameSpace Network Node Compute Node VM01 (Network A) VM02 (Network B) br-int br-ex br-tun dnsmasq dnsmasq br-int br-ex br-tun dhcp NameSpacedhcp NameSpace Router NameSpace Router NameSpace SNAT NameSpace patch-tun patch-int patch-tun patch-int eth0 eth0 vxlan-xxxx vxlan-yyyyvxlan-xxxx vxlan-yyyy FIP NameSpace qvoVM1 qvoVM2 qrouter-xxx fip-xxx qr-aaa qr-bbb rfp-xxx fpr-xxx fg-yyy qdhcp-kkk qdhcp-qqq tap123abc tap456def int-br-ex phy-br-ex qrouter-xxx snat-xxx qr-aaa qr-bbbsg-123aaa sg-456bbb qg-789abc External
  • 11. Inter subnet routing East-West • ML2 plugin • l2pop mechanism driver enabled • Openvswitch mechanism driver enavled • ovs agent installed on all of compute nodes • Tunneling (only use VXLAN / GRE) – Kilo version support VLAN
  • 12. Inter subnet routing East-West
  • 14. Inter subnet routing East-West • Compute Node Router – Compute Node A – Compute Node B • Controller Node - IP: 192.168.56.20 - DevStack All_in_one • Compute Node - IP: 192.168.56.25 - DevStack Compute • Network Node - IP: 192.168.56.30 - DevStack Network
  • 15. Inter subnet routing East-West • Router namespace created on both nodes – Same interfaces, MAC, IP
  • 16. Inter subnet routing East-West • ARP Table – Compute Node A • vm01(100.0.0.2) / vm03(100.0.20.2) • ARP Table: vm01/vm02/vm03 – Compute Node B • vm02(100.0.10.2) • ARP Table: vm01/vm02/vm03
  • 17. Inter subnet routing East-West • Flows Compute Node A VM Compute Node B br-int br-tun VM br-int br-tun eth eth VR VR ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ src MAC dst MAC src IP dest IP Blue VM Blue Router Interface Blue VM Red VM
  • 18. Inter subnet routing East-West • Flows – ARP Tables Compute Node A VM Compute Node B br-int br-tun VM br-int br-tun eth eth VR VR ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ src MAC dst MAC src IP dest IP Red Router Interface Red VM Blue VM Red VM
  • 19. Inter subnet routing East-West • Flows – Matched Red VM MAC Compute Node A VM Compute Node B br-int br-tun VM br-int br-tun eth eth VR VR ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ src MAC dst MAC src IP dest IP Red Router Interface Red VM Blue VM Red VM
  • 20. Inter subnet routing East-West • Flows Compute Node A VM Compute Node B br-int br-tun VM br-int br-tun eth eth VR VR ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ src MAC dst MAC src IP dest IP Compute Node A MAC Red VM Blue VM Red VM
  • 21. Inter subnet routing East-West • Flows – Encapsulation via VXLAN/GRE tunnel Compute Node A VM Compute Node B br-int br-tun VM br-int br-tun eth eth VR VR ① ② ③ ④ ⑤ VXLAN / GRE ⑥ ⑦ ⑧ src MAC dst MAC src IP dest IP Compute Node A MAC Red VM Blue VM Red VM
  • 22. Inter subnet routing East-West • Flows – Tunnel encapsulation is stripped, tagged with a local VLAN Compute Node A VM Compute Node B br-int br-tun VM br-int br-tun eth eth VR VR ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ src MAC dst MAC src IP dest IP Compute Node A MAC Red VM Blue VM Red VM
  • 23. Inter subnet routing East-West • Flows – Traffic matched remote host MAC Compute Node A VM Compute Node B br-int br-tun VM br-int br-tun eth eth VR VR ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ src MAC dst MAC src IP dest IP Compute Node A MAC Red VM Blue VM Red VM
  • 24. Inter subnet routing East-West • Flows – Traffic matched remote host MAC, Red Network VLAN tag – VLAN tag stripped Compute Node A VM Compute Node B br-int br-tun VM br-int br-tun eth eth VR VR ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ src MAC dst MAC src IP dest IP Red Router Interface Red VM Blue VM Red VM
  • 25. Inter subnet routing East-West • East/West Traffic Flow summary Compute Node B VM03 (Network A) br-int br-ex br-tun Router NameSpace patch-tun patch-int eth0 vxlan-xxxx vxlan-yyyy qvoVM3 qrouter-xxx qr-aaa qr-bbb Compute Node A VM01 (Network A) VM02 (Network B) br-int br-ex br-tun Router NameSpace patch-tun patch-int eth0 vxlan-xxxx vxlan-yyyy FIP NameSpace qvoVM1 qvoVM2 qrouter-xxx fip-xxx qr-aaa qr-bbb rfp-xxx fpr-xxx fg-yyy
  • 26. Distribute Virtual Routing - SNAT • SNAT : Source NAT – Floating IP를 설정하지 않은 VM이 외부 통신 – 라우터는 외부 네트워크에서 단일 IP를 할당 받음 (VM은 IP 공유) • Still Centralized – 현재 완전 분산 형태로 진행 중 (neutron blueprint) • SNAT를 사용하지 않아도 되는 경우 발생 (VM이 외부망을 사용할 필요 없음) Compute Node A VM Network Node br-int br-tun br-int br-tun eth1 eth0 VR VR(SNAT) eth1 br-ex qr1 qr2 sg1 sg2 qg
  • 29. Distribute Virtual Routing - SNAT • Network node – Neutron l3_agent.ini – Network node Interface
  • 30. Distribute Virtual Routing - SNAT • Network Node IP Rule
  • 31. Distribute Virtual Routing - SNAT • Compute Node A – IP Rule • Compute Node B – IP Rule 모든 컴퓨트 노드의 라우팅 룰은 라우터와 연결된 모든 서브넷 에 대한 내용 dvr_snat 노드의 SNAT 네임스페이스에 대한 내용
  • 32. Distribute Virtual Routing - SNAT • Flows Compute Node A VM Network Node br-int br-tun br-int br-tun eth1 eth0 VR VR(SNAT) ① ② ③ ④ ⑤ ⑥ ⑦ src MAC dst MAC src IP dest IP Blue VM Blue qr Interface Blue VM ex) Google IP eth1 br-ex qr1 qr2 sg1 sg2 qg ⑧
  • 33. Distribute Virtual Routing - SNAT • Flows Compute Node A VM Network Node br-int br-tun br-int br-tun eth1 eth0 VR VR(SNAT) ① ② ③ ④ ⑤ ⑥ ⑦ src MAC dst MAC src IP dest IP Blue VM Blue qr Interface Blue VM ex) Google IP eth1 br-ex qr1 qr2 sg1 sg2 qg ⑧
  • 34. Distribute Virtual Routing - SNAT • Flows Compute Node A VM Network Node br-int br-tun br-int br-tun eth1 eth0 VR VR(SNAT) ① ② ③ ④ ⑤ ⑥ ⑦ src MAC dst MAC src IP dest IP Blue qr Interface Blue sg Interface Blue VM ex) Google IP eth1 br-ex qr1 qr2 sg1 sg2 qg ⑧
  • 35. Distribute Virtual Routing - SNAT • Flows Compute Node A VM Network Node br-int br-tun br-int br-tun eth1 eth0 VR VR(SNAT) ① ② ③ ④ ⑤ ⑥ ⑦ src MAC dst MAC src IP dest IP Compute Node A MAC Blue sg Interface Blue VM ex) Google IP eth1 br-ex qr1 qr2 sg1 sg2 qg ⑧
  • 36. Distribute Virtual Routing - SNAT • Flows Compute Node A VM Network Node br-int br-tun br-int br-tun eth1 eth0 VR VR(SNAT) ① ② ③ ④ ⑤ ⑥ ⑦ src MAC dst MAC src IP dest IP Blue qr Interface Blue sg Interface Blue VM ex) Google IP eth1 br-ex qr1 qr2 sg1 sg2 qg ⑧
  • 37. Distribute Virtual Routing - SNAT • Flows Compute Node A VM Network Node br-int br-tun br-int br-tun eth1 eth0 VR VR(SNAT) ① ② ③ ④ ⑤ ⑥ ⑦ src MAC dst MAC src IP dest IP qg Interface Default GW MAC qg Interface ex) Google IP eth1 br-ex qr1 qr2 sg1 sg2 qg ⑧
  • 38. Distribute Virtual Routing - SNAT • SNAT Traffic Flow summary Network Node Compute Node VM01 (Network A) VM02 (Network B) br-int br-ex br-tun dnsmasq dnsmasq br-int br-ex br-tun dhcp NameSpacedhcp NameSpace Router NameSpace Router NameSpace SNAT NameSpace patch-tun patch-int patch-tun patch-int eth0 eth0 vxlan-xxxx vxlan-yyyyvxlan-xxxx vxlan-yyyy FIP NameSpace qvoVM1 qvoVM2 qrouter-xxx fip-xxx qr-aaa qr-bbb rfp-xxx fpr-xxx fg-yyy qdhcp-kkk qdhcp-qqq tap123abc tap456def int-br-ex phy-br-ex qrouter-xxx snat-xxx qr-aaa qr-bbbsg-123aaa sg-456bbb qg-789abc
  • 39. Distribute Virtual Routing – Floating IP • Compute Node의 FIP(Floating IP) namespace – rfp: Router NameSpace에 생성 – fpr: FIP NameSpace에 생성 Compute Node VM01 (Network A) VM02 (Network B) br-int br-ex br-tun Router NameSpace patch-tun patch-int eth0 vxlan-xxxx vxlan-yyyy FIP NameSpace qvoVM1 qvoVM2 qrouter-xxx fip-xxx qr-aaa qr-bbb rfp-xxx fpr-xxx fg-yyy Veth pair Compute Node A VM br-int VR qr FIP br-ex eth0 rfp - 129.254.171.0/24 fpr - 129.254.171.0/24 fg
  • 40. Distribute Virtual Routing – Floating IP
  • 42. Distribute Virtual Routing – Floating IP • FIP NameSpace 생성 및 External Network 확인 – Compute Node A – Compute Node B
  • 43. Distribute Virtual Routing – Floating IP • veth pare – Compute Node A • Router NameSpace – Compute Node B • Router NameSpace
  • 44. Distribute Virtual Routing – Floating IP • Veth pair – Compute Node A • FIP NameSpace • External Device: fg – Compute Node B • FIP NameSpace • External Device: fg
  • 45. Distribute Virtual Routing – Floating IP • Routing Rule – Compute Node A – Compute Node B
  • 46. Distribute Virtual Routing – Floating IP • Floating IP Packet Tracking – Compute Node A – Compute Node B
  • 47. Distribute Virtual Routing – Floating IP Compute Node A VM br-int VR ① qr FIP br-ex eth0 rfp - 129.254.171.0/24 fpr - 129.254.171.0/24 fg src MAC dst MAC src IP dest IP Blue VM Blue qr Interface Blue VM fixed IP ex) Google IP ④ ⑤ ② ③
  • 48. Distribute Virtual Routing – Floating IP Compute Node A VM br-int VR ① qr FIP br-ex eth0 rfp - 129.254.171.0/24 fpr - 129.254.171.0/24 fg src MAC dst MAC src IP dest IP Blue VM Blue qr Interface Blue VM fixed IP ex) Google IP ④ ⑤ ② ③
  • 49. Distribute Virtual Routing – Floating IP Compute Node A VM br-int VR ① ② qr FIP br-ex eth0 rfp - 129.254.171.0/24 fpr - 129.254.171.0/24 fg src MAC dst MAC src IP dest IP Blue VM Blue qr Interface Blue VM fixed IP ex) Google IP ③ ④ ⑤
  • 50. Distribute Virtual Routing – Floating IP Compute Node A VM br-int VR ① qr FIP br-ex eth0 rfp - 129.254.171.0/24 fpr - 129.254.171.0/24 fg src MAC dst MAC src IP dest IP rfp fpr Blue VM Floating IP ex) Google IP ④ ⑤ ② ③
  • 51. Distribute Virtual Routing – Floating IP Compute Node A VM br-int VR ① qr FIP br-ex eth0 rfp - 129.254.171.0/24 fpr - 129.254.171.0/24 fg src MAC dst MAC src IP dest IP fg default GW Blue VM Floating IP ex) Google IP ⑤ ④ ② ③
  • 52. Distribute Virtual Routing - Floating IP • Floating-IP Traffic Flow summary Network Node Compute Node VM01 (Network A) VM02 (Network B) br-int br-ex br-tun dnsmasq dnsmasq br-int br-ex br-tun dhcp NameSpacedhcp NameSpace Router NameSpace Router NameSpace SNAT NameSpace patch-tun patch-int patch-tun patch-int eth0 eth0 vxlan-xxxx vxlan-yyyyvxlan-xxxx vxlan-yyyy FIP NameSpace qvoVM1 qvoVM2 qrouter-xxx fip-xxx qr-aaa qr-bbb rfp-xxx fpr-xxx fg-yyy qdhcp-kkk qdhcp-qqq tap123abc tap456def int-br-ex phy-br-ex qrouter-xxx snat-xxx qr-aaa qr-bbbsg-123aaa sg-456bbb qg-789abc
  • 53. OpenStack DVR Summary 특성 Forwarding Mechanism Local • Source/Destination IP는 동일한 Subnet에 속함 • VM들은 동일한 노드에 배열 br-int는 관련된 MAC Address를 학습하고 로컬 트래픽을 전달 Remote • Source/Destination IP는 동일한 Subnet에 속함 • VM들은 서로 다른 노드에 배열 Segmentation type(VXLAN/GRE)에 따라 전달 East/West • Source/Destination IP는 다른 Subnet에 속함 컴퓨트 노드의 라우터 인터페이스에 의해 전달 SNAT (Source NAT) • Destination IP는 컴퓨트 노드가 알고 있는 Subnet 에 속하지 않음 • VM에 Floating IP 설정이 되어 있지 않음 dvr_snat 노드 상의 SNAT 네임스페이스에 존재하는 IP 매칭에 따라 전달 FIP (Floating IP) • Destination IP는 컴퓨트 노드가 알고 있는 Subnet 에 속하지 않음 • VM에 Floating IP 설정 컴퓨트 노드의 FIP 네임스페이스와 연결된 컴퓨트 노드 라우터에 전 달
  • 54. OpenStack에서는 앞으로… • Juno 배포 이후 업데이트 예정 – L3 고가용성 지원 • HA 지원 / Cascading 관련 내용 Candidate – Security Groups 개선 • VM의 증가로 인하여 iptables의 필터링 규칙 폭증 -> 패킷 필터링 성능 저하 • Kilo 배포 이후 추가 사항 – VPNaaS (Virtual Private Network as a Service) 지원 – VLAN 지원 – IPv6 지원 – 분산 DHCP 서비스 – 분산 SNAT 서비스
  • 55. Yongyoon. SHIN (SDN Research Section, ETRI) Email: uni2u@etri.re.kr http://uni2u.meximas.com Thank you