• 検索結果がありません。

ood_nakajima

N/A
N/A
Protected

Academic year: 2021

シェア "ood_nakajima"

Copied!
50
0
0

読み込み中.... (全文を見る)

全文

(1)

ネットワークスイッチOS

「Lagopus  Switch」

中島佳宏

Lagopus  User  Community

This  research  is  partially  supported  by  “Research  and  Development  of  Network  Virtualization  Technology”  

program  commissioned  by  the  Ministry  of  Internal  Affairs  and  Communications.

(2)

n

中島佳宏

l 

NTT未来ねっと研究所

l 

バックグランド

• 

⼤大学時代

–  High-performance computing

–  Grid Computing

• 

⼊入社後

– 

⾮非圧縮映像IP NW伝送装置

– 

アプリケーション特化のNW制御システム

• 

現在

– 

⾼高速なソフトウエアスイッチ開発

⾃自⼰己紹介

(3)

n

ネットワークはプログラミングできます

l 

SDNとかOpenFlow

n

サーバアプリやサーバインフラ管理理の流流儀で

ネットワークを管理理できるようになります

n

サーバで動作する速いソフトウエアスイッチLagopusがあります!

今⽇日覚えていってほしいこと

(4)

Agenda

n

Software-‐‑‒Defined  Networkingって?

l 

OpenFlow  protocol  /  OpenFlow  Switch

l 

SDN関連Open  Source

n

Lagopus:  SDN/OpenFlow  ソフトウエアスイッチ

l 

構成

l 

実装の⼯工夫

l 

性能評価

n

Lagopusを使った柔軟なネットワーキングをプログラムすると

l 

透明⼈人間

(5)

n

多様なユーザニーズを満たすために

多様なプロトコル標準が存在

l 

装置仕様の肥⼤大化

l 

装置コストの⾼高騰

n

⾃自律律分散が故の動作の複雑さ  

n

装置の制限により

提供可能なサービスが限定

n

⼈人⼿手中⼼心のオペレーション

l 

CLI

l 

Chef,  Puppetしたいのに

現状のネットワーク機器の課題

使いたい機能は、⼀一部だけなのに...

構成を変更更したいけど、利利⽤用中のユー

ザに影響を与えないようにしないと...

この制限がなければ、もっとよいサー

ビスを提供できるのに...

(6)

なぜ  Software-‐‑‒Defined  Networking?

⼤大規模なデータセンターを、低コストに運⽤用したい

構成変更更を迅速に⾏行行いたい

(7)

どのように?

(8)

n

ネットワーク機器の制御部をプログラム可能に

 (Software-‐‑‒Defined  Networking)

l 

 要件ベースでのネットワーク設計

l 

 ⾃自動化による運⽤用コストの削減

l 

 コモディティハードウェア利利⽤用による設備コストの削減

n

ネットワークをプログラムからさわれるように

どのように?

制御部

転送部

制御部は機器ベンダーが提供

制御部と転送部は不不可分

?

制御部をプログラム可能に

(9)

制御と転送を分離離  (OpenFlow)

制御部

転送部

制御部

転送部

OpenFlow

 コントローラ

OpenFlow

プロトコル

転送と制御

を分離離

ネットワーク機器(従来)

OpenFlow

 スイッチ

利利点  :  プロトコルおよびスイッチ仕様の標準化による普及

制御部は機器ベンダーが提供

制御部と転送部は不不可分

制御部を作ることで、

独⾃自の動作をさせることが可能

標準化

(10)

OpenFlow  概要  (スイッチの動作)

Flow table

Flow table

を参照し、

パケット処理理

(Match, Action)

OpenFlow

コントローラ

どういうパケットだったら  

受信ポート番号,

パケットヘッダの値(宛先,ソース,各種ID...)

どういう処理理をする

パケットヘッダの追加,削除,編集,

転送(ユニキャスト,マルチキャスト,ロード

バランシング...)

コントローラにパケットを転送して処理理も可

(11)
(12)

n

