Top Banner
ASD Junho Lee 23 May 2016 NSO Intro, Usecase, Demo NSO 소개
34

NSO Introduction

Apr 12, 2017

Download

Internet

Junho Lee
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: NSO Introduction

ASD Junho Lee

23 May 2016

NSO Intro, Usecase, DemoNSO 소개

Page 2: NSO Introduction

NSO Intro

Page 3: NSO Introduction

• CLI를 기반으로 하는 작업 – Router/Switch è 벤더/제품 마다 명령어다름

• Web을 기반으로 하는 작업 – Firewall è 요청 때마다 Rule 추가만 함

• Business Agility 요구 증대로 클라우드/가상화의 등장 è 매우복잡해짐에 따라 수 작업 중심의 관리의 한계

• 네트워크 관리자는• 버전별 벤더 제품에 대한 전체적인 지식이 요구됨• 네트워크 현황에 대한 전반적인 History를 파악하고 있어야 함• 신속한 구성을 할 수 있는 역량이 요구됨

네트워크 관리의 현주소

Page 4: NSO Introduction

• CLI를 기반으로 하는 작업 – Router/Switch è 버전별 스크립트를미리 생성해 두고 활용

• Web을 기반으로 하는작업 – Firewall è 방화벽 처리 업무를까다롭게 만들어서 시간을 확보

• Business Agility 요구 증대로 클라우드/가상화의 등장 è SDN/NFV의검토

현행의 어떤 솔루션도 전반적인 해결책을 제공해주지는 못하는 상태임

현행 이슈의 극복 방안

Page 5: NSO Introduction

• CLI를 기반으로하는 작업 –Router/Switch

Automation vs. Orchestration

• Web을 기반으로하는작업 –Firewall

• Business Agility 요구 증대로클라우드/가상화

Automation Orchestration• 벤더의 제품, 버전,

및 대수에 관계없이동일하게 자동 설정

• 방화벽 장비 종류에상관없이 동일하게자동 설정

• 요구하는 서비스형태에 따라자동으로 설정

• 특정 업무를 위해순차적으로 장비자동 설정

• 특정 업무를 위해순차적으로 장비자동 설정

• 특정 업무를 위해순차적으로 장비설정(VM 생성 포함)

Page 6: NSO Introduction

• Router/Switch 업무 è 더 이상 벤더별/버전별, 반복적인 작업을 할필요가 없어짐

• Firewall 업무 è 방화벽 관리가 서비스에 Binding됨으로 히스토리관리가 단순해 짐

• 클라우드/가상화 업무 è 서비스 중심으로 운영 업무 제공 가능하며Under layer에서 일어나는 복잡한 작업에 관여 안해도 됨

Automation/Orchestration은 단순하고 반복적이고 때로는 복잡한관리 업무를 완화시킬 수 있는 핵심 솔루션

네트워크 관리에 있어서 Automation/Orchestration 의미

Page 7: NSO Introduction

jBPM비즈니스 업무에 대한 순차 처리에 Focus가 되어 있는 관계로네트워크 업무에 활용하기에는 적합하지 않음

Orchestration 솔루션 소개

CloudifyTOSCA 기반으로 구현, 클라우드 관점의 순차 처리로 네트워크업무는 보조적인 수준의 기능을 제공하고 있음

UCSDCloupia script 기반으로 구현, 네트워크 관점의 순차 처리로네트워크 업무에 전문화되어 있으나 지원되는 장비 종류가한정되어 있음

Page 8: NSO Introduction

SNMP널리 활용되고 있는 네트워크 설정 자동화 기술이나, 표준 규격없는 MIB의 벤더 별 개별적인 제공으로 CLI에서 처리하는 만큼의관리 노력이 필요함

Automation 솔루션 소개

NetconfSNMP의 단점을 극복하기 위해 표준으로 제정하여 네트워크벤더에서 공통적으로 제공하고 있으나 XML 규격의 복잡성으로널리 활용되지는 못하고 있음

