Slide 1

Slide 1 text

Copyright © NTT Communications Corporation. All rights reserved. SHIROKURA Hiroki [email protected] NTT Communications Technology Development Division 2018/08/08 Kamuee: Design and Implementation of High Speed Software Router

Slide 2

Slide 2 text

Copyright © NTT Communications Corporation. All rights reserved. Self Introduction ● Hiroki SHIROKURA ○ @slankdev, [email protected] ○ NTT-Com Tech-Dev-Division ○ Lecture at Security-Camp ○ IPA Mitou Creator (certified as a Super-Creator) Activities and ... ● Develop Kamuee ● Develop Cuishark ● Interested in Packet Processing ● Interested in System Software 2

Slide 3

Slide 3 text

Copyright © NTT Communications Corporation. All rights reserved. 1. Kamuee Project/Router Summary 2. Kamuee Router: Design / Implementation 3. Conclusion Agenda 3

Slide 4

Slide 4 text

Copyright © NTT Communications Corporation. All rights reserved. 1. Kamuee Project/Router Summary ○ Project Summary ○ About Kamuee Software Router ○ Contribution to the Interop 2018 2. Kamuee Router: Design / Implementation 3. Conclusion Agenda 4

Slide 5

Slide 5 text

Copyright © NTT Communications Corporation. All rights reserved. Project Summary 5 ● A Software router from scratch ● Use DPDK and Poptrie to accelerate packet forwarding and route-lookup ● Paper about routing lookup algorithm ○ H.Asai,Y.Ohara,"Poptrie:A Compressed Trie with Population Count for Fast and Scalable Software IP Routing Table Lookup", ACM SIGCOMM '15, p.57-70. ● Patent about routing lookup algo. ○ PCT/JP2016/052664(2016.01.29) ○ 特許第5960863号(特願2015-048657)2016/7/1registered ● Participated in the Interop Tokyo 2018 (Shownet) as a Core-Router ● Next Step: Support High performance NFV..?, More Portability..?

Slide 6

Slide 6 text

Copyright © NTT Communications Corporation. All rights reserved. Motivation: Developing a router on JUST COTS 6 Higher performance NFV ● High speed Implementation .. ? ● no Open Implementation .. ? ● using DPDK .. ? Agility / Extensibility ● Special Policy ● New Protocols ● Automation

Slide 7

Slide 7 text

Copyright © NTT Communications Corporation. All rights reserved. About Kamuee Software Router 7 High-speed software router using DPDK and Poptrie. Achieve 100GbE routing with COTS and Software We believe currently (as a software forwarder) its performance is the highest in the world. Usecase ● Enterprise Router ● High-performance VNF ● Load Balancer ● etc... 導入先のアイディア等, ご意見を募集しています!

Slide 8

Slide 8 text

Copyright © NTT Communications Corporation. All rights reserved. Poptrie: Multiway trie for IP routing table lookup 8 Small memory footprint with population count ● 2.4MiB for a global tier-1 ISP’s full route Good performance through comprehensive evaluation ● 240 Mlps/core (with Tier 1 backbone full route 531K routes, random address) Presented at ACM SIGCOMM’15. H.Asai(U-Tokyo), Y.Ohara(NTT-Com) ● NTT-Com have a patent right of an algorithm.

Slide 9

Slide 9 text

Copyright © NTT Communications Corporation. All rights reserved. Highest Speed…? 9 FD.io Tbps-scale router ● 400Mpps by 4 socket newer CPU (Xeon Platinum) ● 1M routing table entries https://fd.io/2017/07/fdio-doubles-packet-throughput-performance-terabit-levels/ Kamuee ● 250Mpps by 2 socket older CPU (Xeon E5 v3/v4) ● 0.6M routing table entries That’s comparable !

Slide 10

Slide 10 text

Copyright © NTT Communications Corporation. All rights reserved. Performance: Throughput 10

Slide 11

Slide 11 text

Copyright © NTT Communications Corporation. All rights reserved. Performance: Packet loss/Latency 11 Skylake-100GbE, 8 cores/port, 1 port->1 port (cross CPU), 612.9K routes, 2 min-evaluation Packet Size [Byte] Traffic Rate [Gbps] Packet Loss Rate [%] Latency Min [us] Latency Avg [us] Latency Max [us] 64 30 0.028 2.07 8.309 93.97 128 30 0.00028 3.27 11.921 122.91 512 90 0.0001 3.5 15.273 104.82 1024 90 0 3.49 23.667 103.64

