GestioIP IPAM 소개

GestioIP IPAM 개요

1. GestióIP 정의

  • GestióIP는 자동화된 네트워크 발견(Network Discovery) 기능을 핵심으로 하는 오픈소스 웹 기반 IP 주소 관리(IPAM) 솔루션
  • Perl 언어로 개발되었으며, MySQL/MariaDB 데이터베이스 사용
  • GestióIP의 핵심
    • 네트워크를 발견(Discover)
    • 결과를 문서화(Document)
    • 정보 체계적으로 정리(Organize)
  • 단순히 IP 주소 목록을 수동으로 기록하는 것을 넘어, SNMP, DNS, ICMP 등 다양한 프로토콜을 활용해 네트워크상의 살아있는 장비(호스트), 서브넷, VLAN, 라우팅 정보 등 능동 탐지 및 결과 중앙 데이터베이스에 자동 반영


2. 개발 배경 및 특징

  • 개발 배경
    • GestióIP는 IPAM 시스템에서 데이터의 정확성과 최신성을 유지하는 것이 가장 중요하다는 문제의식에서 출발
    • 수동 관리에 의존하는 IPAM 시스템은 시간이 지남에 따라 실제 네트워크와 정보가 불일치하게 되는 데이터 노후화(Data Aging) 문제 발생
  • 특징
    • 네트워크 발견 중심 아키텍처

      • SNMP를 통해 네트워크 장비(스위치, 라우터)의 ARP 캐시, MAC 주소 테이블, 라우팅 테이블을 직접 읽어와 IP-MAC-스위치 포트 간의 관계 매핑 (다른 IPAM 솔루션과 차별화 포인트)

    • 웹 GUI와 CLI의 완벽한 조화

      • 직관적인 웹 인터페이스는 일상적인 조회 및 관리 작업에 적합하며, 모든 기능은 명령줄 인터페이스(CLI)를 통해서도 동일하게 수행

      • CLI는 대량의 네트워크를 추가하거나, 주기적인 스캔 작업을 자동화하고, 다른 시스템과 연동하는 데 필수적

    • 통합된 네트워크 인프라 관리

      • IP 주소뿐만 아니라 VLAN, VRF, 회선(Circuits), 네트워크 장비 인벤토리 정보까지 통합하여 관리할 수 있는 포괄적인 기능 제공

    • 강력한 검색 및 리포팅

      • 정교한 필터링 시스템을 통해 원하는 조건의 데이터를 쉽게 찾을 수 있으며, IP 사용 현황, 중복 IP 탐지 등 다양한 내장 보고서 제공


3. GestióIP의 아키텍처

  • 백엔드 (Backend)

    • Perl로 작성

    • Perl은 텍스트 처리와 시스템 자동화에 강점을 가진 언어로, 네트워크 장비로부터 받은 데이터를 파싱하고 처리하는 데 효율적

  • 웹 서버 (Web Server)

    • Apache2를 공식적으로 지원하며, CGI(Common Gateway Interface) 또는 mod_perl을 통해 백엔드 스크립트 실행

  • 데이터베이스 (Database)

    • MySQL 또는 MariaDB를 사용해 모든 네트워크 정보를 영구적으로 저장

  • 인터페이스 (Interfaces)

    • 웹 GUI

      • HTML, CSS, JavaScript로 구성된 사용자 인터페이스
    •  CLI
      • 시스템에 직접 접근하여 모든 기능을 제어할 수 있는 Perl 스크립트(gestioip_*.pl).


4. 주요 사용자 및 대상 환경

  • 중대규모 기업 네트워크

    • 수많은 서브넷과 VLAN, 다수의 네트워크 장비가 존재하는 복잡한 환경에서 네트워크 현황을 정확하게 파악하고 문서화하고자 할 때 유용

  • 인터넷 서비스 제공자 (ISP)

    • 고객별로 할당된 네트워크와 VRF, 회선 정보를 체계적으로 관리하고, IP 사용률을 추적하는 데 적합

  • 데이터 센터

    • 서버, 스위치, 랙 위치 등 물리적 정보와 IP, VLAN 등 논리적 정보를 연계해 통합된 데이터 센터 인프라 관리(DCIM)의 기초를 다짐

  • 보안 및 규정 준수(Compliance)가 중요한 조직

    • 네트워크에 연결된 모든 장치를 자동으로 탐지하고 기록함으로써 인가되지 않은 장비의 접속을 식별하고, IT 자산 현황을 정확하게 보고하는 데 활용 가능


