네트워크 구성도 (Network Topology)

네트워크 토폴로지(Topology), 네트워크 아키텍처(Architecture)라고도 불리는 네트워크 구성도란 무엇일까요?

네트워크 구성도는 스위치, 라우터, 방화벽 등 네트워크를 이루고 있는 다양한 네트워크 장비들의 물리적/논리적 구성을 가시화하여 그려낸 것을 뜻합니다.

네트워크 구성도는 네트워크가 어떻게 통신을 하고 있는지 그 경로를 보여주는 아키텍처입니다.
스타크래프트 치트키 "Black sheep wall"과 같은 기능을 한다고 생각하시면 됩니다. 🌏
네트워크 구석구석 모든 부분을 들여다 볼 수 있도록 네트워크 전체 Map을 환하게 비춰주니까요.

우리는 네트워크 구성도를 통해 데이터가 어떻게 흐르는지, 성능 저하가 어디서 일어나는지, 트래픽 병목 현상은 어디서 일어나고 있는지, 다양한 방면에서 효율적으로 네트워크를 관리할 수 있습니다.

네트워크 구성도는 이렇게 간단하게 정의할 수 있습니다.

하지만 네트워크 인프라가 가상화되어 다수의 데이터센터와 클라우드에 분산되기 시작하면서,
한 눈에 알아보기 쉬운 통합 네트워크 구성도를 그려내는 것은 매우 어려워졌습니다.

이 글에서는 네트워크 구성도를 자동으로 그려내는 기술과 프로토콜에 대해 이야기하면서, 어떻게 복잡해진 네트워크 인프라의 네트워크 구성도를 손쉽게 그려낼 수 있을지 논해보고자 합니다.

네트워크 구성도의 필요성

네트워크 구성도는 네트워크를 구성하는 모든 네트워크 장비들과 그 커넥션들을 모두 보여주기 때문에 매우 중요합니다.

네트워크 구성은 네트워크의 성능, 안정성, 확장성 그리고 보안성에 모두 영향을 미치며 네트워크가 잘 동작하는데 매우 중요한 역할을 합니다.

네트워크를 최적의 상태로 설계하고 관리하면 아래와 같은 효과들을 누릴 수 있습니다.

  • 성능 (Performance) 📈
    심플하지만 최적으로 설계한 네트워크 구성은 데이터 전송을 최적화하고 레이턴시를 최소화하여 데이터 패킷이 네트워크를 통해 효율적으로 이동될 수 있도록 합니다. 그 결과 통신 속도가 빨라지고 애플리케이션 성능이 향상됩니다.

  • 안정성 (Reliability) 🛠️
    최적의 네트워크 구성은 모든 네트워크 장애 상황에 대한 재해 복구 기능(Redundancy)를 제공합니다. 이로써 네트워크 다운타임을 최소화하고 네트워크 장애가 비즈니스에 미치는 영향을 최소화합니다.

  • 확장성 (Scalability) 🌏
    비즈니스의 성장에 따라 데이터의 양이 늘어나면, 네트워크 구성 또한 확장될 수 있어야 합니다.
    단순한 네트워크 장비의 추가가 아닌, 확장성 있는 프로토콜로 네트워크를 구성하여 네트워크 중단이나 재설계 없이 새로운 애플리케이션, 유저, 디바이스들을 수용할 수 있습니다.

  • 보안성 (Network Security) 🔒
    최적의 네트워크 설계에는 보안성도 빠질 수 없습니다. 네트워크 트래픽의 액세스 제어와 세분화(Segmentation)을 통해 네트워크 보안성을 강화합니다. 이로써 네트워크에 무단으로 침입하려는 보안 위협으로부터 방어 체계를 구축할 수 있습니다.

  • 관리용이성 (Manageability) 🎚️
    심플하고 직관적인 네트워크 설계는 운영, 관리, 유지보수를 간소화합니다.
    네트워크 팀은 한 눈에 들어오는 네트워크 구성도를 통해 문제 상황을 빠르고 쉽게 식별하고 해결할 수 있습니다. 나아가 성능 이슈가 없는지 지속적으로 모니터링하며, 최소한의 다운타임으로 업데이트를 적용할 수 있습니다.

  • 비용최적화 (Cost Optimization) 💵
    대기업에서는 네트워크를 설계할 때 직접적인 피어링 연결을 고려하여 상호 이익을 얻을 수 있는 피어링 파트너, 피어(Peer)를 네트워크 구성에 포함시킬 수 있습니다.
    네트워크 피어링에 대한 자세한 내용은 이 글에서, 클라우드 VPC 피어링에 대해서는 여기서 더 확인하실 수 있습니다.