Slide 12

Slide 12 text

Copyright © NTT Communications Corporation. All rights reserved. Participated in the Interop 2018 Shownet 12 Award ● Best of Show Award Finalist ● Best of ShowNet Award Second Place

Slide 13

Slide 13 text

Copyright © NTT Communications Corporation. All rights reserved. 13 インタロップ前後での出来事 ● DPDKとNICカードの相性, ドライバ ● 100GBase-LR4 QSFP28トランシーバーの温度 ● 吸気の方向 ● メモリリーク (92, 2万 telnet) ● 性能とgcc 最適化オプション: –g, -O, クラッシュ 本番期間中3日間, 問題は一つも起こらず ..? ユーザトラフィックも一応通ったらしい .. ? Award ● Best of Show Award Finalist ○ グランプリ: Cisco, Juniper ○ 準グランプリ: Extreme ○ 審査員特別賞: Dell EMC, Huawei ● Best of ShowNet Award 準グランプリ ○ グランプリ: Spirent ○ 審査員特別賞: サウザンドアイズ

Slide 14

Slide 14 text

Copyright © NTT Communications Corporation. All rights reserved. Temperature 14 Juniperとかだとモジュールの 裏側のすぐに専用の扇風機 があるらしい 100G LR4 内部温度は67度 温度の検知感覚が~70度

Slide 15

Slide 15 text

Copyright © NTT Communications Corporation. All rights reserved. Web Article / News Release / 日経 15 100GbE対応の高速ソフトウェア PCルーター開発に成功 https://www.ntt.com/about-us/press-releases/news/article/2018/0611.html はてぶ:ニュース 2018年6月11日:100GbE対応の高速ソフトウェア PCルーター開発に成功 | NTT Com 企業情報 | NTTコミュニケーションズ 企業情報 http://b.hatena.ne.jp/entry/s/www.ntt.com/about-us/press-releases/news/article/2018/0611.html 100GbE対応の高速ソフトウェア PCルーター開発に成功 (SankeiBiz) http://www.sankeibiz.jp/business/news/180611/prl1806111112040-n1.htm 100GbE対応の高速ソフトウェア PCルーター開発に成功 (@Press) https://www.asahi.com/and_M/information/pressrelease/CATP2018158562.html NTT Com、100GbEのソフトウェアルーター、全経路を CPUキャッシュに搭載 (IT Leaders) https://it.impressbm.co.jp/articles/-/16223 NTT Com、100GbE対応の高速ソフトウェア PCルーターを開発 https://cloud.watch.impress.co.jp/docs/news/1126904.html 1億円のルーターを 200万円のPCで実現、NTTコム製ソフト「Kamuee」の正体 http://tech.nikkeibp.co.jp/atcl/nxt/column/18/00001/00613/ NTT Comが「世界最高速レベル」ソフトウェア PCルーター開発 http://ascii.jp/elem/000/001/691/1691592/ NTT Comが「世界最高速レベル」ソフトウェア PCルーター開発 https://japan.zdnet.com/article/35120661/ @Press 100GbE対応の高速ソフトウェア PCルーター開発に成功~一般的な CPUを利用し、専用機器並みの性能を実現~ https://www.atpress.ne.jp/news/158562 TCAMと同等以上の性能をソフトウェアで実現した BGPルータ@Interop Tokyo 2018 http://www.geekpage.jp/blog/?id=2018-6-13-2 NTT com、数千万円規模のコアルータの機能を実現する PCルータ開発 https://news.mynavi.jp/article/20180612-645347/ 財経新聞:NTTコム、世界トップレベルの高速ソフトウェア PCルーターを開発 https://www.zaikei.co.jp/article/20180612/447505.html ニコニコニュース: NTT com、数千万円規模のコアルータの機能を実現する PCルータ開発 http://news.nicovideo.jp/watch/nw3587592 NTT Com「世界最高速レベル」ソフトウェア PCルーター開発 http://news.line.me/issue/oa-ascii/c5da257cbd0e ASICを使わないLinuxルーターでも専用機並みの性能を実現できるルーターソフトウェア https://linux.srad.jp/story/18/06/18/056249/

Slide 16

Slide 16 text

