Jump to section

소프트웨어 정의 네트워킹이란?

URL 복사

소프트웨어 정의 네트워킹(Software-Defined Networking, SDN)은 네트워킹 리소스를 가상화된 시스템으로 추상화하는 IT 인프라스트럭쳐에 대한 하나의 접근 방식입니다. 이를 네트워크 가상화라고 합니다. SDN은 중앙에서 관리 및 프로그래밍 가능한 네트워크 구축을 목표로 하는 네트워크 포워딩 기능을 네트워크 제어 기능에서 분리합니다. 데이터 플레인에서 컨트롤 플레인을 분리하는 것으로도 설명됩니다. SDN은 IT 운영팀이 각 네트워크 기기를 수동으로 처리하는 대신, 중앙집중식 패널을 통해 복잡한 네트워킹 토폴로지의 네트워크 트래픽을 제어할 수 있도록 해줍니다.

조직은 전통적인 인프라의 제약을 벗어나기 위해 소프트웨어 정의 네트워크를 도입합니다. 소프트웨어 정의 네트워킹의 이점은 다음과 같습니다.

  • 컨트롤 플레인 및 데이터 플레인 분리 - 데이터 패킷의 전달 방법을 결정하는 컨트롤 플레인은 소프트웨어 기반 컨트롤러에 중앙집중식으로 구현됩니다. 실제로 네트워크를 통해 데이터 패킷을 전달하는 데이터 플레인은 하드웨어 기반 네트워크 기기에 남아 있지만 패킷 전달에만 집중하도록 간소화 및 전문화되었습니다. 기존 네트워킹에서 컨트롤 플레인과 데이터 플레인은 일반적으로 스위치, 라우터, 액세스 포인트와 같은 네트워크 장치 내에 통합되어 중앙집중식 제어가 필요하지 않습니다.
  • 중앙집중식 제어 - 소프트웨어 정의 네트워킹은 네트워크 정책 및 구성이 여러 네트워크 장치 전반에 분산되는 기존 네트워킹과 달리 중앙 컨트롤러에서 네트워크 정책 및 구성을 관리하고 시행하는 중앙집중식 제어를 제공합니다.
  • 비용 절감 - 소프트웨어 정의 네트워크 인프라는 비용이 많이 드는 단일 목적의 어플라이언스가 아닌 상용 오프더쉘프(off-the-shelf) 서버에서 구동되기 때문에 하드웨어 네트워크 인프라에 비해 저렴합니다. 또한, 단일 서버에서 여러 기능이 구동되므로 차지하는 풋프린트도 작습니다. 이는 물리 하드웨어가 덜 필요하다는 의미이므로 리소스를 통합하여 물리적 공간, 전력 및 전체 비용을 절감할 수 있습니다. 
  • 우수한 확장성 및 유연성 - 네트워크 인프라를 가상화하면 또 다른 상용 하드웨어를 추가하지 않아도, 원하는 대로 필요한 시기에 네트워크 리소스를 확장하거나 축소할 수 있습니다. 소프트웨어 정의 네트워크는 네트워크 리소스의 셀프 서비스 프로비저닝을 지원하기 때문에 유연성 또한 탁월합니다.
  • 프로그래밍 가능 및 자동화 친화적 - 소프트웨어 정의 네트워킹에서 관리자는 소프트웨어 정의 로직 및 API를 사용하여 네트워크 정책 및 구성을 정의합니다. 이를 통해 네트워크 리소스의 동적 프로비저닝과 정책 기반 관리가 가능하고, 변화하는 비즈니스 요구 사항에 대한 신속한 배포와 대응을 촉진합니다. 기존 네트워킹은 커맨드라인 인터페이스(command-line interface, CLI) 또는 기기별 구성 툴을 사용하여 네트워크 기기를 수동으로 구성하고 관리하는 경우가 많습니다. 
  • 관리 간소화 - 소프트웨어 정의 네트워크는 매우 숙련된 네트워크 전문가가 아니어도 관리할 수 있기 때문에, 전반적으로 운영하기 쉬운 인프라를 구축할 수 있습니다. 