네트워크 구성 : 물리적(Physical)? 논리적(Logical)?

이제 네트워크는 스위치, 라우터, 방화벽, 케이블과 같은 하드웨어, 물리적 인프라뿐 아니라 소프트웨어로 정의된 가상화된 네트워크 요소들까지 포함되어 구성되곤 합니다. (가장 쉬운 예로 VPN이 있네요)

소프트웨어로 정의된 네트워크(SDN, Software-Defined Network)는 물리적인 네트워크 위에서 동작하며, 물리적인 수준에서 적용할 수 없는 기술들을 사용하여 최적의 네트워킹을 가능케 합니다.

그래서 네트워크 구성도(Topology)는 물리적인 레이어와 논리적인 레이어를 모두 지원할 수 있어야 합니다. 각 레이어에서 네트워크 노드 간의 관계가 어떻게 되는지 보여줄 수 있어야 하죠.

물리적인 네트워크 라우터 장비간의 연결 뿐 아니라, 소프트웨어를 통해 IP 주소가 부여된
컨테이너나 가상머신(VM)이 네트워크에서 서로 어떻게 통신하고 있는지 보여줄 수 있어야 하죠.

그리고 가상화된 네트워크 호스트(컨테이너, 가상머신)가 어떤 물리적 네트워크 인프라를 통해 통신하고 있는지 알 수 있어야 합니다. 네트워크의 물리적 레이어와 논리적 레이어를 연계해서 이해할 수 있을 때, 네트워킹을 온전히 이해하고 문제 상황에 대응할 수 있습니다.

다양한 최신 네트워크 아키텍처

최근에는 다양한 네트워크 구성들을 찾아볼 수 있습니다.
그 유형에 따라 고유한 특성과 사용 사례들을 가지고 있죠.

과거에는 물리적, 하드웨어 네트워크 구성을 통해 Bus, Ring, Star 토폴로지를 사용했지만,
이제는 아래와 같이 진보된, 다양한 네트워크 구성들을 사용하고 있죠.

Mesh 네트워크

그물망과 같은 메쉬 네트워크에서는 하나의 네트워크 노드(Node)가 다른 모든 네트워크 노드들과 연결되어, 데이터가 여러 경로를 통해 전달될 수 있습니다. 일반적으로 무선 네트워크나 데이터센터의 유선 네트워크에서 사용됩니다.

Hybrid 네트워크

하이브리드 네트워크 토폴로지는 두 가지 이상의 네트워크 유형을 결합해서 복잡하지만 효율적인 네트워크를 뜻합니다. 아래 이미지와 같이 Star 네트워크와 Mesh 네트워크를 결합해서, Star 네트워크의 단순함과 관리용이성, 그리고 Mesh 네트워크의 안정성을 모두 취할 수 있습니다.

SDN, Software-Defined Network

SDN은 데이터 패킷의 라우팅 방식을 결정하는 컨트롤 플레인(Control Plane), 그리고 컨트롤 플레인의 결정에 따라 라우팅을 수행하는 데이터 플레인(Data Plane)으로 네트워크 구성 방법론입니다.

컨트롤 플레인과 데이터 플레인을 분리한 뒤, 물리적인 연결성과 별개로 데이터 패킷이 흐르는 방식을 나타내는 논리적 네트워크 구성을 만들어냅니다.
반면, 물리적 네트워크 구성은 네트워크를 구성하는 장비와 케이블의 물리적인 레이아웃을 나타냅니다.