NSOSNMP와 Netconf의 단점을 극복하기 위해 네트워크 구성 업무를MVC 모델로 분리하여 MV는 Yang을 통한 추상화 C는 벤더스펙에 따라 제공하여 PNF/VNF/VMM에 관계없이 관리 제공

Page 9: NSO Introduction

NSO 소개

Network Equipment Drivers (NEDs)

Service Manager

Device Manager

Physical Networks Virtual Networks Network Apps

Service Model

DeviceModel

Applications

REST, NETCONF, Java, Python, Erlang, CLI, Web UI

Engineers

• NSO는 크게 Model과 View를제공하는 Device Manager/Service Manager와Control을 제공하는 NED로구성됨

• PNF, VNF, VNFM, EMS 등과연계하여 네트워크 구성제공함

• 네트워크 장비의 종류와버전에 관계 없이 구성 제공이가능함

• 이런 특성을 활용하여 End-to-End 네트워크 구성을 위한Orchestration이 가능함

• 구성에 대한 Transaction 기능을 제공함

VNFM

NETCONF, REST, SNMP, CLI, etc

• Controller Apps• EMS and NMS• Misc. (e.g. DNS)

“Network Service Orchestrator”

Page 10: NSO Introduction

Declarative programming vs. Imperative programming

정의

Imperative특정 정보를 제공하기 위해절차적으로 처리하는 방식

일반적인 어플리케이션개발에 활용됨

Fortran, Basic, C, C++, Legacy .NET, Legacy Java

Declarative동일한 구성을 제공하기위해 상태를 기술하는 방식

서버 구성, 네트워크 구성,병렬 처리에서 활용됨

Make, Autoconf, Ant, SQL, Prolog, Scala, Puppet, Chef

용도

예시

Page 11: NSO Introduction

Yang 소개 “Yet Another Next Generation”

YANG 은: • 읽기 쉽고 배우기 쉬움(Java/C 형태의

문법 제공)• 데이터 모델을 Tree 형태의 구조로

구성할 수 있음(OODB Schema와 유사)• Struct/Union과같은 타입 정의를 통한

재사용성• Augmentation을 통한 모델의 확장 제공• RPC를 통한 제어 기능 제공• 데이터 모델의 검증이 가능하도록 제약

조건의 지정이 용이• 모듈/서브 모듈 개념을 통한 모듈간

부모-자식 관계 설정 가능• 모델별 버전 관리가 가능함

q 데이터 모델링 언어§ 네트워크 디바이스의 설정 및 운영

데이터에 대한 모델 정의

§ 네트워크 디바이스에서 발생하는이벤트에 대한 형식 정의

§ NETCONF 프로토콜의 데이터모델을 기술하는데 활용

Page 12: NSO Introduction

Yang 예시Data Definitions

Lists with unique constraints

Mandatory constraints

Default values can be provided

Page 13: NSO Introduction

NSO 동작 원리

네트워크관리자

API

관리 웹 사이트NSO

네트워크구성 서비스

관리자

해당 서비스Yang 모델초기화

CISCO Device

Template

Juniper Device

Template

NeutronDevice

Template

etc.Template

NED NED NED NED

Physical Networks Virtual Networks Network Apps

VNFM • Controller Apps• EMS and NMS• Misc. (e.g. DNS)

Page 14: NSO Introduction

Device Template 예시

CISCO - IOSXR

Juniper - Junos

Page 15: NSO Introduction

Mapping Logic

mgmt-fw

rule

source-ip-prefix 10.1.1.0/24

source-port 161 udp

protocol udp

filter

from

source-address

protocol

source port

firewall

then

Yang 모델 Device 템플릿

• Yang 모델을 통한 데이터 정의 è Device 별 Template에 매핑

Page 16: NSO Introduction

• 현행 네트워크 관리에 있어서Rollback 개념은 없음

• 기존 설정을 Backup하고 작업후 문제 발생 시 전체 원복실시