소프트웨어 정의 네트워킹은 소프트웨어 정의 스토리지나 기타 기술과 결합하여 하이퍼컨버전스라고 불리는 IT 인프라스트럭쳐에 대한 접근 방식을 구성할 수 있습니다. 하이퍼컨버전스는 모든 것에 대해 소프트웨어 정의 방식으로 접근합니다.

통신 기업에는 네트워크 기능 가상화(Network Function Virtualization, NFV)라고 하는 또 다른 네트워크 추상화가 있습니다. 소프트웨어 정의 네트워킹과 마찬가지로, NFV는 하드웨어에서 네트워크 기능을 추상화합니다. NFV는 SDN 소프트웨어를 실행할 기반이 되는 인프라를 제공하여 소프트웨어 정의 네트워킹을 지원합니다. NFV는 제공업체가 다양한 서버 전반에서 기능을 실행하고 필요에 따라 이를 이동할 수 있는 유연성을 제공합니다. 이러한 유연성 덕분에 통신 서비스 제공업체는 서비스와 애플리케이션을 더 빠르게 제공할 수 있습니다. 예를 들어 고객이 새로운 네트워크 기능을 요청하면 제공업체는 새로운 가상 머신(VM)을 가동하여 이 요청을 처리할 수 있습니다. 기능이 더 이상 필요하지 않으면 VM을 제거할 수 있습니다. 이를 통해 잠재적인 새로운 서비스의 가치를 위험이 적은 방법으로 테스트해 볼 수도 있습니다.

NFV와 SDN은 대상에 따라 함께 사용할 수 있으며 둘 다 상용 하드웨어를 사용합니다. NFV와 SDN을 사용하면 유연하고 프로그래밍 가능하며 리소스를 효율적으로 사용하는 네트워크 아키텍처를 생성할 수 있습니다.

소프트웨어 정의 네트워킹의 아키텍처는 기존 네트워킹과 비교하여 제어 및 책임이 어떻게 바뀌는지를 반영합니다.

컨트롤 플레인은 네트워크를 통해 데이터 패킷이 전달되어야 하는 방법에 대한 개략적인 결정을 내립니다. 소프트웨어 정의 네트워킹에서 컨트롤 플레인은 일반적으로 중앙집중식 컨트롤러 또는 네트워크 운영 체제에서 실행되는 소프트웨어에서 중앙집중화되고 구현됩니다. 컨트롤러는 OpenFlow, NETCONF, gRPC와 같은 표준화된 프로토콜을 사용하여 네트워크 기기와 통신하고 네트워크 토폴로지 및 상태에 대한 전체적 시각을 유지합니다.

전달 플레인 또는 전달 요소라고도 알려진 데이터 플레인은 컨트롤 플레인에서 수신한 지침에 따라 네트워크를 통해 데이터 패킷을 전달합니다. 소프트웨어 정의 네트워킹에서 데이터 플레인은 전달 요소라고 하는 스위치, 라우터, 액세스 포인트와 같은 네트워크 기기에서 구현됩니다. 이러한 기기는 패킷 전달 방법에 대한 지침을 컨트롤 플레인에서 활용하며 패킷 전달에만 집중하도록 간소화되거나 전문화될 수 있습니다.

소프트웨어 정의 네트워킹 구성 요소

SDN의 아키텍처 내에서 여러 구성 요소가 프로세스 처리를 정의합니다.

