본문 바로가기
Networking/Network General (Anything)

CCNP Part 2 - 3

by 포항돼지 2022. 1. 5.

NETCONF

Data formatting해서 전송 하는 방법 중의하나

SNMP 네트워크 장비 설정(제한이 많음) 및 상태 모니터링 사용 CLI를 통해 configuration

이렇게 전통적인 방식은, 한대 한대 메뉴얼리 설정해야되서 귀찮아서 NETwork CONFiguration 이 나옴

intend base(의사를 밣히면 컨트롤러가 네트워크 장비를 설정한다는 것)

 

network를 configuration을 한다고해서 netconf 나옴. (SSH 사용함)

장비 벤더들 마다 다 config 명령어가 다르기때문에, 표준적인 게 필요하다.

이 과정에서 나온게 netconf (IETF 표준) 모델임

 

방식 1
방식2 (관리하는 측면에서 장점이 많음)

서로 비슷해보이지만 돌아가는 방식이 많이 다름

 

이렇게 YANG data modeling 에 XML data format를 입혀서 NETconf를 통해 전송
이렇게 YANG Data modeling을 통해서 내가 얻고자 하는 정보를 가져오고 보내고자 하는 정보를 보냄

 

실습

https://developer.cisco.com/site/sandbox/ㅇ

 

Cisco DevNet

Cisco DevNet is Cisco's developer program to help developers and IT professionals who want to write applications and develop integrations with Cisco products, platforms, and APIs. Cisco DevNet includes Cisco's products in software-defined networking, secur

developer.cisco.com

실습 할수있는 Cisco DevNet Homepage

 

 

깃 허브 가서 코드 샘플 보기

그리고 그거 보고 이해하고 따라 하려고 노력하기!!

 

RESTCONF

기본적인 기능은 동일하나, HTTPS를 이용해서 통신함

단순히 SSH 대신 HTTPS 프로토콜을 사용하는 것만 다른 거임

전달 되는 데이터가 JSON이나 XML Format 둘다 지원함

 

HTTP는 REST 통신을 함

CRUD 라고도 함 (Database 에서 나온 용어)

HTTP 프로토콜을 쓰기위해, 우리가 데이터를 보내느 과정에서 Header를 조정하던지, 이런 작업을 위해 POSTMAN 이라는 Software를 다운 받아야함 

POSTMAN 은 API Test 툴임

우리가 이제 REST API를 만들어야됨

 

Content-Type = 내가 보내는 데이터의 타입을 얘기하는 것

그리고 상대편 서버로부터 데이터를 어떤 Type으로 받을 것 인지도 설정해야함

설정완료

그리고 Cisco가 제공하는 Sandbox 장비 Auth를 해야함

설정 완료

그 다음, 이제 REST 명령어인 GET을 통해서 정보를 가져와보자

 

위의 URL 장비에 RESTCONF 즉, HTTPS 프로토콜을 이용, YANG Data type으로 Gig1번 인터페이스 정보를 받아 온다는 뜻

 

Send를 누르면...

이렇게 데이터 들을 가져온다!!! 굿

 

앞에서는 XML Type으로 가져왓는데(NETCONF) 이번에는 JSON Format(RESTCONF)를 통해 1번 인터페이스 정보만 가져왔음! 굿!! 그래서 SDN을 구현하는 여러가지 방법이 있는데, 특히 Cisco DNA Center의 장비들이 NETCONF 나 RESTCONF를 통해 컨트롤 하기 때문에 이 방법들을 잘 알고 있고 숙지 하고 있어야 함

 

 

Chef

Open source orchestration tool

SDN 컨트롤러가 이 네트웤에 있는 다양한 장비들을 어떻게 동시에 관리 할 수 있게 하는 툴

사람이 못하는 것은 이 오케스트레이션 툴도 못함

사람이 하는 건 오케스트레이션 툴을 이용, 자동화가 가능함

그래서 on-promise type이나 cloud type 장비들도 모두 컨트롤 가능함

 