SDN은 소프트웨어를 통해 네트워크를 중앙(컨트롤 플레인)에서 관리하여, 물리적인 네트워크 구성을 변경하지 않으면서도 네트워킹 요구 사항에 따라 논리적 네트워크 구성을 변경할 수 있습니다.
데이터 패킷이 흐르는 네트워킹 방식을 유연하게 만들어 전반적인 네트워크 관리와 운영이 쉽게 이뤄질 수 있죠. SDN은 물리적인 구성은 그대로 유지하되, 논리적인 구성을 신속하게 재구성하여 급변하는 네트워킹 수요에 대응할 수 있게 해줍니다.

다만, 물리적 네트워크 구성과 논리적 네트워크 구성의 차이점을 정확히 이해해야 합니다.
그 차이점에서 SDN의 네트워크 성능과 트러블슈팅, 그리고 최적화에 대한 아이디어를 얻을 수 있기 때문이죠. SDN 기술에 대한 내용은 이전 SD-WAN 관련 글에서 더 확인해보실 수 있습니다.

P2P 네트워크 (Peer-to-Peer)

피어 투 피어, P2P 네트워크는 중앙 서버에 의존하지 않고 네트워크 노드(Node) 간 인터커넥션(Interconnection)을 형성합니다. 이런 네트워크 구성은 스타크래프트, 파일 공유 서비스 등 사용자 간 데이터 리소스가 직접 공유될 때 사용합니다.

Tree/Hierarchical 네트워크

Tree 토폴로지는 Star 토폴로지와 Bus 토폴로지를 결합한 네트워크 구성입니다. 여러 레벨의 네트워크 장비들을 계층적으로 구성하죠.
Tree 토폴로지는 일반적으로 WAN이나 대규모 Private WAN에서 사용됩니다.

Virtual/Overlay 네트워크

버추얼, 오버레이 네트워크는 기존의 물리적인 네트워크 구성 위에서 생성되어, 물리적인 네트워크 레이어와는 다른 독립적인 네트워크 구성을 가져갑니다.
VPN, SD-WAN, VXLAN, VLAN 등 다양한 용도로 사용되며, 유연한 네트워크 구성을 가능하게 합니다.

클라우드 네트워크 (Cloud/Multi-tenant)

클라우드 네트워크 구성에서는 다양한 조직이 Multi-tenant가 되어, CSP의 클라우드 네트워크 인프라를 공유하여 사용합니다. 클라우드 네트워크 구성에서는 각 조직의 필요에 따라 네트워크 리소스를 유연하게 활용할 수 있어 다양한 이점을 얻을 수 있습니다.

하이브리드 클라우드 네트워크 (Hybrid Cloud network)

'하이브리드 클라우드 네트워크'는 온프레미스 데이터센터(프라이빗 클라우드)와 퍼블릭 클라우드 서비스를 함께 사용하는 환경입니다.

하이브리드 클라우드 네트워크 사용 시, 온프레미스 인프라의 장점과 퍼블릭 클라우드 서비스가 제공하는 확장성과 유연성을 동시에 활용할 수 있습니다.

그래서 최근 대부분의 기업에서 하이브리드 클라우드 네트워크 인프라를 구성하여 사용하고 있죠.

레거시 물리적/하드웨어 네트워크 아키텍처

위에서 논했던 다양한 최신 네트워크 아키텍처들의 기반이 되었지만, 이제는 레거시한 네트워크 아키텍처가 되어버린, 과거 LAN에서 자주 사용된 구성들에 대해서 이야기해보겠습니다.

Bus 네트워크

버스 네트워크 구성에서는 모든 네트워크 노드가 '버스/백본' 이라고 부르는 중앙의 케이블에 연결됩니다.
데이터 패킷은 버스를 따라 한 방향으로 전송되며, 각 노드는 데이터를 수신하고 패킷에서 노드 주소를 확인한 뒤 데이터를 처리하거나 다시 버스로 전달합니다.

버스 네트워크는 설정이 간편하고 비용이 저렴하지만, 확장성과 안정성에 한계가 뚜렷했습니다.
중앙 집중식 네트워크로 버스 케이블에 장애 발생 시, 전체 네트워크가 장애를 겪게 됩니다.
나아가 노드가 추가될 때 마다 네트워크 성능이 낮아지는 문제점이 있습니다.