• 다수의 장비가 얽힌경우원복의 절차가 매우 중요하며작업자 실수 확률이 매우 높음

1. 소스 관리의 Rollback에 준하는기능 제공

2. 실 작업 시 Commit Dry-run/Commit으로진행하며

3. 문제 발생 시 Commit의역순으로 Rollback 진행

4. 이전 단계로 모두 원복하는방법과 특정 시점만 원복하는방법 제공함

RollbackNSO Rollback 기능

Page 17: NSO Introduction

NSO 전체 아키텍처

Service Manager

Multi-Vendor Network

Network Engineer EMS/NMS

NETCONF REST CLI Web UI SNMP JAVA

OSS/BSS

NSO

AAA Core Engine

NETCONF

SNMP REST CLI

Network Element Drivers

MappingLogic Templates

Fast Map

Device ManagerNotification ReceiverAlarm Manager

ServiceModels

PackageManager

Script API

DeviceModels

DeveloperAPI

Page 18: NSO Introduction

NSO 전체 아키텍처(NFV 관점)

NFV INFRASTRUCTURE

VNFManager(s)

NFVO

OSS (RFS Fulfillment and Service Assurance)

SDN Controller

DC Overlay

SDN

CTCM / ESC

VNF3 VNF2 VNF1

VirtualizedInfrastructure Manager(s)

Openstack

• Generic Orchestration architecture that spans physical and virtual domains and migration

• Generic architecture for different use cases including mobility, vCPE and virtual Managed Services

PHYSICAL INFRASTRUCTURE

Hypervisor

EMS

BSS

Network Services Orchestrator

Page 19: NSO Introduction

NSO Usecase

Page 20: NSO Introduction

Customer Example: VPN ProvisioningBusiness Challenge:

Fast delivery of various types of VPNs (L2 and L3) and Carrier Ethernet 2.0 services for traffic separation in a dynamic, programmatic way.

Benefits with NSO:

• Provision complex VPNs spanning 50,000+ devices from multiple vendors using network-wide, transaction-safe features

• Juniper MX series core routers• Cisco for PE

• Overture, Adtran and ADVA for CE

• Develop VPN services using CLI templates of Java

• Support for provisioning, updating and removing VPNs using minimal diffs

• API integration with customer self-service portal, OSS, and analytics systems

Page 21: NSO Introduction

Customer Example: Firewall Rules ManagementBusiness Challenge:

Automation of firewall provisioning and distributed ACL rules management

Benefits with NSO:

• Manage ACL rules across multi-vendor network (e.g. Cisco ASA and Juniper SRX)

• Easy migration for rip-and-replace

• Atomic change sets with full transaction integrity and auto-rollback

• Model driven architecture allows for optimization of rules

Juniper SRX

NSO

Cisco ASA VMWarevShield

Rule1:SRC:192.168.1.128/28DST:10.26.10.0/23PROTO:TCPPORT:80..

Page 22: NSO Introduction

Customer Example: British Telecom’s NFV project

NETCONF & YANGinterfaces

NSO

Page 23: NSO Introduction

Customer Example: Nokia-Siemens Mobile TransportNetAct Network

Engineer

NSOSwitches and Routers• Cisco

• Juniper

• Etc.

Automation of IP service provisioning in mobile transportBusiness Driver:

Page 24: NSO Introduction

Public References85+ Customers Worldwide

§ Domain 2.0: Transformation to cloud-based network (NFV)• http://www.att.com/gen/press-room?pid=25274&cdvn=news&newsarticleid=37439

§ TeraStream: Transformation to cloud-based network (NFV)• http://www.tail-f.com/deutsche-telekom-selects-tail-f-as-provider-of-software-defined-

networking-sdn-in-terastream-project/• http://newsroom.cisco.com/press-release-content?type=webcontent&articleId=1600834

§ Equinix Cloud Exchange: Automated network and service provisioning• http://newsroom.cisco.com/press-release-content?type=webcontent&articleId=1601082