API(애플리케이션 프로그래밍 인터페이스)의 두가지 유형을 통해 플레인 간 및 더 규모가 큰 네트워크와의 통신이 가능합니다.

  • 하위 수준 API - 하위 수준 API는 소프트웨어 정의 네트워킹 아키텍처에서 컨트롤 플레인과 데이터 플레인 간의 통신에 사용됩니다. 이러한 API를 사용하면 컨트롤러는 네트워크 기기를 프로그래밍 및 구성하고, 네트워크 토폴로지 및 상태에 대한 정보를 검색하고, 링크 실패 또는 정체와 같은 네트워크 이벤트에 대한 알림을 받을 수 있습니다. 일반적인 하위 수준 API에는 컨트롤러와 네트워크 스위치 간의 통신에 광범위하게 사용되는 OpenFlow가 포함됩니다.
  • 상위 수준 API - 상위 수준 API는 소프트웨어 정의 네트워킹 컨트롤러의 기능을 더 높은 수준의 네트워크 관리 애플리케이션 및 서비스에 노출하는 데 사용됩니다. 이러한 API를 통해 외부 애플리케이션이 소프트웨어 정의 네트워킹 컨트롤러와 상호작용하고, 네트워크 서비스를 요청하고, 네트워크 토폴로지, 트래픽 흐름, 성능 메트릭에 대한 정보를 검색할 수 있습니다. 상위 수준 API는 네트워크 관리 작업의 프로그래밍과 자동화를 가능하게 하고 오케스트레이션 시스템, 클라우드 플랫폼 및 기타 관리 툴과의 통합을 원활하게 지원합니다.

또한 SDN 컨트롤러는 소프트웨어 정의 네트워킹 아키텍처의 핵심 구성 요소로, 네트워크 컨트롤 기능을 구현하고 컨트롤 플레인과 데이터 플레인 간의 통신을 조정합니다. 컨트롤러는 네트워크에 대한 중앙집중식 시각을 제공하고, 네트워크 상태 정보를 유지하며, 네트워크 정책 및 요구 사항에 따라 네트워크 기기를 구성 및 관리하는 방법을 결정합니다. 소프트웨어 정의 네트워킹 컨트롤러의 예시에는 OpenDaylight, ONOS, Ryu가 있습니다.

스위치, 라우터, 액세스 포인트 같은 네트워크 기기는 소프트웨어 정의 네트워킹 아키텍처의 데이터 플레인을 구성합니다. 이러한 기기는 컨트롤러에서 수신한 지침에 따라 데이터 패킷을 전달하고, 흐름 기반 전달, 서비스 품질(QoS) 및 트래픽 엔지니어링과 같은 기능을 지원할 수 있습니다. 소프트웨어 정의 네트워킹에서 네트워크 기기는 간소화되고 일반화되어 컨트롤러와의 프로그램 가능성 및 상호운용성을 지원하는 경우가 많습니다.

관리 및 오케스트레이션(MANO) - 소프트웨어 정의 네트워킹 아키텍처는 프로비저닝, 구성, 네트워크 리소스 모니터링 역할을 하는 관리 및 오케스트레이션 시스템을 포함할 수도 있습니다. MANO 시스템은 상위 수준 API를 통해 SDN 컨트롤러와 상호작용하여 네트워크 관리 작업을 자동화하고, 리소스 활용도를 최적화하며, 서비스 가용성 및 성능을 보장합니다.

전반적으로 소프트웨어 정의 네트워킹 아키텍처는 네트워크 컨트롤 기능을 데이터 전달 기능에서 분리하고, 소프트웨어 기반 컨트롤러에서 네트워크 인텔리전스 및 관리를 중앙집중화하며, 표준화된 API 및 인터페이스를 통해 프로그래밍 가능하고 유연하며 확장 가능한 네트워크 리소스 관리를 가능하게 합니다.

