877. RESTCONF - HTTP 기반 JSON/XML 형식 NETCONF/YANG 매핑/간소화 API 통신망 설정 프로토콜 체계 모델
핵심 인사이트: 875번의 NETCONF와 876번의 YANG 콤비는 완벽했지만, 치명적인 단점이 하나 있었다. 너무 무겁고 '통신 아저씨들'의 방식(SSH 위에 XML 떡칠)이었다는 거다. 웹 개발자들(프론트/백엔드)은 불평했다. "야! 우리가 평소에 맨날 웹페이지 띄울 때 쓰는 표준 언어(HTTP)랑 표준 데이터(JSON)로 스위치 좀 조작하게 해 주면 안 돼? 굳이 복잡한 SSH/XML 쓰기 싫어!" 통신 장비에 요즘 실리콘밸리 웹 개발자들의 입맛을 딱 맞춰준 미니멀리즘 API 프로토콜, 그것이 RESTCONF다.
Ⅰ. NETCONF의 벽과 RESTCONF의 탄생
- NETCONF의 진입 장벽: 완벽한 트랜잭션(Commit/Rollback)을 보장하지만, SSH 터널을 뚫고 무거운 XML 트리 구조를 파싱해야 해서 웹 앱(모바일 대시보드 등)에서 가볍게 스위치를 조종하기엔 너무 무겁고 코딩하기 빡셌습니다.
- RESTCONF의 탄생: IETF는 876번에서 만들어둔 뼈대(YANG 모델)는 그대로 재활용하되, 배달 오토바이(NETCONF 프로토콜)만 전 세계 웹 표준인 **RESTful API (HTTP 기반)**로 싹 바꿔 치기 한 가벼운 버전의 통신 규약을 발표했습니다.
Ⅱ. RESTCONF의 3대 초간단 설계 마법 🌟
1. 전 세계 웹 표준: HTTP Methods (CRUD 맵핑)
웹 개발자들이 숨 쉬듯 쓰는 HTTP 방식을 스위치 조작에 1:1로 박아 넣었습니다.
GET: 스위치의 현재 설정이나 라우팅 테이블(상태) 좀 읽어와! (Read)POST: 스위치에 새로운 VLAN 방 하나 새로 파라! (Create)PUT / PATCH: 스위치 1번 포트의 IP 주소를 이걸로 덮어씌워라! (Update)DELETE: 아까 만든 VLAN 방 삭제해! (Delete)- 장점: 이제 통신 장비 매뉴얼을 배울 필요 없이, 평범한 파이썬이나 자바스크립트 개발자가
fetch()함수 한 줄만 날리면 시스코 코어 라우터의 IP가 1초 만에 바뀝니다.
2. 가벼운 데이터 포맷 (JSON 지원) 🌟
- NETCONF는 오직 답답하고 꺾쇠가 많은 무거운 XML만 지원했습니다.
- RESTCONF는 XML은 물론이고, 현대 웹 개발의 영혼인 JSON (JavaScript Object Notation) 데이터 형식을 완벽하게 지원합니다. 브라우저에서 스위치 상태를 JSON으로 받아 0.1초 만에 모니터링 대시보드 그래프로 예쁘게 그려낼 수 있습니다.
3. URL 기반의 직관적인 데이터 트리 접근
- YANG 모델이 잡아둔 계층 구조를, 그냥 인터넷 주소(URL)처럼 접근합니다.
- 예:
GET https://스위치IP/restconf/data/interfaces/interface=eth1 - 주소창에 저렇게만 치고 엔터를 누르면, 스위치의 1번 랜선 포트 설정값이 JSON으로 주르륵 쏟아져 나옵니다. 미치도록 직관적입니다.
Ⅲ. 트레이드오프: NETCONF vs RESTCONF 🌟
RESTCONF가 다 좋은데 왜 아직도 핵심 코어망에서는 NETCONF를 쓸까요?
- 치명적 단점 (트랜잭션 부재): RESTCONF는 HTTP 기반의 가벼운 Stateless(무상태) 통신이라, NETCONF의 최고 존엄 기능인 [Candidate 예비 저장소 ➜ 완벽할 때 한 번에 Commit ➜ 에러 시 Rollback] 이라는 거대한 국가망 스위치 동시 설정 덮어쓰기(원자성) 기능이 없습니다.
- 한 줄 치면 한 줄이 바로 스위치에 바로 꽂히기 때문에(실시간 덮어쓰기), 1,000대를 튜닝하다가 500대째에서 인터넷이 끊기면 망 전체가 짝짝이가 되는 대재앙(롤백 불가)이 터질 위험이 있습니다.
Ⅳ. 현대 SDN 컨트롤러에서의 공존 (투트랙 전략)
- 컨트롤러 ➜ 스위치 기계 (사우스바운드): 트랜잭션과 생사 확인이 목숨같이 중요한 밑바닥 기계 조작에는 여전히 무겁고 단단한 NETCONF를 주로 씁니다.
- 앱 ➜ 컨트롤러 (노스바운드): 외부의 웹 개발자나 사내 모바일 앱이 컨트롤러에게 명령을 던질 때는, 조작이 편한 **RESTCONF(REST API)**를 뚫어주어 웹과 통신망의 융합 생태계를 완성합니다.
📢 섹션 요약 비유: NETCONF가 변호사와 회계사(통신 엔지니어)들이 서류를 챙겨 팩스와 인감도장(SSH/XML/Commit)으로 깐깐하게 계약서를 작성하는 '무겁지만 절대 실수 없는 정통 계약 방식'이라면, RESTCONF는 배달의 민족 앱(웹 프로그래밍)으로 햄버거를 시키는 '초간편 터치 주문 방식(HTTP/JSON)'입니다. 햄버거를 시킬 때 메뉴 장바구니(YANG 모델) 규격은 똑같이 지키지만, 복잡한 인감도장 확인 절차 없이 그냥 스마트폰에서 결제 버튼(POST/GET)만 틱 누르면 주방(스위치 장비)에 명령이 즉시 전달됩니다. 주문이 너무 쉬워져서 전 세계 웹 개발자 누구나 통신망을 장난감처럼 다룰 수 있게 해준 혁명적인 인터페이스 간소화 모델입니다.