875. NETCONF (Network Configuration Protocol) - SSH+XML 자원망 환경 설정 통계 관리 SNMP 한계 극복 원격 설정 커밋/롤백 표준 지원망 트랜잭션 관리망

핵심 인사이트: 1,000대의 라우터 설정을 바꿔야 한다. 옛날엔 관리자가 터미널 창(CLI)에 일일이 로그인해서 타이핑을 치거나, 오래된 SNMP라는 툴을 썼다. 하지만 SNMP는 에러가 나면 되돌릴 수도 없고(롤백 불가), 보안도 허술했다. 엔지니어들은 화가 났다. "야! 스위치 설정값들도 데이터베이스(DB) 다루듯이 안전하게 관리하자! 설정하다 뻑나면 1초 만에 전으로 되돌리고(Rollback), 완벽할 때만 저장(Commit)하게 만들어!" SSH 암호화 파이프 위에 XML 언어를 실어 나르는 완벽한 차세대 네트워크 설정 프로토콜, 그것이 NETCONF다.

Ⅰ. 기존 장비 설정 방식의 끔찍한 한계 (CLI와 SNMP)

  • CLI (Command Line Interface): 사람이 키보드로 쳐야 합니다. 스크립트(Expect)를 짜서 자동화하려 해도, 벤더마다 명령어(시스코어, 주니퍼어)가 다르고 결과 화면(텍스트)이 달라서 100% 에러가 터졌습니다.
  • SNMP (Simple Network Management Protocol): 원래 장비가 살아있는지 감시(모니터링)하려고 만든 툴입니다. 이걸 억지로 설정을 바꾸는 데 쓰려다 보니, 트랜잭션(실패 시 되돌리기) 개념이 없어서 중간에 끊기면 라우터가 반쯤 고장 난 상태로 멈춰버렸습니다.

Ⅱ. NETCONF의 개념과 설계 철학 🌟

  • 개념: IETF(국제 인터넷 표준화 기구)에서 제정한 네트워크 장비의 설정 데이터(Configuration)와 상태 데이터(State)를 완벽하게 분리하여, 네트워크 장비를 원격에서 설치, 조작, 삭제하기 위한 차세대 표준 네트워크 관리 프로토콜입니다. (사우스바운드 인터페이스의 대장)

NETCONF의 4계층 구조 (완벽한 구조화) 🌟

NETCONF는 패킷을 보낼 때 4겹의 옷을 입습니다.

  1. 보안 전송 계층 (Secure Transport):
    • 텔넷(Telnet) 같은 평문이 아니라, 무조건 **SSH (Secure Shell)**나 TLS를 기반으로 암호화 파이프를 뚫어 해커의 감청을 완벽히 차단합니다.
  2. 메시지 계층 (Message):
    • <rpc>, <rpc-reply> 태그를 사용하여 원격 절차 호출 구조(클라이언트-서버 통신)를 만듭니다.
  3. 오퍼레이션 계층 (Operations) 🌟:
    • edit-config (설정 바꿔라), get-config (설정 가져와라) 같은 핵심 명령어들이 들어갑니다.
  4. 콘텐츠 계층 (Content - XML):
    • 멍청한 텍스트(CLI) 대신, 기계가 완벽하게 파싱해서 읽어 들일 수 있는 체계적인 데이터 구조인 XML (eXtensible Markup Language) 형식으로 설정값을 적어 보냅니다. (이 XML의 뼈대를 잡아주는 문법이 바로 876번의 YANG입니다.)

Ⅲ. NETCONF의 킬러 기능: 트랜잭션 (Commit과 Rollback) 🌟

DB(데이터베이스)에서 쓰던 기법을 네트워크 스위치에 이식한 최고의 마법입니다.

  • 분리된 설정 공간 (Datastore): 스위치 안에 <running> (현재 돌아가고 있는 진짜 설정)과 <candidate> (테스트용 예비 설정) 공간을 분리해 두었습니다.
  • Commit (저장): 관리자가 1,000대의 장비에 100줄의 설정을 쏩니다. 이 설정은 일단 예비 공간(<candidate>)에 안전하게 저장됩니다. 모든 게 완벽하다고 확인되면, 관리자가 <commit> 버튼을 눌러 그 즉시 진짜 설정(<running>)으로 덮어씌웁니다.
  • Rollback (원상 복구): 만약 1,000대 중 1대의 스위치에서 에러가 터지면? Rollback 명령어 한 방에 1,000대의 스위치 설정이 1초 만에 어제 상태로 완벽히 되돌아갑니다. 네트워크가 엉망진창으로 꼬이는 것을 원천 차단합니다.

Ⅳ. SDN 컨트롤러와의 시너지

  • 852번 문서에서 배운 SDN 컨트롤러(ONOS 등)가 밑바닥의 수만 대 스위치들을 지배할 때, 화이트박스 스위치의 라우팅 룰은 OpenFlow로 내리지만, 그 스위치의 IP 주소, 인터페이스 ON/OFF 같은 기계적 환경 설정(Configuration)은 100% 이 NETCONF 프로토콜을 사용해 XML로 찍어누릅니다.

📢 섹션 요약 비유: 기존 장비 설정(CLI)은 '카톡으로 문서 편집 지시하기'입니다. "3페이지 두 번째 줄 지우고 글씨 빨간색으로 바꿔"라고 말하면, 듣는 직원(스위치)이 헷갈려서 엉뚱한 곳을 지우다가 문서를 망치고 되돌릴 수도 없습니다(롤백 불가). NETCONF는 '구글 독스(Google Docs)를 통한 원격 문서 공동 편집' 시스템입니다. 관리자는 보안이 철저한 전용 회선(SSH)을 타고 들어와, 기계가 완벽히 인식하는 표 양식(XML)으로 깔끔하게 데이터를 적습니다. 게다가 먼저 '임시 저장소(Candidate)'에 글을 써보고, 오타가 나서 문서를 망치면 'Ctrl+Z (Rollback)' 버튼을 눌러 1초 만에 원상 복구합니다. 모든 게 완벽할 때만 '최종 발행(Commit)' 버튼을 눌러 스위치를 구동시키는, 기계와 인간의 가장 안전하고 정밀한 대화법입니다.