Download presentation
Presentation is loading. Please wait.
Published byMaria do Loreto Osório Alcântara Modified 5년 전
1
FlowVisor: A Network Virtualization Layer
OpenFlow에 등록되어 있는 보고서 이 논문을 바탕으로 2009년에 OSDI – USENIX, 2010년에 Sigcomm R. Sherwood, G. Gibb, K.-K. Yap, G. Appenzeller, M. Casado, N. McKeown, and G. Parulkar Deutsche Telekom Inc. R&D Lab, Stanford, Nicira Networks Kyoungbok Kim
2
Introduction 01 02 Network Virtualization 03 FlowVisor Architecture Isolation Mechanism 04 Evaluation 05 Conclusions 06
3
1. Introduction - Virtualization
가상화 개념에 대해서 설명 컴퓨터 가상화와 네트워크 가상화의 차이를 나타내는 그림 Computer Virtualization Network Virtualization
4
1. Introduction - FlowVisor
Network hypervisor developed by Stanford Switch virtualization in same hardware Software proxy between forwarding and control planes of network devices Use OpenFlow as hardware abstraction layer 캠퍼스 내에서 자기들의 네트워크에서 가상화 플랫폼을 설치 하여 Demostrate 한다.
5
Simple Packet Forwarding Hardware
1. Introduction Simple Packet Forwarding Hardware Network Operating System 1 Open interface to hardware Virtualization or “Slicing” Layer System 2 System 3 System 4 App Many operating systems, or Many versions Isolated “slices” 플로우 바이저라는 것이 가상화 Layer를 추가하는 구조. 동일한 하드웨어에서 여러 개의 여러 개의 논리적인 네트워크로 나눠서 각각 독립적인 형태로 동작하도록 한다.
6
2. Network Virtualization
Network infrastructure (e.g., OpenFlow switch, Open vSwitch) Southbound interface (e.g., OpenFlow protocol) Hypervisor-based virtualization (e.g., FlowVisor) Data plane SDN controller (e.g., NOX, POX, floodlight, opendaylight) Control plane Network application (e.g., load balancer, Firewall) Management plane Northbound interface 이것은 SDN 아키텍쳐인데 최근에 발표된 한 서베이 논문에 보면 Hypervisor base의 가상화 부분이 들어간 것을 볼 수 있습니다.
7
2. Five Resource Slicing dimensions
Bandwidth: Divide link bandwidth Topology: have its own view of network nodes Traffic: One set of traffic is isolated Device CPU: Computational resources must be sliced Forwarding Tables: finite number of forwarding rules per device 네트워크를 가상화 하기 위해 우리는 어떤 자원을 슬라이싱 할 필요가 있을지 알아야 한다. 5개의 주된 슬라이싱 차원이 있다. Traffic: 헤더 공간을 유연하게 바꾸어 주는 방법을 제안
8
3. FlowVisor Architecture
Define slice as a set of flows running on topology Sit between OpenFlow controllers and switches Partitions bandwidth by assigning minimum data rate Partitions flow table in each switch by keeping track of flow entries belong to each guest controller FlowVisor Architecture에 대해 얘기해보면 플로우바이저는 공통의 Flow들의 셋을 슬라이스로 정의 오픈플로우 컨트롤러와 스위치 사이에 플로우바이저가 위치하고 있으며
9
3. FlowVisor Operation Intercept OpenFlow messages from guest controllers Use user’s slicing policy Transparently rewrite messages to control only a slice of the network Messages from switches are forwarded only to right guests
10
3. Flowspace FlowVisor slices traffic using flowspaces
Well defined subspace of entire space of packet headers - 10 fields, 256 bits 오픈플로우에선 Flow entries
11
3. FlowVisor Design Goals
Transparency: both network hardware and controllers Isolation: break down if one slice can exhaust another resources Extensible Slice Definition: Slicing policy must allocate networking resources among network slices 자기 망 말고는 다른 망에 대해서는 실제로는 이루어져 있지만 마치 투명한 것처럼 보여야 한다. 자원할당을 어떻게 할지 또한 연구 이슈이다.
12
3. Slice Definition Policy
Example: 1) Bob’s experimental network Allow: tcp_port: 80 and ip=user_ip 2) Alice’s production network Deny: tcp_port: 80 and ip=user_ip - Negative rule 3) Alice’s monitoring network Real-only: all - Allowed to see traffic in all networks
13
4. Isolation Mechanism (1)
Bandwidth Isolation: use of VLAN Priority Code Point (PCP bits) in three bits tag Topology Isolation: LLDP (Link Layer Discovery Protocol) messages are sent out each switch port to do neighbor discovery Switch CPU Isolation: - New Flow Messages - Controller Requests - Slow-Path Forwarding - Internal Bookkeeping 슬라이스 간의 고립을 위해서 6가지 방법의 메커니즘을 적용할 수 있다. Switch CPU Isolation New Flow Messages: Flow entries에 match하지 않은 패킷이 도착했을 때 새로운 메시지가 컨트롤러에 보내진다. -> New message 도착속도가 threshold를 넘어가면 짧은 기간동안 문제가 되는 패킷을 드랍 Controller Requests: 초당 메시지 속도를 줄임으로써 CPU 소비가 제한된다. Slow-Path Forwarding: 플로우바이저가 게스트 컨트롤러가 슬로우 패스 포워딩 룰을 넣을 수 없도록한다. Internal Bookkeeping: 모든 네트워크장비들이 내부 카운터나 프로세스이벤트 업데이트 카운터 등을 사용하는데 위의 3가지를 충분히 조절하여 이를 위한 충분한 CPU 자원을 확보한다
14
4. Isolation Mechanism (2)
FlowSpace Isolation: Each slices must be restricted to only affecting flows in their flowspace Flow Entries Isolation: Each slice does not exceed a preset limit OpenFlow Control Isolation: FlowVisor must rewrite transaction IDs to ensure messages of OpenFlow FlowSpace Isolation: 영향을 미치는 Flow만 rewrite 하면 된다. Flow entries Isolation: 게스트 컨트롤러가 플로우 엔트리 한도를 넘었을 때 table full이라는 error messsage를 보낸다. OpenFlow Control Isolation: OpenFlow control channel은 그 자체로 가상화 되고 고립되어야 한다.
15
5. Evaluation – Performance Overhead
Virtualization Layer가 추가되면서 시스템에 오버헤드가 발생한다. 플로우바이저는 데이터 플레인에 오버헤드가 붙는 것이 아니라 컨트롤 플레인에 오버헤드가 붙는다. 두 그래프는 오버헤드에 대한 그래프인데 플로바이저를 사용할 때와 안할 때의 오픈플로우 메시지의 오버헤드를 나타내는 그래프이다. 첫번째 그림은 새로운 플로우 메시지에 대한 오버헤드를 나타내고 두번째는 포트 상태 요청 메시지에 대한 오버헤드이다. 초당 51개의 패킷을 스위치에 보내면서 새로운 플로우 메시지를 보내고 받는 시간을 libpcap을 이용하여 측정. 결과는 평균 16ms, 이를 이용하지 않았을 때 12ms이다. 아직 새로운 메시지를 처리하는 것이 미숙하므로 퓨쳐워크가 atrie를 이용하여 룩업 프로세스를 최적화하는 것 두번째 그림은 컨트롤러에서 구체적인 포트를 스위치에게 포트 상태 요청 메시지 보낼 때 추가되는 오버헤드를 측정(초당 200개 메시지를 보내서 측정 0.48ms) → CDF of virtualization overhead for OpenFlow new flow messages → CDF of virtualization overhead for port status requests
16
5. Evaluation – Bandwidth Isolation
Bandwidth isolation을 위해 Worst case를 고려하여 2가지 슬라이스를 가지고 실험 First iperf의 TCP모드에서 generate되는 slice sends TCP-friendly traffic and CBR (Constant Bit Rate) traffic at full link speed (1Gbps), QoS를 포함하는 것과 안하는 것 QoS를 포함하지 않는 다는 것은 BW 고립이 되지 않은 것인데 이경우 CBR traffic은 거의 100%가깝게 대역폭을 차지하고 TCP traffic은 1.2%정도를 차지한다. 최소한의 대역폭 보장 QoS를 포함한 BW 고립이 된 상태에서는 TCP 64.2% 와 CBR 30%이하의 대역폭을 차지한다. 왜 이렇냐면 QoS를 가진 것이 TCP congestion control 때문에 CBR 트래픽이 최소한의 대역폭을 차지하는 것으로 보고 있다. → Effect of Flow Visor bandwidth isolation on competing TCP and CBR traffic
17
5. Evaluation – Switch CPU Isolation
첫번째 실험은 OpenFlow controller maliciously sends port stats request message at increasing speed(2,4,8,…1024 per second) 고립이 없을 때에는 속도가 256보다 작을 때에만 스위치가 적당한 utilization을 가진다. 두번째 실험은 오른쪽 그림은 스위치가 New Flow message를 CPU가 다룰 수 있는 것보다 더 빨리 발생시키고 잘못 동작하는 컨트롤러는 새로운 룰을 추가하지 않는다. 고립이 있을 때와 없을 때의 초당 CPU utilization을 관찰해보니 고립이 없을 때 100%였던 것이 있을 땐 조금 줄어들었다. → FlowVisor’s message throttling isolation prevents a malicious controller from saturating switch CPU → FlowVisor’s new flow messages throttling prevents a faulty controller from saturating switch CPU
18
6. Conclusions FlowVisor is used to slice forwarding plane
There are several isolation mechanisms (e.g., bandwidth, switch CPU, Flow space isolation) FlowVisor is deployed at Standford continuously for future work
19
Thank you !
Similar presentations