Ring 네트워크

모든 노드가 폐쇄된 루프(Loop)에 연결되어, 데이터가 목적지에 도달할 때까지 루프의 노드들을 따라 전송됩니다. 모든 노드가 리피터 역할을 하게 되죠.
Bus 네트워크 보다는 성능이 우수하지만 여전히 한계가 있습니다. 하나의 노드나 케이블에 장애가 생기면 전체 네트워크에 장애가 발생하기 때문이죠.

Star 네트워크

Star 네트워크에서 모든 노드는 허브, 라우터, 스위치와 같은 중앙 네트워크 장비에 연결됩니다.
Source 노드에서 중앙 네트워크 장비로 데이터가 전송되고, 중앙 네트워크 장비는 이를 Destination 노드로 전달합니다.

스타 네트워크는 버스, 링 네트워크에 비해 확장성, 트러블슈팅, 재해복구 등 다양한 측면에서 더 많은 장점을 가지고 있습니다.
하나의 노드나 케이블에 장애가 발생해도 나머지 네트워크에는 영향을 미치지 않기 때문이죠.

그러나 중앙 네트워크 장비 장애 시, 전체 네트워크가 장애를 겪게됩니다. 게다가 네트워크가 성장하게 되면 중앙 네트워크 장비의 성능이 저하되는 병목 현상이 발생할 수 있습니다.

클라우드에서의 네트워크 구성도

기업 네트워크가 모두 클라우드 네트워크로 이뤄져있거나, 일부분이라도 클라우드 인프라를 사용하는 경우가 많아졌습니다.

이제 네트워크 팀은 네트워크 토폴로지를 통해 온프레미스, 클라우드 모든 구간의 네트워크 아키텍처와 더불어, 온프레미스 네트워크 노드가 클라우드 인프라에 어떻게 매핑되는지 이해할 수 있어야 합니다.

게다가 멀티/하이브리드 클라우드 네트워크에서 생성되는 다양한 네트워크 트래픽 유형의 라우팅 경로들을 파악하고 있어야 합니다.

네트워크 구성도를 그리는 법

현대 네트워크는 너무 크고 복잡하며 빠르게 변화하기 때문에 네트워크 엔지니어가 수동으로 네트워크 구성도를 그려내는 것은 현실적으로 어려운 상황이 되었습니다.
그래서 네트워크를 자동으로 스캔하고 네트워크 구성 정보를 수집하여 구성도를 그려내는 네트워크 관리 소프트웨어를 사용하곤 합니다. (NMS의 기능 중 하나이죠)

네트워크에서 노드를 검색하는 방법은 여러 가지가 있습니다.
가장 간단한 방법은 노드가 있을만한 IP 주소로 핑을 사용해볼 수 있죠. 하지만 서브넷과 가상 네트워크가 너무 많아 실용적이지 않기 때문에 핑을 사용하는 방법은 무리가 있습니다.

그래서 SNMP(Simple Network Management Protocol)를 사용하여 네트워크 노드를 검색할 수도 있습니다. SNMP는 단순한 핑 보다는 효율적이지만 보안 이슈가 있을 수 있고, 네트워크의 모든 노드에서 SNMP를 지원하지 않을 수도 있습니다.

네트워크 구성도를 그려내는 가장 효율적인 방법은 LLDP를 이용하는 것입니다.

LLDP를 사용하면 네트워크 장비가 네트워크에서 자신의 위치를 알려주기 떄문에 네트워크 구성도를 쉽게 그려낼 수 있습니다.
네트워크 장비 벤더에 따라 LLDP와 유사한 프로토콜들을 지원하기도 하지만, 모든 장비에서 동작할 수 있는 LLDP가 현재 네트워크 구성도의 표준 프로토콜로 자리잡았습니다. (RFC 7460)

네트워크 시각화 소프트웨어, NMS

