Networking/Network Automation

네트워크 엔지니어를 위한 프로그래밍 기초 - 1

포항돼지 2021. 5. 15. 03:04

네트워크, 특히 인프라 분야에서는 최근 기하급수적으로 바뀌고있다. 자연스럽게 프로그래밍 기반으로 바뀌고 있음.

일반 프로그래밍(데이터를 다룸)과 다르게 네트워크 기반의 프로그래밍은, 네트워크 장비를 다루는데 프로그래밍을 사용한다.

 

네트워크 장비의 setting및 configuration을 다룬다. 항상 효율적으로 돌아갈수 있도록 구현을 하고 죽지않도록 프로그래밍을 하게 된다.

 

그렇다면 이러한 네트워크 인프라에서 구현되는 어플리케이션은 무엇이 있는가?

 

 

Cisco의 IOS에서 사용하는 CLI는, 기계가 분석해서 무언갈 Implement 하게 설계된 것이 아닌, 사람이 직접 명령어를 넣고, 직접 제어 및 분석(Parsing)하는 방식으로 구성 되어있다.

 

Netcuff라든지 관리용 프로토콜을 통해 장비를 제어하는 방식도 있다(SDN방식) -> 완전 자동화의 기초

어플리케이션이 Event에 대응하는 Action을 자동으로 취하게 됨

Cisco의 DNA Center및 SD-Access

사용자가, 이러한 것들을 Programming으로 (ex: Rest API)제어 함 (Advance한 기술)

 

네트워크에 관련된 경험과 지식이 있는 인력들 만이 이런 Advance한 기술들을 사용해 Infra를 Automated 하게 Implement 할수 있게 된다.

 

앞서 말한 것 같이 크게 2가지 방식으로 네트워크를 프로그래밍으로 제어할수 있다.

 

 

Netconf 경우 장비가 Netconf protocol을 지원을 해야 사용 가능하다. 이것은 이미 XML이나 JSON같은 (YANG Data Modeling) 걸로 표준화가 되어 있다.

 

Device가 Netconf를 지원하지 않는 경우가 있으므로, 당연히 두개다 할 줄 알아야한다.

 

 

단순히 Application의 기능만 이용하는 것이 아닌, 고객이 원하는 부분도 Programming을 해서 Application에 새로운,Customizing 기능을 넣어 서비스 할 수도 있음.