Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
SB
Uploaded by
Seung-Hoon Baek
PDF, PPTX
12,555 views
Open vSwitch 패킷 처리 구조
OVS(Open vSwitch) 패킷 처리 구조 분석 자료입니다.
Technology
◦
Read more
22
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 21
2
/ 21
3
/ 21
4
/ 21
Most read
5
/ 21
6
/ 21
7
/ 21
8
/ 21
Most read
9
/ 21
Most read
10
/ 21
11
/ 21
12
/ 21
13
/ 21
14
/ 21
15
/ 21
16
/ 21
17
/ 21
18
/ 21
19
/ 21
20
/ 21
21
/ 21
More Related Content
PPTX
OpenvSwitch Deep Dive
by
rajdeep
PPTX
OVN - Basics and deep dive
by
Trinath Somanchi
PPTX
The Basic Introduction of Open vSwitch
by
Te-Yen Liu
PDF
Open vSwitch Introduction
by
HungWei Chiu
PPTX
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
by
vivekkonnect
PDF
Large scale overlay networks with ovn: problems and solutions
by
Han Zhou
PPTX
Meetup 23 - 02 - OVN - The future of networking in OpenStack
by
Vietnam Open Infrastructure User Group
PDF
OpenStack Networking
by
Ilya Shakhat
OpenvSwitch Deep Dive
by
rajdeep
OVN - Basics and deep dive
by
Trinath Somanchi
The Basic Introduction of Open vSwitch
by
Te-Yen Liu
Open vSwitch Introduction
by
HungWei Chiu
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
by
vivekkonnect
Large scale overlay networks with ovn: problems and solutions
by
Han Zhou
Meetup 23 - 02 - OVN - The future of networking in OpenStack
by
Vietnam Open Infrastructure User Group
OpenStack Networking
by
Ilya Shakhat
What's hot
PDF
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
by
OpenStack Korea Community
PDF
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
by
Ian Choi
PDF
오픈스택 멀티노드 설치 후기
by
영우 김
PDF
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
by
OpenStack Korea Community
PDF
eBPF - Observability In Deep
by
Mydbops
PDF
[2018] 오픈스택 5년 운영의 경험
by
NHN FORWARD
PDF
Deploying IPv6 on OpenStack
by
Vietnam Open Infrastructure User Group
PDF
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
by
Ji-Woong Choi
PDF
High availability virtualization with proxmox
by
Oriol Izquierdo Vibalda
PPTX
Strategies for migrating workloads from VMware to OpenStack
by
Alessandro Pilotti
PDF
Linux Networking Explained
by
Thomas Graf
PPTX
Reverse proxy & web cache with NGINX, HAProxy and Varnish
by
El Mahdi Benzekri
PDF
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
by
OpenStack Korea Community
PDF
OpenStack Architecture
by
Mirantis
PPTX
Ovs dpdk hwoffload way to full offload
by
Kevin Traynor
PDF
High-Performance Networking Using eBPF, XDP, and io_uring
by
ScyllaDB
PPTX
Vxlan deep dive session rev0.5 final
by
KwonSun Bae
PDF
20150511 jun lee_openstack neutron 분석 (최종)
by
rootfs32
PPSX
FD.io Vector Packet Processing (VPP)
by
Kirill Tsym
PDF
OpenStack DevStack Install - 2부 (Multi-nodes)
by
Ian Choi
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
by
OpenStack Korea Community
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
by
Ian Choi
오픈스택 멀티노드 설치 후기
by
영우 김
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
by
OpenStack Korea Community
eBPF - Observability In Deep
by
Mydbops
[2018] 오픈스택 5년 운영의 경험
by
NHN FORWARD
Deploying IPv6 on OpenStack
by
Vietnam Open Infrastructure User Group
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
by
Ji-Woong Choi
High availability virtualization with proxmox
by
Oriol Izquierdo Vibalda
Strategies for migrating workloads from VMware to OpenStack
by
Alessandro Pilotti
Linux Networking Explained
by
Thomas Graf
Reverse proxy & web cache with NGINX, HAProxy and Varnish
by
El Mahdi Benzekri
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
by
OpenStack Korea Community
OpenStack Architecture
by
Mirantis
Ovs dpdk hwoffload way to full offload
by
Kevin Traynor
High-Performance Networking Using eBPF, XDP, and io_uring
by
ScyllaDB
Vxlan deep dive session rev0.5 final
by
KwonSun Bae
20150511 jun lee_openstack neutron 분석 (최종)
by
rootfs32
FD.io Vector Packet Processing (VPP)
by
Kirill Tsym
OpenStack DevStack Install - 2부 (Multi-nodes)
by
Ian Choi
Viewers also liked
PDF
OpenDaylight 소개
by
Seung-Hoon Baek
PPSX
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
by
정명훈 Jerry Jeong
PDF
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
by
Seung-Hoon Baek
PPTX
클라우드 환경을 위한 네트워크 가상화와 NSX(기초편)
by
Laehyoung Kim
PDF
NFV Architectural Framework
by
Seung-Hoon Baek
PDF
NFV Management and Orchestration 분석
by
rootfs32
OpenDaylight 소개
by
Seung-Hoon Baek
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
by
정명훈 Jerry Jeong
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
by
Seung-Hoon Baek
클라우드 환경을 위한 네트워크 가상화와 NSX(기초편)
by
Laehyoung Kim
NFV Architectural Framework
by
Seung-Hoon Baek
NFV Management and Orchestration 분석
by
rootfs32
Similar to Open vSwitch 패킷 처리 구조
PDF
Open vSwitch의 Vendor Extension 구현
by
Seung-Hoon Baek
PDF
Opendaylight beryllium
by
Cheolmin Lee
PDF
4th SDN Interest Group Seminar-Session 2-1(130313)
by
NAIM Networks, Inc.
PDF
OpenFlow 1.5.1
by
jungbh
PDF
1st SDN Interest Group Seminar - Session1 (121017)
by
NAIM Networks, Inc.
PDF
초보자를 위한 네트워크/VLAN 기초
by
Open Source Consulting
PDF
5th SDN Interest Group Seminar-Session2 (130605)
by
NAIM Networks, Inc.
PDF
2nd SDN Interest Group Seminar-Session3 (121218)
by
NAIM Networks, Inc.
PDF
3rd SDN Interest Group Seminar-Session 3 (130123)
by
NAIM Networks, Inc.
PDF
[242]open stack neutron dataplane 구현
by
NAVER D2
PDF
Brocade Vyatta Controller Overview
by
Seung-Hoon Baek
PDF
1st SDN Interest Group Seminar - Session2 (121017)
by
NAIM Networks, Inc.
PDF
ONF Atrium 분석
by
jungbh
PDF
Dragon flow and tricircle
by
Yongyoon Shin
PDF
Netty 세미나
by
Jang Hoon
PPTX
OpenStack Networking
by
OpenStack Korea Community
PDF
[OpenInfra Days Korea 2018] (Track 2) Cloud 환경에서의 보안과 네트워크 성능 보안 (xFW), DPDK OVS
by
OpenStack Korea Community
PDF
150416 OpenStack Networking with Neutron Jieun, Kim
by
jieun kim
PDF
OCP Switch Overview
by
Seung-Hoon Baek
PDF
NFV VNF Architecture
by
jungbh
Open vSwitch의 Vendor Extension 구현
by
Seung-Hoon Baek
Opendaylight beryllium
by
Cheolmin Lee
4th SDN Interest Group Seminar-Session 2-1(130313)
by
NAIM Networks, Inc.
OpenFlow 1.5.1
by
jungbh
1st SDN Interest Group Seminar - Session1 (121017)
by
NAIM Networks, Inc.
초보자를 위한 네트워크/VLAN 기초
by
Open Source Consulting
5th SDN Interest Group Seminar-Session2 (130605)
by
NAIM Networks, Inc.
2nd SDN Interest Group Seminar-Session3 (121218)
by
NAIM Networks, Inc.
3rd SDN Interest Group Seminar-Session 3 (130123)
by
NAIM Networks, Inc.
[242]open stack neutron dataplane 구현
by
NAVER D2
Brocade Vyatta Controller Overview
by
Seung-Hoon Baek
1st SDN Interest Group Seminar - Session2 (121017)
by
NAIM Networks, Inc.
ONF Atrium 분석
by
jungbh
Dragon flow and tricircle
by
Yongyoon Shin
Netty 세미나
by
Jang Hoon
OpenStack Networking
by
OpenStack Korea Community
[OpenInfra Days Korea 2018] (Track 2) Cloud 환경에서의 보안과 네트워크 성능 보안 (xFW), DPDK OVS
by
OpenStack Korea Community
150416 OpenStack Networking with Neutron Jieun, Kim
by
jieun kim
OCP Switch Overview
by
Seung-Hoon Baek
NFV VNF Architecture
by
jungbh
Open vSwitch 패킷 처리 구조
1.
Open vSwitch 패킷
처리 구조 2015.03.20 ㈜파이오링크 SDN개발실 백승훈 (sh.baek@piolink.com)
2.
© PIOLINK, Inc.
SDN No.1 목차 Open vSwitch Overview Architecture Diagram -Architecture Diagram -Interface Diagram Packet Processing -Slow Path & Fast Path -Unknown Packet Processing -Flow Rule Update References
3.
© PIOLINK, Inc.
SDN No.1 Open vSwitch Overview OVS(Open vSwitch) -리눅스 기반의 가상 소프트웨어 스위치 -Open source Apache 2 License -네트워크를 추상화하여 동적으로 자원을 제어할 수 있음 -OpenFlow를 지원하여 SDN Switch로 사용 가능 -OVSDB 프로토콜 지원 •OVS의 설정 값을 저장한 DB를 관리하기 위한 프로토콜 -터널링 프로토콜 지원 (GRE, VXLAN, IPsec 등) -모니터링 기능 지원 (NetFlow, sFlow, IPFIX, SPAN, RSPAN 등) -분산 가상 스위치 기능 제공 •다른 물리 서버에 위치한 가상 서버(VM)를 서로 연결 -최신 버전 : 2.3.1 (2014/12/3) Network VMVM … Hypervisor Hypervisor VMVM … ETH ETH Hypervisor VMVM … ETH Physical Server Physical Server Physical Server OVS OVS
4.
© PIOLINK, Inc.
SDN No.1 Open vSwitch Overview OVS 내부 구조 ovs-vswitchd(vswitchd) openvswitch(datapath) Network ovsdb-server ovsdb ovs-dpctl ovs-appctl ovs-vsctl ovsdb-client ovsdb-tool ovs-ofctl Kernel space User space Remote Network Device OpenFlow를 이용한 OVS 관리 툴
5.
© PIOLINK, Inc.
SDN No.1 Open vSwitch Overview OVS 데몬 관리 툴 ovs-vswitchd(vswitchd) openvswitch(datapath) Network ovsdb-server ovsdb ovs-dpctl ovs-appctl ovs-vsctl ovsdb-client ovsdb-tool ovs-ofctl Kernel space User space Remote Network Device datapath 관리 툴 OVS 데몬 vswitchd 제어를 위한 경량화된 툴 OVS 커널 모듈 ovsdb-server를 이용한 vswitchd 관리 툴
6.
© PIOLINK, Inc.
SDN No.1 Open vSwitch Overview OVS DB 관리 툴 ovs-vswitchd(vswitchd) openvswitch(datapath) Network ovsdb-server ovsdb ovs-dpctl ovs-appctl ovs-vsctl ovsdb-client ovsdb-tool ovs-ofctl Kernel space User space Remote Network Device odvdb-server에 대한 CLI 제공 ovsdb 관리를 위한 CLI 제공 ovsdb를 관리하기 위한 RPC 인터페이스를 제공
7.
© PIOLINK, Inc.
SDN No.1 Architecture Diagram Controller vswitchd (user space) datapath (kernel space) Network Open vSwitch Controller로부터 flow rule을 받아 flow table을 업데이트하고 datapath에게 기존 flow rule을 삭제하도록 명령함 datapath가 packet 처리를 위해 rule을 요청하면 flow rule을 제공함 Network 장비와 packet을 교환함 Packet은 갖고 있는 flow rule에 따라 처리됨 입력된 packet과 매치(match)되는 flow rule을 갖고 있지 않은 경우 upcall 과정을 통해 flow rule을 가져옴 (Upcall : datapath에서 vswitchd에게 요청하는 작업)
8.
© PIOLINK, Inc.
SDN No.1 Interface Diagram Controller vswitchd (user space) datapath (kernel space) Network Open vSwitch Netlink를 이용해 정보를 교환함 (Netlink : Socket을 이용한 IPC) Network device를 지원하는 커널 API를 사용함 OVS가 지원하는 network 제어 프로토콜을 이용함 (OpenFlow, OVSDB) * 본 ppt는 OpenFlow를 기준으로 설명
9.
© PIOLINK, Inc.
SDN No.1 Slow Path & Fast Path datapath의 packet 처리 방식에는 Slow Path와 Fast Path 두 가지가 존재함 1. Slow Path : vswitchd에게 flow rule을 받아 packet을 처리함. (datapath가 packet에 대한 flow rule을 갖고 있지 않은 경우) 2. Fast Path : Slow Path를 통해 가져온 flow rule로 datapath에서 바로 packet을 처리함 Controller vswitchd (user space) datapath (kernel space) Network Open vSwitch 1. Slow Path 2. Fast Path *뒷장의 unknown packet processing과 같음
10.
© PIOLINK, Inc.
SDN No.1 Unknown Packet Processing datapath가 수신한 packet의 flow rule을 갖고 있지 않은 경우 vswitchd 로부터 flow rule을 가져오는 과정 1. Packet 수신을 위한 device 및 이벤트 핸들러 등록 2. Packet 수신 후 unknown packet을 판별해 upcall 처리 3. vswitchd가 unknown packet에 대한 flow rule 결정 4. Flow rule을 datapath에 전달 Controller vswitchd (user space) datapath (kernel space) Network Open vSwitch 1. 2. 3. 4. *뒷장부터 위 순서를 OVS 함수로 정리
11.
© PIOLINK, Inc.
SDN No.1 Unknown Packet Processing 1. Packet 수신을 위한 device 및 이벤트 핸들러 등록Controller vswitchd (user space) datapath (kernel space) Network Open vSwitch 1. 2. 3. 4. ① ovs_dp_cmd_new() 또는 ovs_vport_cmd_new() : vport(가상의 port)를 생성하는 과정 시작 ② new_vport() : vport 생성 ③ ovs_vport_add() : 요청에 대한 ops(ovs_netdev_vport_ops) 등록 ④ netdev_create() : vport에 대한 설정 및 수신 이벤트에 대한 핸들러 등록 ⑤ netdev_frame_hook() : packet 수신에 대한 이벤트 핸들러로 Network에서 오는 packet을 수신 함수 호출
12.
© PIOLINK, Inc.
SDN No.1 Unknown Packet Processing 2. Packet 수신 후 unknown packet을 판별해 upcall 처리Controller vswitchd (user space) datapath (kernel space) Network Open vSwitch 1. 2. 3. 4. ① netdev_frame_hook() : packet 수신 ② netdev_port_receive() ③ ovs_vport_receive() ④ ovs_dp_process_pacekt() : flow table과 매치 후 unknown packet이면 upcall 동작을 수행 ⑤ ovs_dp_upcall() ⑥ queue_userspace_packet() ⑦ genlmsg_unicast() : user space로 메시지 전달
13.
© PIOLINK, Inc.
SDN No.1 Unknown Packet Processing 3. vswitchd가 unknown packet에 대한 flow rule 결정Controller vswitchd (user space) datapath (kernel space) Network Open vSwitch 1. 2. 3. 4. ① updif_upcall_handler() : 폴링 방식으로 upcall을 대기하는 스레드 ② recv_upcalls() → dpif_recv() : datapath에서 data를 수신 → process_upcall() : unknown packet에 대한 upcall 인지 확인 ③ handle_upcall() : 새로운 flow rule을 datapath로 전달하기 위한 명령어 생성 ④ dpif_operate() : 새로운 flow rule을 datapath로 전달하는 작업 시작
14.
© PIOLINK, Inc.
SDN No.1 Unknown Packet Processing 4. Flow rule을 datapath에 전달 Controller vswitchd (user space) datapath (kernel space) Network Open vSwitch 1. 2. 3. 4. ① dpif_operate() : Flow rule을 datapath로 전달하는 작업 시작 ② dpif_netlink_operate() = dpif->dpif_class->operate() ③ dpif_netlink_operate__() → dpif_netlink_init_flow_put() : datapath로 전달할 메시지에 flow 추가 명령과 정보를 입력 ④ nl_transact_multiple() ⑤ nl_sock_transact_multiple() ⑥ nl_sock_transact_multiple__() : datapath에게 flow rule 전달
15.
© PIOLINK, Inc.
SDN No.1 Flow Rule Update Controller vswitchd (user space) datapath (kernel space) Network Open vSwitch 1. vswitchd가 controller로부터 기존 flow rule을 변경하는 제어 메시지를 수신해 datapath의 flow rule을 갱신하는 과정 1. OpenFlow Controller로 부터 제어 메시지를 수신 2. vswitchd의 flow table 갱신 3. Flow table 업데이트 정보 체크 4. datapath의 기존 flow rule을 삭제 5. flow rule을 삭제한 후에는 unknown packet으로 처리함 2. 3. 4. 5. * 앞의 unknown packet processing과 같아 뒤에 설명은 생략함
16.
© PIOLINK, Inc.
SDN No.1 Flow Rule Update Controller vswitchd (user space) datapath (kernel space) Network Open vSwitch 1. 1. OpenFlow Controller로 부터 제어 메시지를 수신 ① ofproto_run() ② connmgr_run() ③ ofconn_run() ④ rconn_recv() ⑤ vconn_recv() ⑥ do_recv() ⑦ vconn_stream_recv__() ⑧ stream_recv() ⑨ fd_recv() : controller로부터 메시지를 수신 2. 3. 4. 5.
17.
© PIOLINK, Inc.
SDN No.1 Flow Rule Update Controller vswitchd (user space) datapath (kernel space) Network Open vSwitch 1. 2. vswitchd의 flow table 갱신 ① ofconn_run() ② handle_openflow() ③ handle_openflow__() ④ handle_flow_mod() ⑤ handle_flow_mod__() ⑥ add_flow() : vswitchd의 flow table에 controller로부터 받은 새로운 flow rule을 추가 또는 수정 2. 3. 4. 5.
18.
© PIOLINK, Inc.
SDN No.1 Flow Rule Update Controller vswitchd (user space) datapath (kernel space) Network Open vSwitch 1. 3. Flow table 업데이트 정보 체크 ① udpif_revalidator() : 주기적으로 flow table을 체크하는 스레드 ② revalidate() : flow table 체크 시작 ③ revalidate_ukey() → xlate_actions() : flow table에서 정보 가져옴 ④ ofpbuf_equal() : flow table 업데이트 유무 확인 2. 3. 4. 5.
19.
© PIOLINK, Inc.
SDN No.1 Flow Rule Update Controller vswitchd (user space) datapath (kernel space) Network Open vSwitch 1. 4. datapath의 기존 flow rule을 삭제 ① revalidate() → delete_op_init() ② push_ukey_ops__() ③ dpif_operate() ④ dpif_netlink_operate() = dpif->dpif_class->operate() ⑤ dpif_netlink_operate__() → dpif_netlink_init_flow_del() : datapath에게 전달하는 메시지에 flow 삭제 명령과 필요한 정보를 입력 ⑥ nl_transact_multiple() ⑦ nl_sock_transact_multiple() ⑧ nl_sock_transact_multiple__() : datapath에게 삭제 명령 전달 2. 3. 4. 5.
20.
© PIOLINK, Inc.
SDN No.1 References http://www.openvswitch.org/ https://github.com/openvswitch/ovs/ http://en.wikipedia.org/wiki/Open_vSwitch http://www.slideshare.net/rajdeep/openvswitch-deep-dive http://dpdk.org/ http://www.apache.org/ http://www.xenproject.org/ https://www.openstack.org/ http://www.linux-kvm.org/page/Main_Page https://www.opennetworking.org/sdn-resources/openflow
21.
감사합니다. ㈜파이오링크 서울시 금천구 가산디지털2로
98 (가산동 550-1) IT캐슬 1동 401호 TEL: 02-2025-6900 FAX: 02-2025-6901 www.PIOLINK.com
Download