L1  (Port  #),  L2  (Ethernet),  L3  (IPv4,  IPv6),  L4  (TCP,  UDP)

までのヘッダを使うことが可能

l 

Ingress  port

l 

Ethernet  source/destination  address

l 

Ethernet  type

l 

VLAN  ID

l 

VLAN  priority

l 

IPv4  source/destination  address

l 

IPv4  protocol  number

l 

IPv4  type  of  service

l 

TCP/UDP  source/destination  port

l 

ICMP  type/code

(13)

n

Forward

l 

Physical  ports  (Required)

l 

Virtual  ports  :  All,  Controller,  Local,  Table,  IN_̲PORT  (Required)  

l 

Virtual  ports  :  Normal,  Flood  (Required)

n

Drop  

n

Modify  Field

l 

Set/Add  VLAN  ID

l 

Set  VLAN  priority

l 

Strip  VLAN  Header

l 

Modify  Ethernet  source/destination  address

l 

Modify  IPv4  source/destionation  address

l 

Modify  IPv4  type  of  service  bits

l 

Modify  IPv4  TCP/UDP  source/destination  port

OpenFlow  概要  (Action)

さまざまな転送ルール

ヘッダが書き換えも可能

(14)

データセンターへの

OpenFlow  適⽤用例例

(15)

VM

VM

VM

VM

データセンターにおけるネットワーク仮想化の課題

Physical

Network

Software

Switch

Software

Switch

VM

VM

Software

Switch

VM

VM

Software

Switch

Virtual Network A

Virtual Network C

Virtual Network B

①  VM と仮想ネットワークの接続

②  仮想ネットワーク間のトラフィック分離離

③  物理理ネットワークの資源管理理

(16)

VM

VM

VM

VM

従来技術を⽤用いた場合の課題

Physical

Network

Software

Switch

Software

Switch

VM

VM

Software

Switch

VM

VM

Software

Switch

VLAN A

VLAN B

VLAN A

VLAN B

VLAN B

VLAN C

VLAN B

VLAN C

VLAN C

VLAN B

VLAN A

従来技術 (VLAN)  による構成

①  設定変更更に関する問題

②  VLAN  数の問題  

③  STP の限界

(17)

VM

VM

VM

VM

OpenFlow  による構成  (Overlay  アプローチ)

Physical

Network

OpenFlow

Switch

OpenFlow

Switch

VM

VM

OpenFlow

Switch

VM

VM

OpenFlow

Switch

②  トンネルによるトラフィック分離離

①  対応関係を  OpenFlow  により実現

メリット  :  既存の物理理インフラを活⽤用可能

デメリット  :  トンネル化によるオーバーヘッド  (MTU⻑⾧長、処理理遅延)

(18)

VM

VM

VM

VM

OpenFlow  による構成  (Hop-‐‑‒by-‐‑‒hop  アプローチ)

OpenFlow

Switches

OpenFlow

Switch

OpenFlow

Switch

VM

VM

OpenFlow

Switch

VM

VM

OpenFlow

Switch

②  フロー単位のトラフィック制御

③  フロー単位で最短パスを形成  

①  対応関係を  OpenFlow  により実現

(19)

SDNを構成するオープンソース

Cloud

Computin

g

OSS

Controlle

r

OSS

virtual

switch

Infrastructure

Layer

Application Layer

Business Applications

Control Layer

Network

Services

Network

Services

API

API

Northbound API

Ryu

trema

Southbound API

Open contrail

White

box

switch

(20)

n

NW

制御側

l 

⾃自分でコントローラを作る

• 

結構しんどいです

l 

フリーなコントローラを⾒見見つける

•  OpenDaylight, Ryu, Trema

l 

ソリューションを購⼊入する

•  OpenFlow 1.3

対応製品を検索索してください

n

データプレーン側

l 

⾃自分でコントローラを作る

• 

かなり結構しんどいです

l 

フリーなOpenFlowスイッチを⾒見見つける

•  Open vSwitch, Lagopus

l 

ソリューションを購⼊入する

対応製品を検索索してください

(21)

n

⾃自分でNW制御ロジックを書きたい⼈人向け  

SDN制御系

OpenDaylight

Ryu

Trema

Language

Java

Python

Ruby, C

License

Eclipse Public v1

Apache v2

GPL

制御可能データプレーン OpenFlow switch

v1.0, 13

OpenFlow switch

v1.0 – 1.5

OVSDB

対応スイッチ

OpenFlow switch

v1.0,

1.3 (trema-edge)

データプレーン設定プロ

トコル

OVSDB, NETCONF

OVSDB

-プロトコルライブラリ

○  (BGP, BGP)

○  (いろいろ)

○(いろいろ)

(22)

n

Open  vSwitch

l 

VMwareが開発を主導

l 

様々なLinuxディストリで利利⽤用可能

l 

様々な仮想化基盤との連携も可能

l 

Linuxカーネルにデータプレーンのモジュールが取り込まれている

l 

http://openvswitch.org/

n

Lagopus  

l 

NTTが開発を主導  

l 

様々なプロトコルのフレームへのOpenFlow命令令の対応

l 

⾼高速化および⼤大規模フローへの対応を主眼

l 

http://lagopus.github.io/

n

LINC,  LINCX

l 

flowforwardingが開発を主導

l 

最新のOpenFlow仕様やOF-‐‑‒CONFIGに対応

l 

http://www.flowforwarding.org/

(23)
(24)

Lagopusプロジェクトの⽬目的

n

NFVやSDNを実現するソフトウエアコンポーネントを提供

l 

スイッチエージェント  (OpenFlow,  REST)

l 

⾼高速なソフトウエアデータプレーン

l 

柔軟・拡張可能なスイッチ設定機構

l 

⾼高速I/Oライブラリ  (DPDK)

l 

外部システム連携ライブラリ  (クラウドミドルウエア・補助ツール)

l 

Network  I/O  ハードウエア拡張

n

ソフトウエアパケット処理理の適応領領域の拡⼤大

l 

キャリア・ネットワークでも活⽤用可能な⾼高いスケーラビリティ性

l 

運⽤用を容易易にする⾼高可⽤用性・保守成性の向上

n

ネットワーク研究のツール・ライブラリとしての活⽤用促進

l 

⾼高速検索索、QoSコンポーネント、次世代ネットワーキングの拡張

(25)

#  of  packet  to  be  proceeded  for  10Gbps

with  1  CPU  core

0

2,000,000

4,000,000

6,000,000

8,000,000

10,000,000

12,000,000

14,000,000

16,000,000

0

256

512

768

1024

1280

#

o

f p

a

cke

ts

p

e

r s

e

co

nd

s

Packet size (Byte)

Short packet 64Byte

14.88 MPPS, 67.2 ns

•  2Ghz: 134 clocks

•  3Ghz: 201 clocks

Computer packet 1KByte

1.2MPPS, 835 ns

•  2Ghz: 1670 clocks

•  3Ghz: 2505 clocks

(26)

Lagopusの概要

n

OpenFlow  1.3に最も適応したソフトウエアスイッチ

l 

複数のプロトコルフレーム処理理の対応

•  Ethernet, Mac in MAC, MPLS, PBB, IPv4, IPv6…

l 

複数Flow  tableやグループテーブルへの対応

l 

QoS機能  (queue,  policer,  meter  table)

n

DPDKを活⽤用した⾼高性能データプレーン

l 

10Gbpsを超えるパケット処理理・転送性能  (20MPPS以上)

l 

100万フローエントリへの対応  (4K  flow  mod/sec)

n

外部連携API

l 

CLIやJSONによるスイッチ構成設定

•  Flow

設定、統計情報・状況把握

(27)

n

ネットワークのエッジのノード

l 

柔軟な制御や設定が求められるノード

l 

多機能で⼤大量量のルート数やルールが求められるノード

l 

求められるポート数が⽐比較的少ないノード

Lagopusの適応先

TOR

Virtual  Switch

Hypervisor

VM

VM

Virtual  Switch

Hypervisor

NFV

NFV

Virtual  Switch

Hypervisor

VM

VM

Gateway

CPE

Data  Center

Wide-‐‑‒area  Network

Access  Network

Intranet

Cloud,NFVに対応

する仮想スイッチ

異異種NWを接続する

(28)

Lagopus  vSwitchの構成

switch configuration datastore

(config/stats API, SW DSL)

DPDK libs/PMD driver

Lagopus soft dataplane

flow lookup flow cache

OpenFlow pipeline

queue/ policer Flow table Flow table flow table Flow table Flow table Group table Flow table Flow table meter table

switch HAL

OpenFlow

1.3 agent

JSON IF

SN

M

P

CL

I

O

V

SD

B

NET

CO

N

F

L2 bridge

L3

(IP

v4

ICM

P)

SDN  switch  Agent

• 

Full  OpenFlow  1.3.4  support

• 

Controller-‐‑‒less  basic  L2  and  

L3  support

SDN-‐‑‒aware  

management  API

• 

OVSDB,  REST

• 

Ansible  support

DPDK-‐‑‒enabled  

soft  dataplane

Over-‐‑‒10-‐‑‒Gbps  

performance

Low  latency  packet  

processing

high  performance  

multi-‐‑‒layer  flow  lookup

DPDK-‐‑‒enabled  

vNIC  for  NFV  

Switch  configuration  

datastore

• 

Pub/sub  mechanism

• 

Switch  config  DSL

• 

JSON  IF  support

Soft-‐‑‒dataplane  

aware  FPGA  NIC

(29)
(30)

パケット処理理の流流れ

Network I/O RX

packet

Frame

processing

Flow lookup &

Action

QoS

・Queue

Network I/O

Packet classification &

packet distribution to buffers

Packet parsing

lookup, Header rewrite

Encap/decap

Policer, Shaper

Marking

(31)

n

X

86

アーキテクチャに最適化された

データプレーン⽤用ライブラリとNICドライバ

l 

メモリ構成を考慮したQueue,

buffer管理理ライブラリ

l 

packet  flow  classification

l 

ポーリングベースのNIC  driver

n

データプレーン処理理に最適化された

低遅延  &  ⾼高性能なランタイム

n

抽象化されたパケット処理理

n

BSD

ライセンス

 :)