2.설치 및 시스템 아키텍처

1. 시스템 요구사항

  • 운영체제 (Operating System)

    • Debian, Ubuntu, RHEL, CentOS 등 대부분의 Linux 배포판 지원

  • 웹 서버 (Web Server)

    • Apache 2.x 버전.

  • 데이터베이스 (Database)

    • MySQL 5.x 이상 또는 MariaDB.

  • Perl

    • Perl 5.10 이상 버전이 필요하며, CPAN(Comprehensive Perl Archive Network)을 통해 다수의 필수 모듈 필요

    • 주요 Perl 모듈: DBI, DBD::mysql, Net::SNMP, Net::DNS, CGI, XML::Simple 등 수십 개의 모듈 필요

  • 기타 유틸리티

    • SNMP 쿼리를 위한 snmp-mibs-downloader, snmp 패키지 등이 필요


2. 기술 아키텍처 상세

  • 2.1. 웹 인터페이스 계층

    • 사용자가 GestióIP와 상호작용하는 주된 창구

    • Apache 웹 서버 위에서 동작하며, 사용자의 HTTP 요청을 받아 CGI 스크립트 형태로 백엔드 Perl 코드 실행

    • 결과는 HTML 페이지로 렌더링되어 사용자 시각화

  • 2.2. 애플리케이션 계층 (Backend)

    • 이 계층은 웹 인터페이스 또는 CLI를 통해 전달된 요청 처리

    • 핵심 스크립트

      • gestioip.cgi

        • 웹 요청을 처리하는 메인 CGI 스크립트

      • gestioip_discover.pl

        • 네트워크 발견 작업 수행 스크립트

        • SNMP, DNS, Ping을 이용한 스캔 로직이 포함

      • gestioip_cli.pl

        • 모든 관리 기능을 명령줄에서 수행할 수 있도록 하는 CLI 래퍼(Wrapper) 스크립트

  • 2.3. 데이터 계층 (Database)

    • MySQL/MariaDB 데이터베이스가 모든 데이터 저장

    • 스키마는 네트워크 자산 간의 관계를 표현하도록 설계

    • 주요 테이블

      • networks

        • 서브넷 정보, 카테고리, VLAN ID 등 저장

      • nodes

        • 개별 호스트(IP 주소) 정보, 상태, MAC 주소, 스위치 포트 정보 등 저장

      • vlans

        • VLAN 정보 및 설명을 저장

      • vrf

        • VRF 정보를 저장.

      • clients, locations

        • 고객사나 물리적 위치 정보를 관리.

  • 2.4. 명령줄 인터페이스 (CLI)

    • 웹 GUI와 별개로, 시스템의 모든 기능에 직접 접근할 수 있는 인터페이스

    • 쉘 스크립트와의 연동이 용이하여, "네트워크 B를 추가하고, 해당 네트워크를 스캔한 후, 결과를 특정 포맷으로 보고하라"와 같은 일련의 작업을 단일 스크립트 자동화 가능


3. 설치 절차

  • 3.1. 패키지를 이용한 설치

    • GestióIP는 Debian/Ubuntu용 .deb 패키지와 RHEL/CentOS용 .rpm 패키지 제공

    • 패키지 관리자(apt, yum)를 사용하면 필요한 모든 의존성(Perl 모듈, Apache 설정 등)이 자동으로 설치되므로 가장 간편하고 권장되는 방법

      # Debian/Ubuntu 예시
      dpkg -i gestioip_3.x.x-x_all.deb
      apt-get -f install # 의존성 문제 해결
      
      
  • 3.2. 소스코드(tarball)를 이용한 수동 설치

    1. 공식 웹사이트에서 최신 버전의 .tar.gz 파일을 다운로드하여 원하는 위치(예: /usr/local/share/gestioip)에 압축 해제

    2. gestioip_install_dependencies.pl 스크립트를 실행하여 필요한 Perl 모듈을 CPAN을 통해 자동 설치

    3. Apache 설정 파일을 /etc/apache2/conf-available/ 같은 위치에 복사하고, a2enconf gestioip 명령으로 활성화

    4. MySQL/MariaDB에 접속하여 GestióIP가 사용할 데이터베이스와 사용자 생성

    5. 제공되는 gestioip.sql 파일을 사용하여 생성된 데이터베이스에 기본 스키마와 데이터 임포트

    6. 메인 설정 파일인 gestioip.conf를 환경에 맞게 편집 (데이터베이스 연결 정보, 기본 경로 등).

    7. 파일 권한을 웹 서버 사용자에 맞게 조정한 후 Apache 서비스 재시작


