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
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