소프트웨어 정의 네트워킹은 보안에 여러 영향을 줍니다.

  • 소프트웨어 정의 네트워킹은 중앙집중식 컨트롤 플레인을 사용하기 때문에 기존 네트워킹 모델과 비교하여 보안 정책 시행이 간소화됩니다. SDN을 통해 전체 네트워크에서 보안 정책을 일관되게 간소화하여 잘못된 구성의 위험을 줄일 수 있습니다.
  • 중앙집중식 컨트롤러가 네트워크 트래픽에 대한 전체적인 시각을 제공하여 잠재적인 위협을 더욱 효과적으로 모니터링하고 빠르게 식별할 수 있습니다.
  • 이를 통해 SDN이 네트워크 구성을 동적으로 조정하고 영향을 받은 세그먼트를 격리하거나 트래픽을 다시 라우팅하여 손상된 노드를 방지할 수 있기 때문에 실시간 위협 감지 및 완화가 가능합니다.
  • 또한 중앙집중식 컨트롤 플레인을 사용하면 보안 정책 및 구성이 전체 네트워크에서 자동으로 업데이트되어 모든 기기가 최신 보안 표준에 따라 즉시 패치되고 구성되도록 할 수 있습니다.
  • 소프트웨어 정의 네트워킹은 마이크로 세그멘테이션을 실행하여 다양한 네트워크 세그먼트를 세분화하여 격리하고 특정 세그먼트에 대한 잠재적인 위협을 포함하여 공격 범위를 축소할 수 있습니다.
  • 네트워크 트래픽에 대한 중앙집중식 로깅 및 분석을 통해 네트워크 동작에 대한 더 나은 인사이트를 제공하고 비정상 활동과 잠재적인 보안 침해를 식별하는 데 도움이 됩니다.
  • SDN은 침입 감지 시스템(IDS), 침입 방지 시스템(IPS), 방화벽, 보안 정보 및 이벤트 관리(SIEM) 시스템과 같은 다양한 보안 툴과 손쉽게 통합됩니다.

물론 소프트웨어 정의 네트워킹에는 대부분 중앙집중식 권한과 관련된 고유의 보안 과제도 발생합니다. 일부 과제는 다음과 같습니다.

  1. SDN 컨트롤러는 중요한 구성 요소이므로 잠재적인 단일 장애 지점입니다. 컨트롤러가 손상되면 전체 네트워크에 대한 제어 능력을 상실할 수 있습니다.
  2. SDN 컨트롤러는 공격자에게 가치가 높은 공격 대상입니다. 컨트롤러의 보안을 보장하는 일이 전체 네트워크의 보안을 유지하는 데 매우 중요합니다.
  3. 또한 제어 메시지의 가로채기, 변조 또는 스푸핑을 방지하기 위해 컨트롤러와 네트워크 장치 간의 통신을 안전하게 보호하려면 강력한 암호화 및 인증을 사용해야 합니다.
  4. 마찬가지로 컨트롤러와 애플리케이션 간(상위 수준) 및 컨트롤러와 네트워크 기기 간(하위 수준) 통신에 사용되는 API는 무단 액세스 및 악용으로부터 보호되어야 합니다.

네트워크가 성숙해지면서 정책이 손쉽게 구현되는 만큼 복잡성도 자연스럽게 증가합니다. 다이나믹하고 잠재적으로 대규모인 SDN 환경 전반에서 일관된 보안 정책을 유지하는 일은 복잡하고 오류가 발생하기 쉽습니다. 보안 정책이 서로 충돌하지 않고 일관되게 적용되도록 하는 일 또한 하나의 과제입니다.

모든 네트워크 아키텍처에서 보안 솔루션은 상당한 대기 시간이나 성능적인 장애 요인을 유발하지 않고 증가하는 트래픽과 기기의 양을 처리할 수 있도록 네트워크와 함께 확장되어야 합니다. 중앙집중식 제어 계획이 일관성을 유지하고 보안 배포를 더 쉽게 만들기 때문에 소프트웨어 정의 네트워킹의 장점이 과제의 어려움보다 큰 경우가 많습니다.