현대 네트워크 아키텍처의 복잡성을 고려할 때,
네트워크 인프라를 시각화하고 관리할 수 있는 소프트웨어를 사용하는 것은 매우 중요한 일이 되었습니다.

그래서 네트워크 시각화 소프트웨어는 네트워크 엔지니어에게 없어서는 안 될 필수 자산이 되었죠.
네트워크 시각화 솔루션은 다양한 네트워크 장비와 연결들을 자동으로 검색하고 시각화하여, 네트워크의 구조와 성능에 대한 인사이트들을 실시간으로 제공할 수 있게 설계되었습니다.

그 중에서도 가장 중요한 것은 네트워크 구성도(네트워크 토폴로지) 입니다.
시각화된 네트워크 구성도는 네트워크의 다양한 노드와 그 연결에 대한 자세한 정보들을 보여주죠.
보기 쉽게, 그리고 정확한 정보로 업데이트된 네트워크 구성도는 트래픽 분석, 트러블슈팅, 네트워크 확장 계획 등 여러 가지 네트워크 운영, 관리 관점에서 유용하게 사용할 수 있습니다.

이미 다양한 네트워크 시각화 소프트웨어가 판매되고 있지만, 실시간 맵핑, 사용 편의성, 3rd party 연동, 그리고 확장성을 기준으로 적절한 소프트웨어를 선택해야 합니다.

특히 하이브리드/멀티클라우드 네트워크 인프라의 등장으로 네트워크가 성장하고 복잡해짐에 따라, NMS 소프트웨어의 클라우드 네트워크 지원 여부가 점점 더 중요해지고 있습니다.

네트워크 구성의 가시화와 맵핑

네트워크 시각화 소프트웨어(NMS)는 네트워크 장비들의 연결 관계를 이해하고 구성도를 시각화하여 그려낼 수 있습니다. 구성도에는 호스트 이름이나 IP 주소와 같은 데이터를 기반으로 각 노드에 레이블을 붙이고, 네트워크 노드 사이에 존재하는 네트워크 링크까지 그려냅니다.

이렇게 네트워크 구성도를 그려내면 네트워크 팀에게 어떤 Benefit을 제공할까요?

  • 시각화
    네트워크 구성도는 네트워크의 구조를 시각적으로 나타내어, 네트워크의 설계, 연결, 종속성을 더 쉽게 이해하고 분석할 수 있습니다.

  • 트러블슈팅
    네트워크 구성도는 문제를 신속하게 파악하고, 영향을 받는 네트워크 장비나 네트워크 링크를 찾고, 최선의 트러블슈팅 방법을 찾는데 큰 도움이 됩니다.

  • 네트워크 설계와 최적화
    네트워크 구성도는 네트워크 확장/변경 계획 시 그 결과가 어떠할지 유추하는데 사용되기도 합니다.
    나아가 더 나은 성능과 효율성을 위해 네트워크 구성을 최적화하는 데에도 유용한 도구로 사용됩니다.

  • 소통, 협업, 문서화
    네트워크 구성도는 복잡한 네트워크를 시각화해서 보여주기 때문에, 다양한 부서와 팀 간의 커뮤니케이션과 협업을 가능하게 합니다.
    그리고 향후 네트워크 트러블슈팅과 업데이트, 재설계 과정에서 사용될 수 있는 네트워크 아키텍처에 대한 일종의 문서고 역할도 합니다.

위 Kentik - AWS Topology에서 보여주는 네트워크 구성도를 통해
네트워크 엔지니어는 온프레미스 - AWS 구간의 네트워크 경로를 추적하여, 어떤 네트워크 노드를 통해 누가 서로 통신하고 있는지 빠르게 시각화할 수 있습니다.

그리고 네트워크에서 서로 다른 세그먼트가 교차하거나 대량의 트래픽이 하나의 네트워크 링크에 몰리는 병목 구간을 쉽게 식별할 수 있습니다.
위와 같은 상황에서 해당 네트워크 링크가 다운될 시, 여러 노드에 영향을 미치는 단일 장애 지점될 수 있기 때문에 각별한 모니터링이 필요하죠.

실시간 네트워크 토폴로지