l 

OSSコミュニティにより開発中

l 

dpdk.org

Intel  DPDK

(32)

Intel  DPDKによるネットワークI/Oのバイパス

skb_buf

Ethernet  Driver  API

Socket  API

Application

packet  

packet  buffer

memory

Standard  linux  application

1.  Interrupt  &  DMA

2.  system  call  (read)

User  space

Kernel  space

4.  DMA

3.  system  call  (write)

Ethernet  Driver  API

User-mode  I/O  &  HAL

Application

packet  

application  with  intel  DPDK

1.  DMA  

Write  

2.  DMA

READ

DPDK  Library

Polling-base

packet  handling

Event-base

packet  handling

(33)
(34)

性能向上に向けての⼯工夫や実装  (1/2)

Network I/O RX

packet

Frame

processing

Flow lookup &

Action

QoS

・Queue

Network I/O

•  Delayed packet frame

evaluation

•  Delayed action

(processing) evaluation

•  Packet batching to

improve CPU $ efficiency

•  Delayed flow stats

evaluation

•  Smart flow classification

•  Thread assignment optimization

•  Parallel flow lookup

•  Lookup tree compaction

•  High-performance lookup

algorithm for OpenFlow

(multi-layer, mask, priority-aware

flow lookup)

(35)

n

詳しくはソースコードを!

