Date post: | 16-Jul-2015 |
Category: |
Technology |
Upload: | tail-f-systems |
View: | 375 times |
Download: | 7 times |
2©2015 Tail-f Systems all rights reserved February 13, 2015
What is ConfD?
ConfD provides a data-model driven management plane framework which provides a variety of standards-based northbound management interfaces for use in building network elements:
Physical Network DevicesVirtual Network Devices
(VNF in NFV)Network Appliancesetc.
3©2015 Tail-f Systems all rights reserved February 13, 2015
How is ConfD different?
SNMP agentCLI engineNETCONF server…
Protocol Focused Agents
Stove-pipeFeature-lagJust the protocol layer
Data-model drivenAny protocol
ConfD
All protocolsNo feature lagCore engine
4©2015 Tail-f Systems all rights reserved February 13, 2015
ConfD Overview
Network
Element
NETCONF SNMP REST CLI Web
Database Data Provider API
Managed Object API
Management Agent API
OSS/BSS
MO MOMO
ConfD Core Engine
MO
External
DatabaseOperational
Data
MO
5©2015 Tail-f Systems all rights reserved February 13, 2015
ConfD Overview
Network
Element
NETCONF SNMP REST CLI Web
CDB
DatabaseData Provider API
CDB API
Management Agent API
OSS/BSS
App AppApp
ConfD Core Engine
App
External
DatabaseOperational
Data
App
Management Agent API
Auto-rendered management interfaces and data schema
YANGData Models
6©2015 Tail-f Systems all rights reserved February 13, 2015
True Model-Driven
• Information models (UML, SID, …)
• Important for communication between domain experts
• Needs “mapping” to data-models
• Data Models
• Concrete
• Means something in reality
• Tail-f story
• Core-engine driven by data-models
• No stubs!
• Translators to information models, UML, SID, …
• You can execute with the data-model only
• CLI
• WebUI
• Database
• …
• YANG – RFC 6020
• IETF greybeards
• Concrete, precise, semantically rich
• Clarity – “anyone” can read
• Precision – self documenting
• Modular data models
• Extensible language
• Code generation
7©2015 Tail-f Systems all rights reserved February 13, 2015
YANG Example
module sys {
namespace "urn:sys";
prefix sys;
import tailf-common {
prefix tailf;
}
typedef interface-name {
type string {
length "min .. 30";
pattern "[A-Za-z][^/:.]*";
}
}
8©2015 Tail-f Systems all rights reserved February 13, 2015
YANG Example (cont.)
container sys {
container numbers {
leaf odd {
type int32;
default 1;
must "(. mod 2) = 1" {
error-message "can only be an odd number";
tailf:dependency ".";
}
} }
list ifc {
key name;
max-elements 1024;
leaf name {
type interface-name;
}
leaf enabled {
type boolean;
default true;
}
9©2015 Tail-f Systems all rights reserved February 13, 2015
YANG Example (cont.)
list labels {
key string;
max-elements 16;
description
"A label is an alphanumeric string assigned to an
interface. Each interface can have many labels. The
purpose here is simply to show a must validation that
requires the labels to be unique for all interfaces.”; leaf string {
type string {
length "1..31";
pattern "[a-zA-Z][a-zA-Z0-9_-]*";
}
must "not(/sys:sys/sys:ifc[name = current()])" {
error-message
"A label can not be the same as an interface name";
tailf:dependency "/sys/ifc/name";
}
must "count(/sys/ifc/labels[string = current()]) = 1" {
error-message "All labels must be unique";
tailf:dependency ".";
}
}
10©2015 Tail-f Systems all rights reserved February 13, 2015
ConfD OverviewConfD
NETCONF SNMP REST CLI Web
ConfD Core Engine
CDB
Database
Transaction Management
Session Management / Authentication
Role-based Access Control
Audit Trailing
Redundancy / Replication
Validation (syntactic and semantic)
Rollback Management
Upgrades and Downgrades
Data Provider API CDB API
Management Agent API
OperationalData
Counters
Alarms
StatisticsMO
External
Database Operational
Data
MO
Validation
API
Authentication
API
Radius
PAM
TACACS
Others
Operational Data
Operational
Data API
App AppApp
11©2015 Tail-f Systems all rights reserved February 13, 2015
ConfD Overview
API lib
App
IPC (via TCP Sockets)
Application Blades
Management Blade
= Unix/Linux process
NETCONF
ConfD
SNMP REST CLI WEB
API lib
App
API lib
App
API lib
App
API libraries available for: C, Erlang, Java, and Python (limited coverage)
12©2015 Tail-f Systems all rights reserved February 13, 2015
High Availability
NETCO
NF
Management Blade
ConfD
Configuration
Datastore
SN
MP
REST
CLI
Web
“Standby”
NETCO
NF
Management Blade
ConfD
Configuration
Datastore
SN
MP
REST
CLI
Web
Data Replication
“Active”
ApplicationBlade
13©2015 Tail-f Systems all rights reserved February 13, 2015
Integrated Database (CDB)
NETCONF SNMP REST CLI Web
CDBDatabase
Data Provider API
CDB API
Management Agent API
App AppApp
ConfD Core Engine
App
External DatabaseOperational
Data
App
• Hierarchical database
• ACID test compliant
• Atomicity, consistency, isolation, durability
• Fast, lightweight, fault-tolerant
• Compact binary XML format
• Memory resident with journal in persistent storage
• Schema automatically derived from YANG
• Supports 1:N data replication
• Supports automatic schema version up/downgrades
• CDB can hold some or all data
• Configuration data and/or Operational data
• External database can be used in addition to or instead of
• Automatic loading of initial data
• Applications read data, then subscribe to relevant configuration changes
• Subscription notifications with priority level ordering
• Multiple datastores per NETCONF standards
• Startup, running, candidate, operational
14©2015 Tail-f Systems all rights reserved February 13, 2015
NETCONF Interface
• IETF RFC 4741/6241
• Full implementation
• All mandatory and all optional capabilities
• RFC 4742/6242 NETCONF over SSH
• Streams XML over SSH
• Separates operational datafrom configuration
• Distributed transactions
• RFC 5277 NETCONF notifications
• Support included for various IETF standardized YANG data models
<get-config>
<edit-config>
<delete-config>
<lock>
<unlock>
<get>
<close-session>
<kill-session>
<commit>
<discard-changes>
:writeable-running
:candidate
:confirmed-commit
:rollback-on-error
:validate
:startup
:URL
:XPath
NETCONF OPERATIONS
NETCONF CAPABILITIES
NETCONF SNMP REST CLI Web
CDBDatabase
Data Provider API
CDB API
Management Agent API
App AppApp
ConfD Core Engine
App
External DatabaseOperational
Data
App
15©2015 Tail-f Systems all rights reserved February 13, 2015
SNMP Agent
• SNMP machine interface
• Any combination of v1, v2c, v3
• Supports all operations
• Send SNMP notifications (traps)
• MIBs implemented by ConfD include:
• RFC-3411 (SNMP-FRAMEWORK-MIB)
• RFC-3414 (USM)
• RFC-3415 (VACM)
• RFC-3418 (SNMPv2-MIB)
• MIB to YANG translator
• YANG to MIB translator
NETCONF SNMP REST CLI Web
CDBDatabase
Data Provider API
CDB API
Management Agent API
App AppApp
ConfD Core Engine
App
External DatabaseOperational
Data
App
16©2015 Tail-f Systems all rights reserved February 13, 2015
Command Line Interface (CLI)
• Auto rendering of three CLI styles:
• Cisco – XR style
• Cisco – legacy IOS style
• Juniper – JUNOS style
• Rich editing with tab-completion for commands,static elements and dynamic instances
• History, hints, help
• Extensible with custom/external commands, wizards
• Typically runs over SSH
NETCONF SNMP REST CLI Web
CDBDatabase
Data Provider API
CDB API
Management Agent API
App AppApp
ConfD Core Engine
App
External DatabaseOperational
Data
App
17©2015 Tail-f Systems all rights reserved February 13, 2015
Web
• JSON RPC API
• Access data
• Run transactions and rollbacks
• Do validation
• Execute actions
• Access data model schema information
• Customer choice of toolsets and frameworks
• Preserve existing Web content
• Example of how to implement an auto-rendered Web UI provided
• Supports HTTP and HTTPS
18©2015 Tail-f Systems all rights reserved February 13, 2015
REST
• Relies on verbs of transport layer:
• HTTP 1.1
• GET : get resources
• Selectors : shallow, deep
• PUT : replace existing resource
• POST : create resource
• DELETE : delete resource
• PATCH (RFC5789) : modify existing resource
• HEAD, OPTIONS
• Stateless, client-server
• Hyperlinked, just like the web
• XML or JSON as data containers
• Links to available data-stores and operations
NETCONF SNMP REST CLI Web
CDBDatabase
Data Provider API
CDB API
Management Agent API
App AppApp
ConfD Core Engine
App
External DatabaseOperational
Data
App
$curl –u admin:admin –s http://localhost:8008/api
• /api/running
• /api/candidate
• /api/operations
• /api/operational
• /api/rollback
19©2015 Tail-f Systems all rights reserved February 13, 2015
Why ConfD
Make your customer happy
Make your device
• Manageable
• Programmable
• Standards -compliant
Save time
• Render management interfaces
• Model-driven
• Iterative development
• NETCONF, CLI, SNMP, REST, Web
• Transactions and rollbacks
• Validations
• Configuration and monitoring
• No feature lag
• Core components
• Embedded database
• Domain-specific functions
• Rich APIs
• Well-tested, 70+ customers
21©2015 Tail-f Systems all rights reserved February 13, 2015
Data Provider API
A transaction can be viewed as a conceptual state machine
• Phases of a transaction correspond to states
• API transaction callback function invocations are state transitions
Start
Read
Prepare
Write
Validate
Abort Commit
init()
commit()
prepare()
write_start()
trans_lock()trans_unlock()
finish()
abort()
finish()
finish()
get_next()
get_elem()
finish()finish()
set_elem()
create()
remove()
get_next()
get_elem()