현대 네트워크 아키텍처는 네트워크 노드의 변경이 매우 잦기 때문에, 네트워크 토폴로지를 주기적으로 맵핑하는 것만으로는 실시간 네트워크 토폴로지를 그려낼 수 없습니다.

그래서 네트워크 시각화 솔루션은 네트워크 토폴로지를 실시간으로 추적하고 시각화할 수 있어야 합니다. 노드가 네트워크에 추가되거나 삭제될 때, 가상 네트워크가 정의되거나 수정될 때, IP 주소가 변경될 때 등 네트워크 토폴로지는 지속적으로 업데이트되어야 합니다.

그래야만 작은 네트워킹 이슈가 심각한 장애로 이어지는 상황을 미연에 방지할 수 있습니다.
네트워크 구성도가 실시간으로 업데이트되지 않는다면, 장애 구간을 정확하게 탐지해내기 어려울테니까요.

네트워크 구성도와 모니터링 솔루션의 Integration

이제 대부분의 네트워크 모니터링 솔루션에서 네트워크 구성도를 통합하여 제공합니다.
네트워크 구성도와 모니터링을 동시에 사용하면 네트워크 성능과 보안성, 그리고 트러블슈팅 능력에 어떤 Benefit을 받을 수 있는지 이야기해보겠습니다.

  • 네트워크 인프라 시각화
    네트워크 엔지니어, 인프라 엔지니어, 클라우드 아키텍트, SRE 등 네트워크 인프라에 관련된 모두가 온프레미스/클라우드 네트워크 인프라의 모든 구간을 시각화할 수 있습니다.
    통합된 네트워크 구성도를 통해 서로 다른 네트워크 인프라 간 트래픽과 네트워크 성능, 네트워크 상태를 한 눈에 확인할 수 있기 때문에, 네트워크 운영 관리의 효율성을 극대화할 수 있습니다.

  • 네트워크 상태 & 트래픽 시각화
    네트워크의 전반적인 상태와 트래픽을 시각화함으로써, 네트워크 엔지니어가 다운되거나 임계치에 다다른 인터페이스를 신속하게 찾아낼 수 있습니다. 앞서 논했던 SNMP를 사용하여 네트워크 인프라의 상태에 대한 인사이트들을 제공합니다.
    그리고 트래픽 시각화를 통해 다양한 구간의 네트워크 트래픽에 대한 심층적인 분석이 가능합니다.
    이로써 빠르고 효과적인 트러블슈팅을 가능케하여 최적의 네트워크 성능을 보장할 수 있습니다.

  • 네트워크 아키텍처 시각화
    특정 네트워크의 인프라 구성 노드들을 시각화하는 것에 더하여, 거시적인 네트워크 아키텍처를 시각화할 수 있어야 합니다.
    이를 통해 온프레미스 네트워크와 퍼블릭 클라우드, 나아가 멀티 클라우드 환경에서의 네트워크 아키텍처를 시각화할 수 있습니다.
    단순한 네트워크 노드 구성도가 아닌 다양한 네트워크 간 실제 트래픽 흐름이 어떠한지 분석함으로써, API 트래픽, 라우팅 경로, 퍼블릭 클라우드 서비스 트래픽 등 다양한 측면에서의 네트워크 아키텍처 분석과 개선이 가능해집니다.

마치며

읽어주셔서 감사합니다.

네트워킹 기술과 시장에 대한 소통, 언제나 환영합니다! 🙌
Coffee chat 신청하기
메모 남겨주시면 간단한 커피챗을 통해 저희 팀의 경험을 공유해드릴게요 😊

에어키는 네트워크 옵저버빌리티 플랫폼, kentik의 파트너로 활동하고 있습니다.
문의처 - 에어키 MSP팀 김상휘 프로 (shkim0730@airquay.com, +82-10-2914-9400)

이 글은 kentik의 kentipedia 문서의 번역/수정본이며 오역이 있을 수 있습니다. (출처)

profile
에어키 MSP팀에서 네트워킹, 보안, 옵저버빌리티를 지원하고 있습니다 :)

0개의 댓글