3. 설치 및 시스템 아키텍처

1. 네트워크 및 호스트 관리

  • 1.1. 계층적 네트워크 관리

    • GestióIP는 카테고리(Categories)를 사용해 네트워크를 논리적으로 그룹화

    • 이는 파일 시스템의 디렉터리와 유사하게 동작하며, 다단계의 중첩된 카테고리 생성 가능

    • 예시) '글로벌 네트워크' > '아시아-태평양' > '대한민국' > '서울 IDC' > '운영 서버망'과 같은 직관적인 계층 구조로 수천 개의 서브넷 정리 가능

  • 1.2. IP 주소 상태 관리

    • 각 IP 주소는 자동 발견 및 수동 설정을 통해 다음과 같은 상태를 가진다.

    • Up

      • Ping 스캔을 통해 현재 응답이 있는 활성 상태

    • Down

      • Ping 스캔에서 응답이 없는 비활성 상태

    • Reserved

      • 관리자가 특정 용도를 위해 예약한 상태

      • 자동 할당 대상에서 제외

    • DHCP

      • DHCP에 의해 할당된 주소임을 표시

  • 1.3. 호스트 정보 상세 관리:

    • IP 주소와 관련된 호스트에 대해 매우 상세한 정보를 기록할 수 있다.

    • 기본 정보: IP 주소, 호스트명(DNS), MAC 주소.

    • 네트워크 연결 정보: 연결된 스위치의 이름 및 포트 번호 (SNMP 발견을 통해 자동 업데이트).

    • 자산 정보: 장비 유형(서버, 스위치, 프린터 등), 제조사, 모델명, 운영 체제.

    • 관리 정보: 물리적 위치(빌딩, 층, 랙 번호), 담당자, 고객사 정보.


2. 자동화된 네트워크 발견 (Automated Network Discovery)

  • 2.1. 다양한 발견 메커니즘

    • SNMP (Simple Network Management Protocol)

      • 관리자는 스위치와 라우터의 SNMP 커뮤니티 문자열 등록 필요

      • GestióIP는 이 정보를 사용해 장비에 직접 쿼리하여 다음 정보 수집

        • ARP 테이블 (Address Resolution Protocol): IP 주소와 MAC 주소의 매핑 정보 수집

        • MAC 주소 테이블 (CAM Table): MAC 주소가 스위치의 어느 포트에 연결되어 있는지 확인

        • 라우팅 테이블: 라우터가 알고 있는 네트워크 경로 정보를 수집해 새로운 서브넷을 자동 발견

      • 위 세 가지 정보를 조합해, "어떤 IP가 어떤 MAC 주소를 가지며, 현재 어느 스위치의 몇 번 포트에 연결되어 있는지" 자동 매핑

    • DNS (Domain Name System)

      • 역방향 조회 (Reverse DNS Lookup)

        • IP 주소를 기반으로 PTR 레코드를 조회하여 호스트명을 자동 수집

      • 정방향 조회 (Forward DNS Lookup)

        • 호스트명을 기반으로 A/AAAA 레코드를 조회해 IP 주소 확인

      • Zone Transfer

        • DNS 서버로부터 Zone 전체 정보를 전송받아 해당 도메인의 모든 호스트를 한 번에 등록 가능

    • Ping Sweep:

      • 지정된 서브넷 대역의 모든 IP 주소에 대해 ICMP Echo Request (Ping)를 보내 응답 여부 확인

      • 이를 통해 각 IP의 활성/비활성(Up/Down) 상태 판단

  • 2.2. 주기적 동기화

    • 이러한 발견 작업은 cron과 CLI 스크립트(gestioip_discover.pl)를 결합해 자동화

    • 예시) 매일 새벽에 전체 네트워크를 대상으로 SNMP 및 Ping 스캔을 수행 설정시, 관리자의 개입 없이도 IPAM 데이터베이스는 항상 네트워크의 최신 상태를 유지


