자동 생성된 네트워크 토폴로지로 효율적인 인프라 관리하기
대규모 네트워크 환경에서는 장비 간 연결 상태를 파악하고, 물리적·논리적 구조를 직관적으로 이해하는 것이 중요한 과제입니다. NetBox는 IPAM 및 DCIM 기능을 제공하는 오픈소스 도구로, 여기에 netbox-topology-views 플러그인을 추가하면 별도의 설정 없이도 실시간 네트워크 맵을 생성할 수 있습니다.
기존 방식의 한계점
- 표 형식 데이터의 비시각성: 케이블 연결 정보가 테이블로만 존재하면 전체 아키텍처 파악이 어렵습니다.
- 장애 진단 지연: 문제 발생 시 관련 장비를 추적하려면 수작업 리뷰가 필요합니다.
- 설계 의사결정 어려움: 확장 또는 리팩터링 시 시각적 근거 부족으로 판단 오류 가능성이 높아집니다.
해결책: netbox-topology-views 소개
이 플러그인은 NetBox 내에서 이미 구성된 케이블, 전원, 회로 정보를 기반으로 다이어그램을 자동 생성합니다. 사용자는 장비 이름, 사이트, 역할, 태그 등을 기준으로 필터링하여 특정 영역만 시각화할 수 있으며, 다양한 디스플레이 옵션을 통해 목적에 맞는 뷰를 구성할 수 있습니다.
빠른 설치 및 활성화 절차
source /opt/netbox/venv/bin/activate
cd /opt/netbox/netbox
pip install netbox-topology-views
python manage.py migrate netbox_topology_views
python manage.py collectstatic --noinput
systemctl restart netbox
기본 플러그인 설정 (configuration.py)
PLUGINS = [
"netbox_topology_views",
]
PLUGINS_CONFIG = {
"netbox_topology_views": {
"static_image_directory": "topology_images",
"allow_coordinates_saving": True,
"always_save_coordinates": False,
"preselected_device_roles": ["core-switch", "firewall", "router"]
}
}
이 설정을 통해 아이콘 저장 경로를 지정하고, 사용자 조정 위치를 유지할 수 있도록 하며, 초기 필터링 대상을 정의할 수 있습니다.
주요 기능 및 활용 사례
- 데이터센터 맵핑: 서버, 토르 스위치, 엣지 라우터 간의 물리적 연결을 한눈에 확인.
- 멀티사이트 연결 분석: 원격 지사와 본사 간 WAN 링크 상태 시각화.
- 하이브리드 클라우드 통합 모델링: 온프레미스 장비와 클라우드 게이트웨이 간의 경로 표현.
시각화 옵션 비교표
| 옵션 | 설명 | 사용 목적 |
|---|---|---|
| 미연결 장비 표시 | 케이블이 없는 독립 장비 노출 | 누락된 연결 검토 |
| 물리적 케이블 표시 | 직선으로 연결된 인터페이스 표현 | 실제 배선 검증 |
| 논리적 인터페이스 링크 | LACP, LAG 등 그룹 연결 표현 | 논리 아키텍처 분석 |
| 회로 종단점 표시 | 파란색 점선으로 서비스 공급망 연결 | 외부 링크 관리 |
| 전원 공급 경로 | PDU → 서버 또는 UPS 연결 트리 | 전력 계획 및 장애 대응 |
필터링 전략과 운영 팁
다음과 같은 필터 조합을 통해 효율적인 네트워크 감시가 가능합니다:
- 역할 기반 필터: "distribution-switch"만 표시하여 계층별 분석
- 지역 필터: site=SEOUL_DC1로 특정 지역 집중
- 태그 기반 필터: env=production으로 운영망만 추출
아이콘 및 시각 스타일 커스터마이징
플러그인은 각 장비 역할에 따라 다른 이미지를 매핑할 수 있는 기능을 제공합니다. 예를 들어:
- 라우터 → router-icon.svg
- 방화벽 → fw-device.png
- 서버 → server-rack.svg
이러한 설정은 문서 작성이나 발표 자료 제작 시 일관된 그래픽 표현을 보장합니다.
고급 기능: 좌표 그룹과 레이아웃 관리
사용자는 여러 개의 좌표 그룹(Coordinate Groups)을 생성하여 동일한 장비 세트를 다양한 관점에서 표현할 수 있습니다:
- 물리적 레이아웃: 실제 랙 위치 기반 배열
- 논리적 흐름도: 트래픽 흐름 중심 재배열
- 보안 존 뷰: DMZ, 내부망, 외부망 분리 표시
또한, d3.js 기반 물리 엔진이 장비 간 최적 거리를 자동 계산하며, 사용자가 특정 장비를 고정하면 나머지 요소가 이를 기준으로 재배치됩니다.
문제 해결 가이드
토폴로지에 장비가 나타나지 않을 경우
- 장비 간 케이블 연결이 NetBox에 등록되었는지 확인
- 해당 장비 역할(role)이 필터에 의해 제외되지 않았는지 점검
- 사용자 권한에서 topology 메뉴 접근이 허용되어 있는지 검토
플러그인이 로드되지 않는 경우
- NetBox 버전이 3.5.1 이상인지 확인 (Python 3.8+ 필요)
- plugins 설정 문법 오류 유무 확인 (콤마, 중괄호 누락 등)
- 정적 파일 수집 후 웹 서버 재시작 여부 확인
성능 최적화 팁
- 노드 수가 100개를 초과하면 필터를 사용해 범위 축소
- 불필요한 좌표 데이터는 주기적으로 정리
- 빈번한 레이아웃 변경 시
always_save_coordinates = False권장
유용한 단축키 및 내보내기 기능
인터랙티브 뷰에서 다음 조작이 가능합니다:
- Shift + 드래그: 다중 선택
- 스크롤 휠: 확대/축소
- 클릭 및 드래그: 개별 장비 이동
생성된 맵은 다음과 같은 형식으로 내보낼 수 있습니다:
- PNG: 보고서 첨부용 고해상도 이미지
- XML (draw.io 호환): 후속 편집 가능한 포맷