狠狠撸

狠狠撸Share a Scribd company logo
0Copyright?2015 NTT corp. All Rights Reserved.
Lagopus Router
2018/03/01
日比智也
Lagopus User Community
NTT未来ねっと研究所
0
1Copyright?2015 NTT corp. All Rights Reserved.
? Develops SDN/NFV software node for carrier networks to
realize
? Differentiate services / Time-to-Market / Cost-efficiency
? Supported by
? The Ministry of Internal Affairs and Communications of Japan (April,
2013 - March, 2016)
? NTT (April, 2013 -)
? Release
? Lagopus software OpenFlow 1.3 switch (July, 2014 - )
? https://github.com/lagopus/lagopus
? Lagopus software router (Aug., 2017 - )
? https://github.com/lagopus/lagopus-router (alpha version)
Lagopus Project
2Copyright?2015 NTT corp. All Rights Reserved.
? Pure OpenFlow 1.3 Software Switch with Tunnel
Extensions
? Open soure under Apache v2 license
(https://github.com/lagopus/lagopus)
? High Performance with DPDK (over 20Mpps, over 1M flow entries)
? Best OpenFlow 1.3 compliant software switch by Ryu certification
? Provides good programmability for stateless network functions (e.g.
SDN-IX)
? Difficult to handle stateful/complicate protocols such as
? VRRP, ICMP(e.g. reply too large), IPv4 fragmentation, IPsec
Lagopus Switch
3Copyright?2015 NTT corp. All Rights Reserved.
OpenFlow?
? どういうパケットだったら
? 受信ポート番号,パケットヘッダの値(宛先,ソース,各種ID...)
? どういう処理をする
? パケットヘッダの追加,削除,編集
? 転送(ユニキャスト,マルチキャスト,ロードバランシング...)
? コントローラにパケットを転送して処理も可能
OpenFlow コントローラ
コントロールプレーン
OpenFlow
プロトコル
OpenFlow スイッチ
データプレーン
Flow Table
フローパターン アクション
フローパターン アクション カウンター
カウンター
Flow
Table
#2
Flow
Table
#3
Flow
Table
#4
4Copyright?2015 NTT corp. All Rights Reserved.
? Lagopus Switch から Lagopus Routerに
? OpenFlow Switchで開発した柔軟なフロー検索と処理に加え,様々なネット
ワーク制御系アプリやオーケストレーションと連携可能とする
? ルータの備える標準的なプロトコル制御機能
? オーバーレイネットワークを実現するVxLANやGRE
? 暗号化(IPsec)の終端機能
新Lagopus
5Copyright?2015 NTT corp. All Rights Reserved.
Lagopus routerの特徴
? 既存インフラへの導入を容易とするSDN対応ソフトウェアルータ
? ルータとしての基本機能(経路交換、VRF、冗長化、管理/監視イン
タフェースなど)を備え、APIを利用して機能拡張も容易
SDNコントローラ
経路
交換
冗長化
管理
監視
提供したい
サービス
SDNスイッチ
SDNコントローラ
提供したいサービス
Lagopus
経路
交換
既存インフラへの接続のため様々な
アプリケーションの実装が必要
?提供したいサービスアプリのみ実装
?スイッチへの柔軟な機能拡張
6Copyright?2015 NTT corp. All Rights Reserved.
? Loose coupled modular-based
design (like a microservice
architecture)
? Unified configuration datastore
? Configuration defined by yang
? Pub/Sub-like APIs, config datastore
as a broker
? Using existing routing agents
? Slightly modified for APIs
? High performance/extensibility
dataplane
? Fast path written in C + DPDK
? Slow path written in go
Design
Lagopus Router
Routing agent VRRP agent IKE agent MAT agent
Dataplane
Dataplane framework
Network
Interface
L2
(Bridging)
L3
(Routing)
IPsec
(crypto)
Config datastore
SDN controller/Orchestrator CLI
gRPC
gRPC or NETLINK
7Copyright?2015 NTT corp. All Rights Reserved.
? Written in C + golang
? Packet Processing
? Written in C with DPDK for the performance
? Module managing and Handle control
packets
? Written in golang
? Subscribe configuration from the config datastore
? Protocol handling, likely ARP, ICMP, BGP with router
agens.
? More details
? Takanari Hayama, Using DPDK with Go, 2016
Dublin DPDK userspace
? https://dpdksummit.com/Archive/pdf/2017Userspa
ce/DPDK-Userspace2017-Day2-11-
using_dpdk_with_go.pdf
Architecture of a dataplane module
Modules that require
performance
Control in Go
Packet Processing
in C
Input
Ring
Ring Ring
References
to Output
Rings
8Copyright?2015 NTT corp. All Rights Reserved.
? Openconfigd
? https://github.com/coreswitch/o
penconfigd
? Commit & Rollback support
configuration system in Zebra2.0
? Configuration is defined by YANG
model
? Automatically generates APIs
? gRPC
? CLI with completion/show/config
Config Datastore
Routing agentRouting agent
Router agent
gRPC
OpenConfigd
YangAuto generate
DBAPIs
CLIOrchestrator
Subscrive config subtree
with two-phase commit
Commits
/Results
9Copyright?2015 NTT corp. All Rights Reserved.
? 参考
? /m-asama/openconfigd-82986150
? Yangの変更によるCLIの生成
? (時間があれば)サンプルアプリケーション
Config Datastore demo
10Copyright?2015 NTT corp. All Rights Reserved.
? Aug. 2017
? Alpha release
? Simple L3 module with VRF and
VRRP
? 2018.1Q
? Beta release
? L2 module
? L3 Tunnel module (IP/IP)
? Match and Actions Tables
? Stats module
? Performance tuning
Roadmap
? 2018.2Q
? IPsec module(IKE v1/v2,
AES256/SHA-2)
? L2 Tunnel module (VxLAN)
? Future works
? NAT
? IPv6
? MPLS
? BGP Flowspec
? ACL
? xFlow
11Copyright?2015 NTT corp. All Rights Reserved.
? Lagopus
? https://lagopus.org
? Github
? https://github.com/lagopus/lagopus
? Lagopus books (英語)
? http://www.lagopus.org/lagopus-book/en/html/
? Mailing list (英語,開発者向け)
? https://lists.sourceforge.net/lists/listinfo/lagopus-devel
? Slack
? https://lagopus-project-slack.herokuapp.com/
参考
12Copyright?2015 NTT corp. All Rights Reserved.
?ご清聴ありがとうございました
12
########
## ;;;; ##
## #### ##
#### ##
## ## ####
##### ######## ##
############## ## ##
### ######## ## ##
#### ## ## ## #### ##
#### ## ## ## ## ##
###### #### ####
#### #### ##########
####################
mmmm ##
##########

More Related Content

Lagopus Router

  • 1. 0Copyright?2015 NTT corp. All Rights Reserved. Lagopus Router 2018/03/01 日比智也 Lagopus User Community NTT未来ねっと研究所 0
  • 2. 1Copyright?2015 NTT corp. All Rights Reserved. ? Develops SDN/NFV software node for carrier networks to realize ? Differentiate services / Time-to-Market / Cost-efficiency ? Supported by ? The Ministry of Internal Affairs and Communications of Japan (April, 2013 - March, 2016) ? NTT (April, 2013 -) ? Release ? Lagopus software OpenFlow 1.3 switch (July, 2014 - ) ? https://github.com/lagopus/lagopus ? Lagopus software router (Aug., 2017 - ) ? https://github.com/lagopus/lagopus-router (alpha version) Lagopus Project
  • 3. 2Copyright?2015 NTT corp. All Rights Reserved. ? Pure OpenFlow 1.3 Software Switch with Tunnel Extensions ? Open soure under Apache v2 license (https://github.com/lagopus/lagopus) ? High Performance with DPDK (over 20Mpps, over 1M flow entries) ? Best OpenFlow 1.3 compliant software switch by Ryu certification ? Provides good programmability for stateless network functions (e.g. SDN-IX) ? Difficult to handle stateful/complicate protocols such as ? VRRP, ICMP(e.g. reply too large), IPv4 fragmentation, IPsec Lagopus Switch
  • 4. 3Copyright?2015 NTT corp. All Rights Reserved. OpenFlow? ? どういうパケットだったら ? 受信ポート番号,パケットヘッダの値(宛先,ソース,各種ID...) ? どういう処理をする ? パケットヘッダの追加,削除,編集 ? 転送(ユニキャスト,マルチキャスト,ロードバランシング...) ? コントローラにパケットを転送して処理も可能 OpenFlow コントローラ コントロールプレーン OpenFlow プロトコル OpenFlow スイッチ データプレーン Flow Table フローパターン アクション フローパターン アクション カウンター カウンター Flow Table #2 Flow Table #3 Flow Table #4
  • 5. 4Copyright?2015 NTT corp. All Rights Reserved. ? Lagopus Switch から Lagopus Routerに ? OpenFlow Switchで開発した柔軟なフロー検索と処理に加え,様々なネット ワーク制御系アプリやオーケストレーションと連携可能とする ? ルータの備える標準的なプロトコル制御機能 ? オーバーレイネットワークを実現するVxLANやGRE ? 暗号化(IPsec)の終端機能 新Lagopus
  • 6. 5Copyright?2015 NTT corp. All Rights Reserved. Lagopus routerの特徴 ? 既存インフラへの導入を容易とするSDN対応ソフトウェアルータ ? ルータとしての基本機能(経路交換、VRF、冗長化、管理/監視イン タフェースなど)を備え、APIを利用して機能拡張も容易 SDNコントローラ 経路 交換 冗長化 管理 監視 提供したい サービス SDNスイッチ SDNコントローラ 提供したいサービス Lagopus 経路 交換 既存インフラへの接続のため様々な アプリケーションの実装が必要 ?提供したいサービスアプリのみ実装 ?スイッチへの柔軟な機能拡張
  • 7. 6Copyright?2015 NTT corp. All Rights Reserved. ? Loose coupled modular-based design (like a microservice architecture) ? Unified configuration datastore ? Configuration defined by yang ? Pub/Sub-like APIs, config datastore as a broker ? Using existing routing agents ? Slightly modified for APIs ? High performance/extensibility dataplane ? Fast path written in C + DPDK ? Slow path written in go Design Lagopus Router Routing agent VRRP agent IKE agent MAT agent Dataplane Dataplane framework Network Interface L2 (Bridging) L3 (Routing) IPsec (crypto) Config datastore SDN controller/Orchestrator CLI gRPC gRPC or NETLINK
  • 8. 7Copyright?2015 NTT corp. All Rights Reserved. ? Written in C + golang ? Packet Processing ? Written in C with DPDK for the performance ? Module managing and Handle control packets ? Written in golang ? Subscribe configuration from the config datastore ? Protocol handling, likely ARP, ICMP, BGP with router agens. ? More details ? Takanari Hayama, Using DPDK with Go, 2016 Dublin DPDK userspace ? https://dpdksummit.com/Archive/pdf/2017Userspa ce/DPDK-Userspace2017-Day2-11- using_dpdk_with_go.pdf Architecture of a dataplane module Modules that require performance Control in Go Packet Processing in C Input Ring Ring Ring References to Output Rings
  • 9. 8Copyright?2015 NTT corp. All Rights Reserved. ? Openconfigd ? https://github.com/coreswitch/o penconfigd ? Commit & Rollback support configuration system in Zebra2.0 ? Configuration is defined by YANG model ? Automatically generates APIs ? gRPC ? CLI with completion/show/config Config Datastore Routing agentRouting agent Router agent gRPC OpenConfigd YangAuto generate DBAPIs CLIOrchestrator Subscrive config subtree with two-phase commit Commits /Results
  • 10. 9Copyright?2015 NTT corp. All Rights Reserved. ? 参考 ? /m-asama/openconfigd-82986150 ? Yangの変更によるCLIの生成 ? (時間があれば)サンプルアプリケーション Config Datastore demo
  • 11. 10Copyright?2015 NTT corp. All Rights Reserved. ? Aug. 2017 ? Alpha release ? Simple L3 module with VRF and VRRP ? 2018.1Q ? Beta release ? L2 module ? L3 Tunnel module (IP/IP) ? Match and Actions Tables ? Stats module ? Performance tuning Roadmap ? 2018.2Q ? IPsec module(IKE v1/v2, AES256/SHA-2) ? L2 Tunnel module (VxLAN) ? Future works ? NAT ? IPv6 ? MPLS ? BGP Flowspec ? ACL ? xFlow
  • 12. 11Copyright?2015 NTT corp. All Rights Reserved. ? Lagopus ? https://lagopus.org ? Github ? https://github.com/lagopus/lagopus ? Lagopus books (英語) ? http://www.lagopus.org/lagopus-book/en/html/ ? Mailing list (英語,開発者向け) ? https://lists.sourceforge.net/lists/listinfo/lagopus-devel ? Slack ? https://lagopus-project-slack.herokuapp.com/ 参考
  • 13. 12Copyright?2015 NTT corp. All Rights Reserved. ?ご清聴ありがとうございました 12 ######## ## ;;;; ## ## #### ## #### ## ## ## #### ##### ######## ## ############## ## ## ### ######## ## ## #### ## ## ## #### ## #### ## ## ## ## ## ###### #### #### #### #### ########## #################### mmmm ## ##########