§ Multi-vendor NFV Trial for vEPC• https://www.nttdocomo.co.jp/english/info/media_center/pr/2014/1014_00.html

Page 25: NSO Introduction

NSO Demo

Page 26: NSO Introduction

NSO simple ACL provisioning/Lab topologySimulated IOS-XR127.0.0.1:12001 - 4

NSO serverlocalhost:8080/login

Simulated JunOS127.0.0.1:12205 - 8

Page 27: NSO Introduction

1. 데모 목적• NSO를 이용하여 IX계위에 존재하는 MX, XR 라우터들의 특정 인터페이스에 동일한 ACL을 동일 방향으로

적용/삭제.

2. 데모 대상 장비 선택• Juniper MX router 4대 (simulator) : mx0 (=>hostname) ~mx3

• Cisco XR router 4대 (simulator) : pe0 (=>hostname), ~pe3

3. 적용할 ACL 정의• 5 Tuple 사용

• source-ip

• source-port

• destination-ip

• destination-port

• protocol

NSO simple ACL provisioning/Test Scenario

Page 28: NSO Introduction

고객별로 특정 장비, 특정 인터페이스에 적용 ACL이 적용되므로 pre-defined된 고객별 ACL 적용 profile을 서비스로 정의하고, 위에 정의된 ACL을 적용하도록 함.

NSO simple ACL provisioning/Yang model

Page 29: NSO Introduction

Juniper Firewall Filter와 Cisco ACL 설정 비교device junos0

config {junos:configuration {

firewall {+ filter acl {+ term 10 {+ from {+ source-address 172.1.0.0/24;+ destination-address 200.1.0.0/24;+ protocol [ udp ];+ source-port [ 1000 ];+ destination-port [ 2000 ];+ }+ then {+ accept;+ }+ }+ term 20 {+ from {+ source-address 172.2.2.0/24;+ source-address 172.2.1.0/24;+ source-address 172.2.0.0/24;+ }+ then {+ accept;+ }+ }+ term 30 {+ from {+ destination-address 192.168.0.0/24;+ destination-address 192.168.1.0/24;+ destination-address 192.168.2.0/24;+ }+ then {+ discard {+ }+ }+ }+ }

}}

}

device xr0config {

cisco-ios-xr:ipv4 {access-list {

+ named-acl acl {+ rule 10 {+ line "permit udp 172.1.0.0/24 eq 1000 200.1.0.0/24 eq 2000";+ }+ rule 20 {+ line "permit ipv4 172.2.2.0/24 any";+ }+ rule 30 {+ line "permit ipv4 172.2.1.0/24 any";+ }+ rule 40 {+ line "permit ipv4 172.2.0.0/24 any";+ }+ rule 50 {+ line "deny ipv4 any 192.168.0.0/24";+ }+ rule 60 {+ line "deny ipv4 any 192.168.1.0/24";+ }+ rule 70 {+ line "deny ipv4 any 192.168.2.0/24";+ }+ }

}}

}

ACL name

seq id

action

match condition

Source IP Dest IPProtocol Source Port Dest Port

Page 30: NSO Introduction

Juniper Firewall Filter와 Cisco ACL 적용 비교

device xr0config {

cisco-ios-xr:interface {TenGigE 0/0/0/0 {

ipv4 {+ access-group egress {+ acl;+ }

access-group ingress {+ acl;

}}

}TenGigE 0/0/0/1 {

ipv4 {access-group ingress {

+ acl;}

}}

}}

device junos0config {

junos:configuration {interfaces {

interface xe-0/0/0 {unit 0 {

filter {+ input acl;+ output acl

}}

}interface xe-0/0/1 {

unit 0 {filter {

+ input acl;}

}}

}}

}

ACL Interface

ACL name

ACL direction

Page 31: NSO Introduction

적용 결과

Page 32: NSO Introduction

적용 결과

Page 33: NSO Introduction

적용 결과

Page 34: NSO Introduction