그리고 이런 오케스트레이션 툴은 네트웤 장비에만 극한 되는 것이 아닌, 모든 서버, 모든 장비에 적용이 되기때문에 이 툴을 이용, 모든 것들 관리 감독 가능 하게 만듬 -> 인력 줄이기용

 

매니지먼트 서버가 필요함

 

2가지 모델이 있음

1. Push model = 매니지먼트 서버가 관리 노드에게 configuration을 쏴주는 모델

2. Pull model = 관리 대상 장비에 agent 를 설치, agent가 필요에 따라 서버에서 정보를 가져옴

 

 

4가지 orchestration tool 이 있음

Chef는 요리사 라는 뜻. 요리에 관련된 용어로 UI가 구성되어있음

 

사용자 관리자들은 Workstation에 접속해서 Chef Server Control 함

인프라 구성, 및 다른 유지 보수들을 함

Chef는 Client들에 agent 가 깔려서 서버로 부터 config를 가져오는 pull 모델임
Chef automate라는 GUI로 infra control 함
Chef 의 클라이언트는 모든 것이 될수 있음

 

Recipt = 조리법 즉 스크립팅 by Ruby lan , Cookbook = 요리책, 즉 스크립팅 여러가지 모아놓은 library? 개념

 

chef-repo = cookbook이 있는 셰프의 방 , Bookshelf = cookbook이 있는 조리장
Knife command line tool = workstation-> server 로 연결 하는 툴 , Test Kitchen = test 해보는, 미리 요리 만들어보는 조리테스트장?

RSA = 공개키 기반

RSA is a public-key cryptosystem that is widely used for secure data transmission.

 

실제 Chef라는 거 해봐야함, Chef 서버는 무조건 Linux에서만 돌아감. 그래서 해보는게 좋음!

진입 Curve가 높아서 열심히 해야함

 

Puppet

인프라 자동화 하는 도구

네트웤 장비 , 서버 모두 포함

Cisco's preferred orchestration!! Chef 랑 같은 orchestration tool 인듯

 

Cisco장비중 기본적으로 puppet을 많이 지원함 = 관리 대상이 되는 장비에 이미 agent가 설치 되어 있음

Cisco 장비들은, 네트워크 IOS에 agent를 못 올리기때문에 puppet이 공장에서부터 찍혀서 나옴

 

puppet은 pull model 임 (client <-> server)

Ansible 같은 경우, 그냥 ssh로 정보를 쏴버림 -> push model

 

Ruby 사용

Domain Specific Language = 그냥 사용하기 쉬운 언어다 정도로 알고있으면 됨

 

Linux에서만 돌아감
agent는 software임, 대부분의 운영체제를 지원함 , 호스트네임으로 인증서를 발급하기때문에 호스트네임 및 시간 (인증서에 대한 개념이 있어야함) 에 care해야함

 

 

Facts = puppet agent 정보 가진 거(IP address,hostname etc)

Catalog = puppet agent (managed device에 딱 특정화 된 정보만 보내게 되어있음 , 효율적으로 처리 , 메모리상으로 부담 안가게)

하나의 기능도 여러가지 플랫폼으로 만들어져 있음

 

장비를 설정하기위해서 puppet마스터가 agent에 보내는 정보들이 기본적으로 catalog에 들어있음

Resources = 컨트롤 하고싶은 장비들의 상태 가 설명 되어 있음

Manifests = 실질적인 코드값들

Module = manifetsts 들이 모여있는것

 

puppet 언어를 익힐 필요는 없고 https://forge.puppet.com/ 라는 곳에 가서 명령어 찾아가지고 스크립팅 해서 정보 가져오면됨 , 모듈을 자동적으로 땡겨와서 자동으로 작업 할수 있게 만들어줌

puppet은 굉장히 다양한 모듈들이 있음

큰 기업들이 가장 선호하는 orchestration tool 이라고 생각 됨

 

 

Ansible