3. VLAN 및 VRF 관리

  • 3.1. VLAN 관리

    • 네트워크 내에 존재하는 모든 VLAN을 등록하고 관리하는 VLAN 데이터베이스 기능 제공

    • 각 VLAN에 이름, 번호, 설명 부여 가능

    • 생성된 VLAN 정보는 서브넷과 매핑

      • '192.168.10.0/24' 서브넷이 'VLAN 10 (서버망)'에 속한다고 지정 가능

    • SNMP 발견 기능을 통해 스위치에서 직접 VLAN 정보를 읽어와 데이터베이스 자동으로 채움

  • 3.2. VRF 관리

    • MPLS와 같은 가상 라우팅 환경을 지원하기 위해 VRF(Virtual Routing and Forwarding) 관리 가능

    • 각 VRF를 정의하고, 서브넷을 특정 VRF에 할당함으로써, 서로 다른 VRF에 속한 동일한 IP 대역(예: 여러 고객사의 192.168.1.0/24)이 충돌 없이 관리


4. 고급 기능 및 관리 도구

1. 명령줄 인터페이스 (CLI) 활용

  • 1.1. CLI의 장점

    • 대량 작업 (Bulk Operations)

      • 수백 개의 네트워크를 추가하거나, 특정 조건을 만족하는 수천 개의 호스트 정보를 한 번에 업데이트하는 등의 작업을 스크립트를 통해 처리

    • 자동화 및 스크립팅

      • cron과 결합해 주기적인 리포트 생성, 데이터 백업, 네트워크 발견 등 자동화

    • 시스템 통합

      • 다른 관리 시스템(예: NMS, 프로비저닝 툴)의 워크플로우 내에 GestióIP CLI 명령을 포함해 완벽한 자동화 파이프라인을 구축

  • 1.2. 주요 명령어 예시 (gestioip_cli.pl 사용)

    • 새로운 네트워크 추가

      gestioip_cli.pl -user <user> -pass <pass> -add_net -net 10.10.20.0/24 -category "Seoul_IDC/Servers" -vlan 20
      
      
    • 특정 호스트 정보 조회

      gestioip_cli.pl -user <user> -pass <pass> -get_host -host 10.10.20.5 -details
      
      
    • 특정 네트워크에 대한 발견 작업 실행

      gestioip_cli.pl -user <user> -pass <pass> -discover_net -net 10.10.20.0/24 -snmp -ping
      
      
    • 모든 네트워크의 사용률 보고서 생성

      gestioip_cli.pl -user <user> -pass <pass> -list_nets -stats
      
      


2. 웹 기반 API

  • 2.1. JSON API

    • 특정 URL에 GET 또는 POST 요청을 보내는 방식으로 동작

    • CLI에 비해 기능의 폭은 다소 제한적이지만, 웹 기반 애플리케이션이나 간단한 스크립트에서 GestióIP의 데이터를 조회하는 용도로 쉽게 활용
    • 예시) http://gestioip.example.com/api/get_host?ip=10.10.20.5와 같은 URL을 호출하면 해당 IP의 호스트 정보를 JSON 형식으로 반환

3. 리포팅 및 분석

  • 3.1. 내장된 리포트

    • 웹 인터페이스를 통해 다양한 종류의 사전 정의된 보고서 생성 가능

    • 네트워크 통계

      • 전체 또는 특정 카테고리의 네트워크 목록과 각 네트워크의 IP 주소 총 개수, 할당된 개수, 사용률(%) 등의 시각화

    • 중복 IP 리포트

      • 네트워크 내에서 동일한 IP 주소가 여러 번 할당된 경우를 탐지해 시각화

    • 가용 IP 목록

      • 특정 네트워크에서 현재 할당 가능한 IP 주소의 목록 시각화

    • 서브넷 계산기

      • IP 주소와 서브넷 마스크를 입력해 네트워크 주소, 브로드캐스트 주소, 호스트 범위 등을 계산해주는 도구를 내장

  • 3.2. 데이터 필터링 및 검색

    • 웹 UI의 네트워크 및 호스트 목록 페이지에는 강력한 필터링 기능 내장

    • 예시)  '제조사가 Cisco이고, 모델명이 C2960이며, 서울 IDC에 위치한 모든 스위치'와 같은 복잡한 조건으로 데이터를 검색하고 결과를 엑셀(CSV) 형식으로 내보낼 수 있음