l  https://github.com/lagopus/lagopus/

(36)

10Gbps

パケット処理理の実現にむけての進捗

0

2

4

6

8

10

12

14

2013 Q2

2013 Q3

2013 Q4

2014 Q1

2014 Q2

MPPS

Project start

point

OF lookup

improved

Lookup

optimization

Flow $ and Lookup

optimization

with

12 CPU cores

Packet processing

optimization

(37)

n

まとめると

l 

Throughput:

10Gbps  wire-‐‑‒rate

l 

Flow  rules:

1M  flow  rules

4000 flowmod add / sec

Lagopusの性能評価

0"

1"

2"

3"

4"

5"

6"

7"

8"

9"

10"

1"

10"

100"

1000"

10000"

100000"

1000000"

Th

ro

ugh

pu

t)(

Gb

ps)

flows

10k"flow"rules"

100k"flow"rules"

1M"flow"rules"

Throughput vs flows, 1518 bytes packet

HW

スペック

•  Dual Intel xeon E5-2660 (8cores)

•  DDR3-1600 64GB

•  Intel X520-DA2

L2 switch performance (Mbps)

10GbE x 2 (RFC2889 test)

(38)

Ryu  OpenFlow  1.3  Conformance  test  Status  (2015.02.12)

Type

Action

Set field

Match

Group

Meter

Total

# of test scenario

(mandatory,

optional)

56

(3 , 53)

(0 , 161)

161

(108 , 606)

714

(3 , 12)

15

(0 , 36)

36

(114 , 877)

991

Lagopus

2014.11.09

(

3

,

56

56

)

(0,

161

161

)

(

108, 606

714

)

(

3

15

,

12

)

(0, 34)

34

(

114

980

, 866)

OVS (kernel)

2014.08.08

(

3

34

, 31)

(0, 96)

96

(

108

534

, 426)

(

3

6

, 3)

(0, 0)

0

(

114

670

, 556)

OVS (netdev)

2014.11.05

(

3

34

, 31)

(0, 102)

102

(93, 374)

467

(

3

8

, 5)

(0, 0)

0

(99, 556)

611

IVS

2015.02.11

(

3

17

, 14)

(0, 46)

46

(

108

323

, 229)

(0, 2)

3

(0, 0)

0

(111, 291)

402

ofswitch

2015.01.08

(

3

50

, 47)

(0, 100)

100

(

108

708

, 600)

(

3

15

, 12)

(0, 30)

30

(

114

962

, 848)

LINC

2015.01.29

(

3

24

, 21)

(0, 68)

68

(

108

428

, 320)

(

3

3

, 0)

(0, 4)