드디어 나옴, 제일 유명한 orchestration tool. control tower 가 ssh 로 접속해서 그냥 push 하는 식으로 관리 함

관리 대상 장비에 agent 를 깔 필요없음.

Ansible management 노드가 모든 것을 다룸

이미 알려진 Protocol들을 이용해서 장비들을 관리 하게 됨

 

 

Playbooks = Task가 쓰여져있음

YAML , Key 값이랑 Value값으로 이루어져있음
Automation Engine을 통해 Playbook을 만듬

여기에 4개의 Component 들이 들어감

 

1. Inventory = 앤서블 컨트롤러가 관리하는 ip 정보들

 

2. API = 로컬 인프라에 있는 어떤 자원들만 오케스트레이션을 하는 것이 아닌, Public Cloud 도 관리 할수 있게 만들어져있음, 즉 API를 통한 통신을 가능 하게 하는 것 인듯. API를 통해 정보들을 주고 받고, 그로 monitoring 및 내 입맛대로 기능 만들어서 사용 하는 개념인듯

 

3. Plugins = 특정한 작업들을 수행할수 있도록 미리 만들어진 기능. 예) 프로그램 다운 받기 위해서, 프로그램 다운 플러그인을 실행해서 딱 그거 실행 시키면 바로 되게 한다든지 그런거

 

4. Modules = playbooks에 실행이 되어야하는 작업들의 집합. 궁극적으로 palybooks를 통해 만든게 modules임

 

ENCOR 에서는 puppet에서 다루는게 많음

 

중요한건 Linux 기반으로 돌아가는 concept 이기때문에 linux 및 보안 정보를 알아야 함

 

Cisco DNA Center

일종의 네트워크 관리 서버로 보면됨

서버 형태로 Cisco 에서 판매 되고있음. Cloud 식으로 팔리고 있기도 함

API 기반으로 네트워크 관리함 , Virtual machine으로 안씀. 하드웨어 베이스로 돌아가도록 만들어져 있음 (나중에 크리티컬한 문제를 prevent 하기 위해서)

 

Cisco DNA Center는 DEVnet에 들어가서 Read only로 공개되어있는 서버에서 구경 가능

Cisco 에서 나오는 장비들은, 이제 Cisco DNA센터를 통해 관리가 되도록 만드려고 한다고 함

 

쉽게 네트워크를 관리하고 모니터링 할수 있도록 만들어 놓음

 

Cisco가 생각하는 Network life cycle

Provisioning (정책 적용 하는거)

Design = 지도,위치,건물 기반으로 네트워크 구성을 볼 수 있게끔 구성도 해 놓았음

 

 

ip address range 설정 및 cdp를 통해서 장비 발견
관리자 입장에서, 네트워크 관리 정책들 모두 적용을 DNA Center에서 개념 잡아줌, 그 개념을 통해 세세한 장비 depandent 한 command로 바꿔서 적용

 

Policy 에서 만들어진 정책들을 실제로 implement 함
현황 분석 및 향후 에 대한 것 분석해서 모니터링 하는 거. 사실 Cisco DNA Center에 TAC수준에 해당되는 기술지원을 이 것을 통해 받는다고 이해하면 편함

https://developer.cisco.com/

 

Cisco DevNet

Cisco DevNet is Cisco's developer program to help developers and IT professionals who want to write applications and develop integrations with Cisco products, platforms, and APIs. Cisco DevNet includes Cisco's products in software-defined networking, secur

developer.cisco.com

 

 

Devnet 가서 Cisco DNA Center open source, UI 구경 하면서 익히면 좋을듯

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Networking > Network General (Anything)' 카테고리의 다른 글

CCNP Part 2 - 5  (0) 2022.01.07
CCNP Part 2 - 4  (0) 2022.01.07
CCNP Part 2 - 2  (0) 2022.01.04
CCNP Part 2 - 1  (0) 2022.01.04
Network Engineer Interview Questions  (0) 2021.11.18