4. 사용자 및 권한 관리

  • 역할 (Roles)

    • '관리자(Administrator)', '운영자(Operator)', '읽기 전용 사용자(Read-only User)' 등 다양한 역할 정의

  • 권한 할당

    • 각 역할에 대해 특정 기능(네트워크 추가/수정/삭제, 발견 작업 실행 등)에 대한 수행 권한을 부여하거나 제한 가능

  • 접근 제어

    • 사용자를 특정 네트워크 카테고리에만 접근하도록 제한

    • 예시) '서버팀' 사용자는 '서버망' 카테고리 하위의 네트워크만 보고 수정할 수 있도록 설정하여, 다른 네트워크에 영향을 주는 것을 방지할 수 있다.

5. 통합, 마이그레이션 및 커뮤니티

1. 외부 시스템과의 통합

  • 1.1. DNS 서버 통합

    • GestióIP에 저장된 호스트명과 IP 주소 정보를 기반으로 BIND DNS 서버의 설정 파일(Zone file)을 자동으로 생성하는 기능 내장

    • CLI를 통해 이 기능을 실행하면, 데이터베이스의 정보를 읽어 정방향(A/AAAA 레코드) 및 역방향(PTR 레코드) Zone 파일 생성

  • 1.2. DHCP 서버 통합

    • ISC DHCP 서버의 설정 파일(dhcpd.conf) 생성 지원

    • GestióIP에 등록된 고정 할당(Fixed-address) 정보를 기반으로 host 블록 자동 생성 및 서브넷 선언부 생성

  • 1.3. 다른 IPAM으로부터의 마이그레이션

    • 기존에 스프레드시트(CSV)나 다른 IPAM 솔션(예: ip-plan)으로 관리하던 데이터를 GestióIP로 쉽게 이전할 수 있도록 마이그레이션 스크립트 제공

    • gestioip_import_csv.pl 스크립트는 특정 형식의 CSV 파일을 읽어들여 네트워크와 호스트 정보를 데이터베이스에 임포트 하는 기능 수행


2. 데이터 관리 및 유지보수

  • 2.1. 백업 및 복구

    • CLI를 통해 데이터베이스를 손쉽게 백업하고 복구할 수 있는 스크립트 제공

    • gestioip_backup.pl

      • MySQL 데이터베이스의 전체 덤프를 생성해 압축 파일로 저장

      • cron에 등록해 매일 자동으로 백업을 수행하도록 구성하는 것이 권장

    • gestioip_restore.pl

      • 백업된 덤프 파일을 사용해 데이터베이스를 특정 시점으로 복구

  • 2.2. 업데이트

    • GestióIP의 마이너 버전 업데이트는 보통 소스 코드를 새로운 버전으로 덮어쓰고, 제공되는 데이터베이스 마이그레이션 스크립트를 실행하는 방식으로 이루어짐

    • 패키지로 설치한 경우, 새로운 버전의 패키지를 설치하면 업데이트 과정이 자동으로 처리


3. 커뮤니티 및 지원

  • 공식 웹사이트 및 문서

    • GestióIP 공식 웹사이트(https://www.gestioip.net/)는 소프트웨어 다운로드, 상세한 관리자 가이드, 설치 방법 등 가장 중요 정보 제공

  • 메일링 리스트 (Mailing Lists)

    • 사용자와 개발자들이 참여하는 메일링 리스트가 운영

    • 일반적인 사용법에 대한 질문부터 기술적인 문제 해결, 새로운 기능 제안에 이르기까지 다양한 논의가 이루어지는 주된 소통 창구

  • 상용 지원 (Commercial Support)

    • GestióIP 개발팀은 오픈소스 버전 외에도, 기술 지원, 맞춤형 개발, 컨설팅 등을 포함하는 상용 지원 서비스 제공