4

(

114

523

, 409)

(39)

n

2014年年7⽉月31⽇日に公開

n

http://lagopus.github.io/

n

開発への参加

l 

コードの提供 -‐‑‒>  GitHub  Pull  Request

l 

バグレポート -‐‑‒>  GitHub  Issues

l 

議論論

-‐‑‒>  Developers  ML

(40)

Lagopusを使った柔軟なネットワーキング

(41)

展⽰示デモ

n

半透明⼈人間カメラ  ×  Lagopus

l 

講義中,先⽣生の影が邪魔になって板書しにくい

-‐‑‒>  先⽣生を半透明にする

l 

撮影,半透明化,表⽰示の3サーバでシステムを構成

l 

映像はUDP送受信

l 

映像切切替をLagopusにオフロード!

先⽣生で板書できない!

先⽣生を半透明に!

(42)

展⽰示デモ

n

半透明⼈人間カメラ  ×  Lagopus

パターンA:通常表⽰示

・カメラからのパケットを半透明化サーバとモニタに送信

  (宛先MAC,IP,portを書き換えマルチキャスト)

・半透明化サーバからのパケットはdrop

パターンB:半透明化

・カメラからのパケットを半透明化サーバに送信

・半透明化サーバからのパケットをモニタに送信

  (パケットの宛先は適宜書き換える)  

カメラ

モニタ

半透明⼈人間化

パターンA

パターンB

(43)

何ができる?

(44)

何ができる?

(45)

SDN IX 


@ Interop Tokyo 2015 ShowNet

Thanks to NECOMA project


(46)

SDN IX

の背景

n

IX (Internet eXchange)

l 

インターネットサービス・プロバイダ  (ISP)  間の

L2での接続ポイント

•  ISP

間のパブリックな接続・プライベート接続

n

やりたいことや困っていること

l 

接続設定の⾃自動化とポータル化、API提供

l DDoS

トラヒックを削減・⽌止めたい

• 

リンク帯域を⾷食い尽くすことも

• 

⼊入り⼝口でDDoSトラヒックをdrop

• 

外部のDPI装置やFlowSpecとの連携

IX

ISP-‐‑‒C

ISP  A

ISP  B

ISP-‐‑‒D

SW

SW

SW

SW

ISP-‐‑‒E

ISP  F

IX

ISP-‐‑‒C

ISP  A

ISP  B

ISP-‐‑‒D

SW

(47)

n

2台のLagopusを設置@⼤大⼿手町と幕張

l 

アキバで買えるIntel  Xeonサーバ

•  2 x Xeon E5 (Sandy-bridge) 8core CPU

•  6 x 10GbE NIC

(48)
(49)

n

平均2Gbps throughput

l 

パケットドロップは発⽣生なし

l 

ときたま10Gbpsのトラヒックにも耐えた

l Interop Tokyo

会期中リブートなし  &  トラブルなし

(50)

n

⾼高速なLagopusソフトスイッチをオープンソースとして提供

l 

ネットワークをプログラミングしてみませんか?

• 

既存のサーバで動作可能

• 

そこそこの性能で動きます

• 

相談にのります

まとめ

Web: http://lagopus.github.io/

Github: https://github.com/lagopus/

開発に参加してみませんか?

Lagopus

本とかも後⽇日公開  (予定)

参照

関連したドキュメント

クチャになった.各NFは複数のNF  ServiceのAPI を提供しNFの処理を行う.UDM(Unified  Data  Management) *11 を例にとれば,UDMがNF  Service

Secondly, once we have established the solvability of SPDEs within the stochastic parabolic weighted Sobolev spaces H γ,q p,θ (O, T ) , we have to exploit the L q (L p ) –regularity

概要・目標 地域社会の発展や安全・安心の向上に取り組み、地域活性化 を目的としたプログラムの実施や緑化を推進していきます

【オランダ税関】 EU による ACXIS プロジェクト( AI を活用して、 X 線検査において自動で貨物内を検知するためのプロジェク

本文書の目的は、 Allbirds の製品におけるカーボンフットプリントの計算方法、前提条件、デー タソース、および今後の改善点の概要を提供し、より詳細な情報を共有することです。

層の項目 MaaS 提供にあたっての目的 データ連携を行う上でのルール MaaS に関連するプレイヤー ビジネスとしての MaaS MaaS

 県民のリサイクルに対する意識の高揚や活動の定着化を図ることを目的に、「環境を守り、資源を

(ECシステム提供会社等) 同上 有り PSPが、加盟店のカード情報を 含む決済情報を処理し、アクワ