Copyright © NTT Communications Corporation. All rights reserved. Development Environment 16

Slide 17

Slide 17 text

Copyright © NTT Communications Corporation. All rights reserved. Beta Release Version 17 他にもあるし要相談だよ ! Beta1: 4U 100GbE Router interop version ● Hardware: about 400万 yen ● supermicro 7048GR-TR: 4U Tower ● 100GbE (QSFP28: SR4/LR4) x12 port ● 100GbE (QSFP28: SR4/LR4) x4 port Beta2: 1U 10GbE Router ● Hardware: about 45万~ yen ● Fujitsu Primergy ● 10GbE (10GBase-T/10GBase-LR)

Slide 18

Slide 18 text

Copyright © NTT Communications Corporation. All rights reserved. Wrap UP 18 ● High-speed custom-made software router for the era of 100GbE-capable in software ● Targeting to the SDN/NFV ● Extensibility (Custom for the Special-purpose box and/or service)

Slide 19

Slide 19 text

Copyright © NTT Communications Corporation. All rights reserved. 1. Kamuee Project/Router Summary 2. Kamuee Router: Design / Implementation 2.1. Architecture / Principle 2.2. Data-plane 2.3. Control-plane 2.4. Management-plane 3. Conclusion Agenda 19

Slide 20

Slide 20 text

Copyright © NTT Communications Corporation. All rights reserved. What is a Router / What do we need from a Router..? 20 ● IP Forwarding ● Perform Protocols ● Packet Filtering ● Statistics ● Management ● Support Protocol ● High Performance forwarding ● User Friendly

Slide 21

Slide 21 text

Copyright © NTT Communications Corporation. All rights reserved. Kamuee Architecture 21 ● DPDK/Ubuntu/x86-Server ● Routing Engine: Quagga ● Forwarding Engine: DPDK ● Routing Lookup: Poptrie

Slide 22

Slide 22 text

Copyright © NTT Communications Corporation. All rights reserved. Kamuee Design Principle 22 ● Data Plane ○ Run to completion on DPDK space ○ No memory-copy, context-switch, lock ○ IP Forwarding / Packet Filtering / etc... ● Control Plane ○ Use Linux Kernel Network-Stack, partially ○ Use Tap interface to connect between DPDK and Kernel space ○ BGP / OSPF / ICMP / etc... ● Management Plane ○ Be able to control and manage Kamuee with VTY

Slide 23

Slide 23 text

Copyright © NTT Communications Corporation. All rights reserved. D-plane Design Principle 23 ● Dataplane’s Basic Task ○ IP Forwarding / IP Lookup / ACL / Vlan tagging ○ Parallelism multiple threads using RSS ○ NUMA aware core consumption ● IP Forwarding ○ Use Poptrie for route-lookup ● ACL ○ Using DPDK’s librte_acl ○ Provides simple ACL for egress/ingress traffic to the interfaces

Slide 24

Slide 24 text

Copyright © NTT Communications Corporation. All rights reserved. Parallelisation using RSS for Scaling 24 ● Use RSS for traffic balancing ● High performance w/ special HW feature ● 40GbE : 4 cores/port ● 100GbE: 8 cores/port Cores consumption style is based on dpdk/examples/L3fwd

Slide 25

Slide 25 text

Copyright © NTT Communications Corporation. All rights reserved. Core Consumption, (Fast/Slow thread) 25 Fast Thread ● dplane: packet forwarding Slow Thread ● cplane: routing protocol ● cplane: UI

Slide 26

Slide 26 text

Copyright © NTT Communications Corporation. All rights reserved. (Fast) Packet Processing on DPDK 26 DPDK is set of libraries for fast packet processing it uses some mechanizm to bypass Kernel-Network-Stack. (UIO,isolcpu, pthread-setaffinity, special Memory management with hugepages) 1. No Memory Copy 2. No Context Switch 3. Full scratch for perf 4. Avoid Task Scheduler

Slide 27

Slide 27 text

Copyright © NTT Communications Corporation. All rights reserved. (Slow) Packet Processing on Linux Kernel 27 There are some mechanisms makes network-application slow. Because Linux is not developed for the fast packet processing, it is developed for the general purpose use. 1. Memory Copy 2. Context Switch 3. Fat Network Stack 4. Task Scheduler

Slide 28

Slide 28 text

