- 제어 플레인 : 네트워크에서 데이터를 어디로 보낼지, 트래픽이 어떻게 전달될지 결정하는 두뇌
- 각 라우터는 자신만의 제어 플레인을 가짐 => 라우터별로 독립적인 경로 계산 및 결정이 가능
- 결론적으로, 네트워크의 각 부분이 서로 다른 운영 체제와 설정을 가질 수 있고, 중앙집중식 관리가 없는 분산된 환경에서 작동.
- ex) IP, RIP, IS-IS, OSPF, BGP
- 라우터의 독립성이 네트워크 전체의 통합된 관리와 최적화를 어렵게 함.
- 트래픽을 특정 경로로 유도하는 것.
- 전통적인 라우팅에서는 트래픽 엔지니어링이 어렵다.
- 매번 특정 경로를 위해 링크 가중치를 재정의하거나 새로운 라우팅 알고리즘을 개발해야 할 수 있다.
=> 전통적인 라우팅 방식은 네트워크의 다양한 요구와 유연성을 충족시키기 어렵다.
=> 네트워크가 계속 발전하고 복잡해지면서, 이러한 제한 사항들이 더욱 두드러지게 되었고
=> SDN이 등장하였다.
네트워크 제어 플레인과 포워딩 플레인을 분리하고, 제어 플레인을 중앙집중화하여 유연성과 효율성을 높인다.
- 네트워크의 제어 기능을 구현하고, SDN 컨트롤러가 제공하는 북바운드 API를 사용하여 작동
- SDN의 개념은 메인프레임 컴퓨터에서 개인용 컴퓨터(PC)로의 진화와 비교될 수 있다.
- SDN에서 제어 플레인은 원격 위치의 컨트롤러에 의해 수행.
- 컨트롤러는 네트워크의 전체 상황을 파악하고, 라우터나 스위치 등의 네트워크 장치에 포워딩 테이블을 계산하여 설치
- SDN 컨트롤러, 네트워크 제어 애플리케이션, 남북방 API, 그리고 SDN 제어 스위치로 구성
- 컨트롤러는 네트워크 제어 애플리케이션과 통신하며, 남북방 API를 통해 제어 명령을 전달하고 정보를 수집. SDN 제어 스위치는 이러한 명령에 따라 데이터 플레인을 조정.
- 데이터 플레인 스위치는 네트워크에서 데이터 패킷을 전달하는 역할을 하는 장치
- "물리적 통로"와 같은 역할을 하며, 네트워크에서 데이터가 이동하는 경로를 결정.
- SDN에서 데이터 플레인 스위치는 단순하고 빠른 상품 스위치로 구성
- SDN 컨트롤러는 네트워크 운영 체제
- 전체 네트워크 상태 정보를 유지하고 네트워크 제어 애플리케이션과 상호 작용
- 네트워크의 성능과 확장성을 고려하여 분산 시스템으로 구현
- SDN 환경에서 컨트롤러와 스위치 간의 통신에 사용되는 프로토콜
- TCP를 사용하여 메시지를 교환하며, 필요에 따라 선택적인 암호화를 제공
=> 컨트롤러가 네트워크 스위치를 효율적으로 제어 및 관리 가능
[메세지 유형]
1. 스위치 기능에 대한 컨트롤러의 쿼리 : 컨트롤러는 스위치의 기능 및 능력을 파악하기 위해 쿼리를 보냄
2. 스위치 설정 매개변수의 쿼리 및 설정 : 컨트롤러는 스위치의 구성을 확인하고 필요에 따라 설정을 변경
3. 플로우 엔트리의 추가, 삭제, 수정 : 컨트롤러는 네트워크 트래픽을 제어하기 위해 플로우 테이블에 엔트리를 추가, 삭제 또는 수정 (특정 트래픽 패턴을 인식하고 그에 따라 적절한 액션을 취하는 규칙)
- 네트워크 내의 링크에 실패가 발생하면, 데이터 플레인(스위치)는 OpenFlow 프로토콜을 사용하여 컨트롤러에게 이 상황을 알림
- 컨트롤러는 이 정보를 받고, Dijkstra 알고리즘과 같은 라우팅 알고리즘을 사용하여 새로운 라우팅 경로를 계산
=> 네트워크의 효율성을 유지하고, 장애에 신속하게 대응
=> 이를 통해 트워크 장치의 상태를 파악하고, 문제를 진단하며, 네트워크 구성을 변경하고, 성능을 최적화하는 데 필요한 데이터와 명령을 전송함
Main Goal : 네트워크의 효율성과 안정성을 유지하고, 잠재적 문제를 신속하게 해결하여 네트워크의 지속적인 운영을 보장하는 것
- 네트워크 장비를 모니터링하고 관리하는 데 사용되는 인터넷 표준 프로토콜
- 세 가지 주요 구성 요소: 관리 대상 장치(네트워크 장비), 에이전트(장치에 설치된 소프트웨어), 네트워크 관리 시스템(NMS)
- 에이전트는 장치의 상태 정보를 수집하고, NMS에게 SNMP 메시지를 통해 이를 보고. NMS는 네트워크의 전반적인 상태를 모니터링하고 필요한 경우 설정을 조정
- 현재 보안과 데이터 형식의 개선이 이루어진 SNMP v2가 나온 상태.
- 네트워크 장비의 구성을 관리하기 위한 프로토콜
- XML(언어)을 기반으로 하며, 네트워크 장비의 구성을 검색하고, 수정하고, 업데이트하는 기능을 제공
- SSH(Secure Shell)을 통해 안전한 연결을 지원하며, 더 나은 보안과 무결성을 제공
- NETCONF를 위한 데이터 모델링 언어로, 네트워크 장비의 구성과 상태를 모델링하는 데 사용
- 네트워크 장비의 구성을 표준화하고, 구성 데이터의 구조와 제약 조건을 명확하게 정의
- 복잡한 네트워크 장비의 구성을 단순하고 이해하기 쉬운 방식으로 표현할 수 있어, 네트워크 관리자가 보다 효과적으로 장비를 관리할 수 있음
SNMP는 주로 모니터링과 관리에 초점을 맞춘 반면, NETCONF와 YANG은 네트워크 장비의 구성을 보다 정밀하게 관리하고, 네트워크의 상태와 구성을 보다 효율적으로 모델링할 수 있는 기능을 제공