이번 장은 네트워크 자동화와 프로그래밍을 다룬다.
장비를 하나씩 손으로 설정하는 시대는 저물고 있다.
같은 설정을 수십 대에 반복하면 실수가 생긴다.
자동화는 이런 반복을 코드로 처리한다.
이번 장은 CCNP Enterprise 시리즈의 마지막 장이다.
이번 장의 목표는 다음과 같다.
자동화에 쓰는 데이터 형식과 프로토콜을 이해한다.
REST API, NETCONF, RESTCONF의 차이를 정리한다.
Python과 Ansible이 어디에 쓰이는지 본다.
- 데이터 형식
자동화는 사람이 아니라 프로그램이 데이터를 읽고 쓴다.
그래서 구조화된 형식이 필요하다.
JSON은 가볍고 널리 쓰이는 형식이다.
XML은 태그 기반으로 표현이 엄격하다.
YAML은 사람이 읽기 쉬워 설정 파일에 자주 쓴다.
- REST API
REST API는 HTTP로 장비나 컨트롤러와 통신한다.
GET으로 정보를 읽고, POST와 PUT으로 설정하며, DELETE로 제거한다.
DNA Center나 컨트롤러가 REST API를 제공한다.
응답은 보통 JSON으로 돌아온다.
- NETCONF와 RESTCONF
NETCONF는 장비 설정을 위한 프로토콜이다.
SSH 위에서 동작하고 XML을 사용한다.
설정을 후보(candidate)에 넣고 commit하는 방식으로 안전하게 반영할 수 있다.
RESTCONF는 NETCONF의 개념을 REST 방식으로 제공한다.
HTTP와 JSON 또는 XML을 사용해 더 친숙하다.
- YANG
YANG은 설정 데이터의 구조를 정의하는 모델이다.
어떤 항목이 있고 어떤 값이 올 수 있는지 규칙을 정한다.
NETCONF와 RESTCONF는 YANG 모델을 기반으로 데이터를 주고받는다.
모델이 정해져 있어 장비마다 일관되게 다룰 수 있다.
- Python과 Ansible
Python은 스크립트로 API를 호출하고 데이터를 처리한다.
requests, netmiko, ncclient 같은 라이브러리를 자주 쓴다.
Ansible은 playbook으로 여러 장비에 설정을 배포한다.
에이전트 없이 SSH나 API로 동작해 진입 장벽이 낮다.
반복 설정과 배포에 적합하다.
- 자주 나오는 실수
JSON, XML, YAML의 용도를 혼동한다.
NETCONF와 RESTCONF의 차이를 구분하지 못한다.
YANG을 프로토콜로 오해한다.
자동화를 도입하면서 검증과 롤백 계획을 세우지 않는다.
- 핵심 정리
자동화는 구조화된 데이터 형식으로 시작한다.
REST API, NETCONF, RESTCONF로 장비와 통신한다.
YANG은 데이터 구조를 정의하는 모델이다.
Python과 Ansible로 호출과 배포를 자동화한다.
- 시리즈를 마치며
여기까지가 CCNP Enterprise 따라잡기 시리즈다.
라우팅과 스위칭에서 시작해 무선, 보안, 가상화, 자동화까지 큰 지도를 그렸다.
이제 각 주제를 실습 장비나 시뮬레이터에서 직접 확인하며 깊이를 더하면 된다.
읽어주셔서 감사합니다.
댓글 0
댓글은 운영자만 작성할 수 있어요.