Copyright © NTT Communications Corporation. All rights reserved. C-plane and M-plane Design Principle 28 ● Partially offload features to Linux-Kernel ○ Netlink is key-points ○ ARP is exceptionally different ● Routing/Management Protocols ○ Use Quagga/net-snmp ○ Partially offload features to Linux-Kernel ○ Subscribe Linux-Network-Stack’s update using Netlink

Slide 29

Slide 29 text

Copyright © NTT Communications Corporation. All rights reserved. How to Support Routing Protocols with Fast Forwarding 29 ● 2 type Data-path ○ Slow-path: Redirect to the Kernel via Tap interface ○ Fast-path: Run to completion in DPDK-space ● Linux kernel can perform TCP/IP so-stable

Slide 30

Slide 30 text

Copyright © NTT Communications Corporation. All rights reserved. M-plane Design Principle 30

Slide 31

Slide 31 text

Copyright © NTT Communications Corporation. All rights reserved. M-plane Design Principle 31

Slide 32

Slide 32 text

Copyright © NTT Communications Corporation. All rights reserved. Summary: Kamuee Architecture 32 ● DPDK/Ubuntu/x86-Server ● Routing Engine: Quagga ● Forwarding Engine: DPDK ● Routing Lookup: Poptrie

Slide 33

Slide 33 text

Copyright © NTT Communications Corporation. All rights reserved. 1. Kamuee Project/Router Summary 2. Kamuee Router: Design / Implementation 3. Conclusion 3.1. Issues / future work 3.2. summary Agenda 33

Slide 34

Slide 34 text

Copyright © NTT Communications Corporation. All rights reserved. Issues / Future works 34 ● Linux-FIB’s Limitation ○ Designed for basic ip forwarding only ○ ex. can’t perform flowspec (necessary iptables) ○ Special implementation is needed (as well vlan/arp) ● Feature stability is needed ○ c-plane resource isolation ○ enhance UI, stats, VRF, ACL ○ support new protocol ● Performance Evaluation ○ only 2 developer, we want you

Slide 35

Slide 35 text

Copyright © NTT Communications Corporation. All rights reserved. Summary 35 ● High-speed custom-made software router for the era of 100GbE-capable in software ● Targeting to the SDN/NFV ● Extensibility (Custom for the Special-purpose box and/or service) ● Contact: [email protected]

Slide 36

Slide 36 text

Copyright © NTT Communications Corporation. All rights reserved. That’s ALL :) Thanks for listening. Any Question? [email protected]

Slide 37

Slide 37 text

Copyright © NTT Communications Corporation. All rights reserved. ● Related Mechanizm ● About Poptrie ● DPDK Introduction ● high speed packet transmission with software ● other software router implementations ● others Appendix:

Slide 38

Slide 38 text

Copyright © NTT Communications Corporation. All rights reserved. Appendix: Related Mechanisms

Slide 39

Slide 39 text

Copyright © NTT Communications Corporation. All rights reserved. 39

Slide 40

Slide 40 text

Copyright © NTT Communications Corporation. All rights reserved. D-plane Mechanizm 40

Slide 41

Slide 41 text

Copyright © NTT Communications Corporation. All rights reserved. ARP Design 41 基本は別スレッドが担当する . 内部の独自メッセージパッシング方式で行う 低速スレッドでやる 現在はneighborという名前でやっている LinuxKernelにARPを送ってもらう方法が見つからなかったから DPDK側に実装している IP FIBと同じく, DPDK側にARPのFIBを持つ

Slide 42

Slide 42 text

Copyright © NTT Communications Corporation. All rights reserved. Linux FIB限界をどうやって解決するか 42 - 現在は, Linuxのnetlinkから流れてくる内容で コンフィグをしている - フルスクラッチする or Linux FIBを拡張する - bgp flowspecが対応できない. - かと言って, iptablesを移植するのは難しそう .. - gobgpがFIBを外だししたように, kamueeもRIBを外だししたい - 直接gobgpとはgrpcで繋ぐという手もある - 今後の多様で急速なネットワークプロトコルに対応するの が難しい. -> このままだとね. - 成長速度がLinuxの速度を超えられない - 独自実装はだんだん闇 ... - 独自実装, Linux連携, その他連携の三つを 綺麗に分離したい - LinuxもさいきんVRFとかできるようになったし - 例えば, vlan/arpは独自実装

Slide 43

Slide 43 text