소프트웨어 정의 네트워킹(SDN)은 네트워크 관리에 대해 유연하고 프로그래밍 가능한 중앙집중식 접근 방식을 제공하여 여러 산업군 및 애플리케이션 전반의 다양한 활용 사례에 적용할 수 있습니다.

  • 데이터 센터 최적화에서 SDN의 네트워크 가상화 및 자동화된 네트워크 관리는 유연성을 더하고 오류 가능성을 줄입니다.
  • 네트워크 기능 가상화(NFV)에서 SDN은 방화벽과 로드 밸런서 같은 기존 네트워크 어플라이언스를 상용 하드웨어에서 실행되는 소프트웨어로 대체하여 비용을 절감하고 유연성을 높일 수 있습니다. 또한 SDN을 사용하면 데이터 패킷에 대한 사용자 정의 가능한 경로를 제공하는 일련의 VNF를 통해 데이터가 흐르는 서비스 체인을 생성할 수 있습니다.
  • 캠퍼스 및 기업 네트워크에서 SDN의 중앙집중식 정책 관리를 통해 네트워크 전반에서 일관된 보안 정책이 가능합니다. 또한 SDN은 사용자 ID, 기기, 컨텍스트를 기반으로 액세스 제어를 동적으로 조정하여 보안과 사용자 환경을 개선할 수도 있습니다.
  • SDN 기술을 통해 광역 네트워크(WAN) 연결을 관리하고 최적화하여 장거리 네트워크 연결의 성능과 신뢰성을 향상할 수 있습니다. 이는 지점이 여러 개 있는 비즈니스에 특히 유용합니다.
  • 클라우드 컴퓨팅 및 멀티클라우드 통합에서 SDN은 멀티클라우드 환경의 원활한 통합 및 관리를 가능하게 해 조직이 여러 클라우드 제공업체의 리소스를 효율적으로 활용할 수 있을 뿐만 아니라 클라우드 애플리케이션의 요구 사항에 맞춰 성장할 수 있는 확장 가능한 네트워크 솔루션을 제공할 수 있습니다.
  • 사물 인터넷(IoT) 네트워크에서 SDN은 대규모 확장성 요구 사항을 처리하여 새 기기를 추가할 때 동적 네트워크 구성을 제공합니다. 또한 중앙집중식 제어를 통해 모든 IoT 기기 전반에 일관된 보안 정책을 적용하여 보안되지 않은 엔드포인트와 관련이 있는 위험을 완화할 수 있습니다.
  • 5G 네트워크에서 SDN을 사용하면 다양한 유형의 서비스(예: 자율주행 차량의 짧은 대기 시간, 동영상 스트리밍의 높은 처리량)마다 최적화된 가상 네트워크 슬라이스를 생성할 수 있습니다.
  • 재해 복구 및 비즈니스 연속성의 경우, SDN은 페일오버 프로세스를 자동화하여 오류가 발생했을 때 네트워크 서비스가 빠르게 복원되도록 할 뿐만 아니라 더욱 유연하고 효율적인 네트워크 백업 솔루션을 통해 재해 발생 시 데이터 무결성과 가용성을 보장할 수 있습니다.

Red Hat은 하이브리드 클라우드에 대한 전체적인 시각으로 개방형 사례를 통합하는 오픈 하이브리드 클라우드에 주목하고 있습니다. Red Hat의 오픈 하이브리드 클라우드 전략은 Red Hat Enterprise LinuxRed Hat OpenShiftRed Hat Ansible Automation Platform의 기술적 기반을 토대로 구축됩니다. Red Hat 플랫폼은 기반이 되는 인프라의 잠재력을 최대한 활용하여 모든 환경에서 일관된 클라우드 경험을 제공하며 자동화된 IT 인프라스트럭쳐를 구현합니다. Red Hat은 하이브리드 클라우드 분야를 선도하며 수많은 기업들의 현대화 여정을 지원하고 있습니다. 

추가 자료

문서

하이퍼컨버지드 인프라란?

하이퍼컨버전스는 IT 인프라에 대한 접근 방식으로 컴퓨팅, 스토리지 및 네트워킹 리소스를 통합된 시스템으로 통합합니다.

문서

소프트웨어 정의 네트워킹이란?

소프트웨어 정의 네트워킹(Software-Defined Networking, SDN)은 네트워킹 리소스를 가상화된 시스템으로 추상화하는 IT 인프라에 대한 하나의 접근 방식입니다.

문서

NFV란?

네트워크 기능 가상화(NFV)는 기존에 독점 하드웨어에서 실행되었던 네트워크 서비스를 가상화하는 방식입니다.