Copyright © NTT Communications Corporation. All rights reserved. RCU (Read Copy Update) 43 説明用スライドを作ってないから , いまは他人の受け売り 引用: http://tkokamo.hateblo.jp/entry/2017/08/12/191142

Slide 44

Slide 44 text

Copyright © NTT Communications Corporation. All rights reserved. FIB Updating Algorithm 44 Using RCU enables forwarding thread can access FIB as a lockfree. RCU with QSBR algorithm provides the best bandwidth throughput and frames per second throughput when handling 64 byte packets. ref: Y.Ohara, Y.Yamagishi, Kamuee Zero, IC’2016

Slide 45

Slide 45 text

Copyright © NTT Communications Corporation. All rights reserved. Netlink (Rivisited) 45 - netlink はカーネルモジュールとユーザー空間のプロセス間で 情報をやりとりするために用いられる 特別なIPC方式. - カーネルとユーザで全移住通信のリンクを提供し , カーネルの ネットワーク機能に対する様々な設定関連のシグナルがなが される. - netlinkを監視することで, Linux Kernelに対するルーティング 経路の追加, アドレス設定, リンクアップ等の様々な情報を知 ることができる. - netlink は、ユーザープロセスに対しては 標準的なソケット ベースのインターフェースを、 カーネルモジュールにはカーネルの内部 API を提供する。 - netlink はデータグラム指向のサービスである。 - Cumulus でも採用されている構造である .

Slide 46

Slide 46 text

Copyright © NTT Communications Corporation. All rights reserved. Lthread as a Lightweight Thread 46 Tasks to be needed as a fast ● dplane: packet forwarding Tasks to be not needed as a fast ● cplane: routing protocol ● cplane: UI ただ, 扱いが難しいから今後 pthreadに 移行する可能性あり

Slide 47

Slide 47 text

Copyright © NTT Communications Corporation. All rights reserved. Appendix: About Poptrie

Slide 48

Slide 48 text

Copyright © NTT Communications Corporation. All rights reserved. 48

Slide 49

Slide 49 text

Copyright © NTT Communications Corporation. All rights reserved. 49

Slide 50

Slide 50 text

Copyright © NTT Communications Corporation. All rights reserved. 50

Slide 51

Slide 51 text

Copyright © NTT Communications Corporation. All rights reserved. 51

Slide 52

Slide 52 text

Copyright © NTT Communications Corporation. All rights reserved. 52

Slide 53

Slide 53 text

Copyright © NTT Communications Corporation. All rights reserved. Appendix: DPDK Introduction before using it

Slide 54

Slide 54 text

Copyright © NTT Communications Corporation. All rights reserved. DPDK: Open Source Status 54 ref: https://dpdksummit.com/Archive/pdf/2016Germany/DPDK-2016-DPDK_FD_IO_Introduction.pdf

Slide 55

Slide 55 text

Copyright © NTT Communications Corporation. All rights reserved. DPDK Overview 55 ref: https://dpdksummit.com/Archive/pdf/2016Germany/DPDK-2016-DPDK_FD_IO_Introduction.pdf DPDK is the Data Plane Development Kit that consists of libraries to accelerate packet processing workloads running on a wide variety of CPU architectures. (by www.dpdk.org)

Slide 56

Slide 56 text

Copyright © NTT Communications Corporation. All rights reserved. Packet Processing on Linux Kernel 56 There are some mechanisms makes network-application slow. Because Linux is not developed for the fast packet processing, it is developed for the general purpose use. 1. Memory Copy 2. Context Switch 3. Fat Network Stack 4. Task Scheduler

Slide 57

Slide 57 text

Copyright © NTT Communications Corporation. All rights reserved. Packet Processing on DPDK 57 DPDK is set of libraries for fast packet processing it uses some mechanizm to bypass Kernel-Network-Stack. (UIO,isolcpu, pthread-setaffinity, special Memory management with hugepages) 1. No Memory Copy 2. No Context Switch 3. Full scratch for perf 4. Avoid Task Scheduler

Slide 58

Slide 58 text

Copyright © NTT Communications Corporation. All rights reserved. Multi Architecture/NIC Support 58 ref: https://dpdksummit.com/Archive/pdf/2016Germany/DPDK-2016-DPDK_FD_IO_Introduction.pdf

Slide 59

Slide 59 text

Copyright © NTT Communications Corporation. All rights reserved. Run to Completion Model & Pipeline Model 59 FYI: Kamuee uses Run to Completion model Lagopus uses Pipeline model

Slide 60

Slide 60 text

Copyright © NTT Communications Corporation. All rights reserved. DPDK: Official Information 60 Official Site http://www.dpdk.org Documentation Root https://doc.dpdk.org/guides/index.html Sample Code Guide https://doc.dpdk.org/guides/sample_app_ug/index.html Programmer’s Guide https://doc.dpdk.org/guides/prog_guide/index.html Getting Start Guide https://doc.dpdk.org/guides/linux_gsg/index.html API Documentation https://doc.dpdk.org/api/

Slide 61

Slide 61 text

Copyright © NTT Communications Corporation. All rights reserved. Appendix: High Speed Packet Transmission with Software

Slide 62

Slide 62 text

Copyright © NTT Communications Corporation. All rights reserved. 復習: 100Gbps 64byteだと148 Mpps!! 62 時間なんて圧倒的に足りない . たったの20clockで何ができますか... 現在はたくさんCPUのコアがあるよ 40コア程度は積む時代になってきた もうシングルスレッドでは間に合わない 必要な概念 ● コンピュータ理論基礎 (NUMA,キャッシュ,etc..) ● 並列処理の概念 ● 強い心 上記は, 1コアで20clock 2コアだったら40clockでいける. (と考えることができる . わかりますか)

Slide 63

Slide 63 text

Copyright © NTT Communications Corporation. All rights reserved. 復習: 計算機は早いとこと遅いとこがある 63

Slide 64

Slide 64 text

Copyright © NTT Communications Corporation. All rights reserved. フォワーディング性能を実現するステップ 64 性能目標達成のために必要不可欠な技術要素 100GbEルータの場合 ①ルータの仕事は... 1. パケットの受信 2. パケット処理 2.1. 転送先経路の検索 2.2. 若干のパケットの書き換え (TTL減算, checksum計算等) 3. パケットの送信 ②パケット送受信は... DPDKを使って, IAサーバを使いこなす必要がある . - 正しいコアを使うこと - マルチコアを活用すること - 必要に応じてHW支援機構を使う

Slide 65

Slide 65 text

Copyright © NTT Communications Corporation. All rights reserved. 復習..?: IAサーバを理解する (NUMA編) NUMA: Non-Uniform Memory Access, メモリ/デバイスのアクセスコストが任意のコアで均等になっていない構造 どのNICに対してどのCoreからアクセスをするか 65

Slide 66

Slide 66 text

Copyright © NTT Communications Corporation. All rights reserved. NUMA: Back/Straight/Cross 66 CPUを跨がないから性能が良い CPUを1度またぐから性能は落ちるが , 仕方ない CPUを2度またぐから性能は落ちるし , 防げる コアの割り当てを正しく行わないと , 計算機の性能が全く出ない. マルチコアを活用する以前の問題である 現状では, コアの割り当て等に関しては, プログラマや運用者が手動でチューニングし ている場合は多い

Slide 67

Slide 67 text

Copyright © NTT Communications Corporation. All rights reserved. マルチコアへの負荷分散方式 (負荷分散ポイントに注目) 67 - RSS: Receive Side Scaling -> NICの機能 - RPS: Receive Packet Steering -> RSSをソフトウェア的に実現したもの

Slide 68

Slide 68 text

Copyright © NTT Communications Corporation. All rights reserved. マルチコア活用術: 負荷分散3種類 68 ハードウェアによる負荷分散 CPUに無駄なリソースを割かない Kamueeはこのタイプ ロックフリー実現可能 ソフトウェアによる負荷分散 LBとかはよくのこの方式を用いる 特別なHW支援機構を必要としない ロックフリー実現可能 ソフトウェアによる負荷分散 排他制御を行うことで , RSSと同じ構造を作る. ロックフリー実現不可能 . 10GbE以上では, ロックがボトルネック で, マルチコアの利点すら 薄れてしまう. パケット処理に関してスレッド間で排他制 御があると辛い. せっかくRSSでコスト0 で負荷分散したのに, それすら打ち消さ れる このどちらかを使おう. ロックはだめ.

Slide 69

Slide 69 text

Copyright © NTT Communications Corporation. All rights reserved. Run to Completion Model & Pipeline Model 69 簡略化のために 10GbE x 2port 版 で説明 KamueeはRun to Completion LagopusはPipeline

Slide 70

Slide 70 text

Copyright © NTT Communications Corporation. All rights reserved. 100GbEを実現するには 70 単純なルータとして.. ● フォワーディング性能を最適化する ○ 正しいコアを使おう. (Bad NUMAに気をつける) ○ 負荷分散ポイントに気をつける (適宜HW支援機構を使う) ○ マルチコアを最大限に活用する ○ ロック等の排他制御は限りなく排除する . (パケット処理中はロックフリーでやる ) ● 我々でもまだわからないことがあるのは事実 ○ 低レイヤの沼のようなものがたくさん ○ チューニングミスだったり ○ メモリの扱いのせいだったり ○ HWのせいだったり 

Slide 71

Slide 71 text

Copyright © NTT Communications Corporation. All rights reserved. Appendix: Other Software Router Implementations

Slide 72

Slide 72 text

Copyright © NTT Communications Corporation. All rights reserved. Zebra/Quagga/FRR 72 - 元祖, ルーティングソフトウェア - LinuxのFIBに対して経路を注入する Zebra - ルーティングプロトコルを喋り , 計算をした経路を Zebraに注入する各ルーティングデーモン (bgpd, ospfd, etc...) - オープンソースのソフトウェアルータの ありとあらゆる場面で活用されている . - telnet localhost 2601 でVTYに入り操作する. - 最近Flowspecのcplaneを喋れるようになった . (要iptables)

Slide 73

Slide 73 text

Copyright © NTT Communications Corporation. All rights reserved. GoBGP 73 EVPN, VRF, BGP flowspec等の最新のprotocolを実装 gRPCによって, 操作できるため open dataplaneに対応しやすい

Slide 74

Slide 74 text

Copyright © NTT Communications Corporation. All rights reserved. FD.io Vector Packet Processing (VPP) 74 ● DPDKを用いた, ネットワークスタックフレームワーク . ● DPDKにないプロトコルの実装を進める プロジェクトである. ● Interop18ではSRのルータとして動いていた ● Quaggaと連携する機能も開発されており もっとも強大なライバルかもしれない

Slide 75

Slide 75 text

Copyright © NTT Communications Corporation. All rights reserved. NTT未来ねっと研究所 Lagopus Switch/Router 75 - NTTの開発するOSSのソフトウェアルータ - 以前はOpenFlow Switchのみの機能だった - Netlinkを監視するスタイル - データプレーンはDPDKを用いたC言語だが, パケット処理はcgoを用いて, Golangで書か れていることが特徴 - Zebra2.0の構造を採用した, dplaneとして動 作することにより, シームレスにルータになる ことができた.

Slide 76

Slide 76 text

Copyright © NTT Communications Corporation. All rights reserved. IP Infusion VirNOS 76

Slide 77

Slide 77 text

Copyright © NTT Communications Corporation. All rights reserved. Juniper vMX 77 c-plane, d-planeをVM分離しているモデル . HVスイッチを用いて, c/pを接続する cplaneはFreeBSDのJunos, dplaneはwind river linuxでDPDKが動いているっぽい . (詳しいことはまだ自信ないです ...)

Slide 78

Slide 78 text

Copyright © NTT Communications Corporation. All rights reserved. Cumulus Networks Cumulus Linux (whitebox os) 78 Netlinkがキモである Netlinkを監視して, それによって, sw-asicを設定するデーモン switchdが動く

Slide 79

Slide 79 text

Copyright © NTT Communications Corporation. All rights reserved. Appendix: Others

Slide 80

Slide 80 text

Copyright © NTT Communications Corporation. All rights reserved. 最近ハードウェアルータが安くなってきた 80 巨大ルータベンダが ”NFVのコスト削減による神話 ”を破 壊し始めた. Juniper「100GbE x8, 数千万で売っても大丈夫」 僕ら  「100GbE x4, 500万で, ドヤァ」 Juniper「もうぼったくりできない」 Juniper「100GbE x4, 500万で」 僕ら 「.....」 コストダウンだけが, ソフトウェアの利点ではない ソフトウェアは機能追加が早い 今は仮想化基盤がそこらじゅうにある サーバも余っている場所がたくさんある バージョンアップに, HW追加がいらない 構成変更が迅速にできる