13년차의 서버실

서버, 인프라, 홈랩 기술 블로그

[카테고리:] homelab

  • [HomeLabs] ESPHome 트러블슈팅: Home Assistant 연동 문제 해결법

    [HomeLabs] ESPHome 트러블슈팅: Home Assistant 연동 문제 해결법

    ESPHome 트러블슈팅: Home Assistant 연동 문제 해결법

    ESPHome 트러블슈팅은 스마트홈 자동화를 조금만 깊게 파도 한 번쯤 꼭 만나게 되더라고요. 저도 홈랩에서 ESP32 보드로 센서, 릴레이, 버튼 장치를 이것저것 붙여봤는데, YAML은 멀쩡해 보여도 Home Assistant에 안 잡히고 장치가 온라인과 오프라인을 반복해서 시간을 꽤 썼습니다. 특히 Home Assistant 연동 단계에서 막히면 기기가 고장 난 것처럼 느껴지는데, 실제로는 전원, Wi-Fi, mDNS, API 키 같은 기본 항목에서 꼬이는 경우가 많았습니다.

    이번 글은 제가 자주 겪었던 문제를 기준으로 정리한 점검 가이드입니다. “왜 안 붙는지 모르겠다” 싶은 순간에 순서대로 확인할 수 있게 구성했습니다. ESP32 오류가 보일 때 어디부터 봐야 하는지, API(Application Programming Interface, 프로그램끼리 통신하는 인터페이스) 연결과 OTA(Over-The-Air, 무선 업데이트)에서 뭐가 자주 꼬이는지, 마지막에 어떻게 검증하면 되는지까지 한 번에 정리해보겠습니다.

    ESPHome 트러블슈팅을 위한 Home Assistant 연동 전체 구조 다이어그램

    ESPHome 장치, Wi-Fi 네트워크, Home Assistant 서버가 어떻게 연결되는지 한눈에 보여주는 개요 이미지입니다.

    1. 왜 ESPHome 장치가 Home Assistant에서 자주 안 보일까요?

    구조를 이해하고 나면 문제 위치가 생각보다 빨리 보입니다. ESPHome은 보통 ESP32나 ESP8266에 펌웨어를 올리고, 그 장치가 Wi-Fi를 통해 Home Assistant와 통신하는 흐름이거든요. 그래서 중간에 끊길 수 있는 지점도 꽤 많습니다.

    • Wi-Fi 연결 실패: SSID, 비밀번호, 2.4GHz 지원 여부, 신호 세기 문제
    • API 연결 실패: 암호화 키 불일치, 수동 등록 정보 꼬임, 방화벽 이슈
    • mDNS(multicast DNS, 로컬 이름 탐색) 문제: 자동 발견이 안 되거나 .local 이름 해석이 불안정한 경우
    • 펌웨어 설정 오류: 보드 타입, 핀 설정, 센서 플랫폼 선언 실수
    • 전원 문제: USB 케이블 품질이나 전원 부족으로 재부팅 반복

    여기서 중요한 포인트는 로그에 찍힌 마지막 에러만 보지 않는 겁니다. 전원 → 네트워크 → mDNS/API → 엔티티 순서로 보셔야 빨라요. 실제로는 Home Assistant에서 “장치 없음”으로 보여도 원인은 전원 불안정인 경우가 꽤 많았습니다.

    2. ESPHome 트러블슈팅은 계층별로 봐야 합니다

    장치가 안 붙는 문제를 한 번에 해결하려고 하면 더 헷갈립니다. 저는 아래처럼 계층을 나눠서 봅니다. 이 방식이 ESPHome 트러블슈팅할 때 제일 덜 헤맸습니다.

    점검 계층 무엇을 확인하나 대표 증상
    전원(Power) USB 케이블, 어댑터, 전압 안정성 재부팅 반복, 로그 끊김
    무선 네트워크(Wi-Fi) SSID, 비밀번호, 2.4GHz, RSSI 장치가 IP를 못 받음
    이름 해석(mDNS) 호스트명 탐색 여부, VLAN/서브넷 분리 여부 자동 발견 실패, 이름으로 접속 불가
    API 통신 암호화 키, 수동 등록 정보, 동일 네트워크 접근성 Home Assistant 추가 실패
    엔티티 구성 sensor, switch, binary_sensor 선언 장치는 보이는데 엔티티가 없음

    이 표를 기준으로 보면 훨씬 편합니다. 저도 예전엔 YAML만 계속 들여다봤는데, 정작 문제는 허술한 케이블 하나였던 적이 많았거든요. 이거 진짜 허무합니다.

    3. 실전 구현: 안정적인 기본 설정부터 잡아보겠습니다

    트러블슈팅은 기준점이 있어야 합니다. 그래서 저는 늘 최소 기능만 들어간 기본 설정으로 먼저 부팅해 봅니다. 센서나 릴레이를 잔뜩 붙인 상태에서 시작하면 어디가 문제인지 분리가 잘 안 됩니다.

    3-1. 기본 ESPHome YAML 예시

    esphome:
      name: lab-esp32-node
      friendly_name: Lab ESP32 Node
    
    esp32:
      board: esp32dev
    
    logger:
    
    api:
      encryption:
        key: "REPLACE_WITH_YOUR_BASE64_KEY"
    
    ota:
      - platform: esphome
    
    wifi:
      ssid: "YOUR_WIFI_SSID"
      password: "YOUR_WIFI_PASSWORD"
      ap:
        ssid: "Lab ESP32 Fallback"
        password: "fallbackpass"
    
    captive_portal:
    
    sensor:
      - platform: wifi_signal
        name: "Lab ESP32 WiFi Signal"
        update_interval: 60s
    
    binary_sensor:
      - platform: status
        name: "Lab ESP32 Status"

    이 설정의 핵심은 세 가지입니다. 첫째, logger로 로그를 남깁니다. 둘째, api를 켜서 Home Assistant와 직접 통신합니다. 셋째, fallback AP를 열어두면 Wi-Fi 연결 실패 시 복구가 쉬워집니다. 참고로 현재 ESPHome 문서는 OTA를 ota: 아래 플랫폼 목록 형식으로 쓰는 방식을 기준으로 안내하고 있어서, 예전 예시처럼 단독 ota:만 두는 문서와는 문법이 다를 수 있습니다.

    3-2. 장치 로그 확인 포인트

    esphome logs lab-esp32-node.yaml

    로그를 볼 때는 아래 순서로 읽으시면 됩니다.

    1. 부팅이 반복되는지 확인합니다.
    2. Wi-Fi에 연결됐는지 확인합니다.
    3. IP 주소를 받았는지 확인합니다.
    4. API 연결이 준비됐는지 확인합니다.
    5. 센서와 스위치 초기화가 정상인지 확인합니다.

    로그가 너무 많아서 어디를 봐야 할지 모르겠다면 성공 메시지보다 반복되는 경고를 먼저 찾는 게 빠릅니다. 같은 메시지가 주기적으로 나오면 그 지점이 병목일 가능성이 큽니다.

    ESPHome 트러블슈팅 중 설정 파일과 로그를 확인하는 장면

    ESPHome YAML 설정, 로그 출력, 장치 상태 점검 순서를 보여주는 실전 중심 이미지입니다.

    4. Home Assistant 연동 단계에서 자주 막히는 지점

    Home Assistant 연동은 장치가 살아 있는 것과 플랫폼에서 장치를 받아들이는 것이 별개라는 점만 이해해도 훨씬 쉬워집니다. 즉, ESP32가 Wi-Fi에는 잘 붙어도 Home Assistant 자동 발견은 안 될 수 있습니다.

    4-1. 자동 발견이 안 될 때

    • 장치와 Home Assistant가 서로 통신 가능한 네트워크에 있는지 먼저 봅니다.
    • mDNS가 공유기, VLAN, 서브넷 분리 환경에서 막히지 않는지 확인합니다.
    • 이름 대신 IP 기반으로 수동 추가가 되는지 먼저 테스트합니다.
    • 고정 DHCP 예약이나 정적 IP를 써서 주소를 안정적으로 관리합니다.

    특히 VLAN이나 다른 서브넷으로 분리해 둔 홈랩에서는 mDNS가 제일 먼저 흔들립니다. 이럴 때는 mDNS 중계가 필요할 수 있고, 안 되면 IP로 수동 등록하는 쪽이 더 빠릅니다. “장치는 살아 있는데 왜 통합에 안 뜨지?” 싶으면 네트워크 분리부터 의심해보세요.

    4-2. API 키가 맞지 않을 때

    ESPHome에서 API encryption key를 설정한 뒤 Home Assistant에 다시 등록할 때 키가 어긋나면 연결이 안 됩니다. 장치 쪽 설정과 Home Assistant에 저장된 연결 정보가 다르면 계속 실패하거든요. 이런 경우는 장치를 다시 추가하거나, 기존 통합의 연결 정보를 새로 잡는 편이 더 빨랐습니다.

    4-3. OTA 업데이트가 실패할 때

    OTA는 정말 편하지만, 초기에 한 번은 유선으로 안정적인 이미지를 올려두는 게 좋습니다. Wi-Fi 품질이 애매한 위치에서 OTA를 반복하면 업데이트 중 실패할 수 있거든요. 특히 테스트 보드를 책상에서 설치 위치로 옮긴 뒤 신호가 약해지면 문제가 잘 생깁니다.

    5. 실제로 많이 겪는 ESP32 오류와 해결법

    이 섹션은 실제로 자주 나오는 문제만 모았습니다. 이 정도만 익혀도 ESPHome 트러블슈팅 시간이 꽤 줄어듭니다.

    5-1. Wi-Fi 연결이 안 되는 경우

    • 원인: 5GHz만 쓰는 환경, 잘못된 비밀번호, 약한 신호, 숨김 SSID 설정 누락
    • 해결: 2.4GHz 확인, 장치를 공유기 가까이 두고 최초 연결, fallback AP 활성화, 숨김 SSID면 별도 옵션 확인

    ESP32 계열 장치는 보통 2.4GHz Wi-Fi 환경에서 씁니다. 처음엔 비밀번호만 맞으면 되는 줄 알았는데, 실제론 설치 위치 신호 세기가 꽤 중요하더라고요. 책상에서는 잘 되는데 벽 뒤에 붙이니 바로 불안정해지는 경우도 있었습니다.

    5-2. 장치가 온라인/오프라인을 반복하는 경우

    • 원인: 전원 부족, 품질 낮은 USB 케이블, 주변장치 부하, 브라운아웃성 재부팅
    • 해결: 케이블 교체, 전원 어댑터 교체, 외부 부하 분리 후 테스트, 보드 단독 구동 확인

    이건 제가 제일 많이 당한 문제입니다. 로그상으로는 네트워크 에러처럼 보여도 결국 전원 문제였던 적이 많았습니다. 특히 릴레이 모듈이나 LED를 같이 물리면 전원 여유가 부족해서 희한한 증상이 잘 나옵니다.

    5-3. Home Assistant에는 보이는데 엔티티가 없는 경우

    • 원인: YAML에 sensor, switch, binary_sensor 선언 누락 또는 비활성화
    • 해결: 최소 구성으로 다시 올리고 엔티티를 하나씩 추가

    장치는 등록됐는데 쓸 수 있는 항목이 없다면 대부분 구성 문제입니다. 이럴 땐 기능 욕심내지 말고 상태 센서 하나부터 확인하는 게 좋습니다.

    5-4. 로그는 정상인데 반응이 느린 경우

    • 원인: 약한 Wi-Fi, 과도한 로그 출력, 지나치게 짧은 업데이트 주기
    • 해결: 설치 위치 변경, 센서 갱신 주기 조정, 불필요한 로그와 과도한 폴링 점검

    센서를 너무 자주 읽게 만들면 장치가 바빠집니다. 테스트한다고 값을 너무 촘촘하게 읽기 시작하면 오히려 전체 안정성이 떨어지거든요. 여기서 중요한 포인트는 안정화 후 최적화입니다.

    ESP32 오류와 Home Assistant 연동 문제의 원인별 점검 인포그래픽

    Wi-Fi, 전원, API, 엔티티 구성 문제를 나눠서 확인하는 체크리스트형 이미지입니다.

    6. 제가 쓰는 점검 루틴: 문제를 빨리 좁히는 순서

    처음엔 이것저것 다 건드리기 쉬운데, 그렇게 하면 더 꼬입니다. 지금은 아래 순서로만 봅니다. 이 루틴은 Home Assistant 연동 문제를 좁힐 때 특히 효과가 좋았습니다.

    1. 전원 분리 테스트: 센서, 릴레이, LED 같은 외부 부하를 빼고 보드만 봅니다.
    2. 최소 YAML 적용: 상태 센서와 Wi-Fi 신호 센서만 둡니다.
    3. 로그 확인: 재부팅 반복 여부와 Wi-Fi 연결 성공 여부를 봅니다.
    4. IP 확인: 공유기 DHCP 목록이나 네트워크 장비에서 장치 IP를 확인합니다.
    5. Home Assistant 재등록: 기존 정보가 꼬였으면 통합을 새로 잡습니다.
    6. 엔티티 추가: 센서와 스위치를 하나씩 늘리며 문제 재현 여부를 봅니다.

    이 루틴의 장점은 원인 범위를 단계적으로 줄일 수 있다는 점입니다. 한 번에 다 고치려 하지 말고, 어디까지 정상인지 경계를 찾는 방식이 훨씬 빠르더라고요.

    6-1. 예시: 상태 확인용 간단한 센서 추가

    sensor:
      - platform: wifi_signal
        name: "Node WiFi Signal"
        update_interval: 60s
    
    text_sensor:
      - platform: version
        name: "Node ESPHome Version"
    
    binary_sensor:
      - platform: status
        name: "Node Status"

    이렇게 해두면 Home Assistant 대시보드에서 최소한의 상태를 빠르게 볼 수 있습니다. 스마트홈 자동화를 오래 굴릴수록, 화려한 기능보다 이런 기본 상태 노출이 더 중요하더라고요.

    7. 검증과 결과 확인: 붙었다고 끝이 아닙니다

    드디어 됐다 하고 끝내면 나중에 다시 문제를 만납니다. 그래서 저는 연동 직후 꼭 검증합니다.

    • 장치가 Home Assistant에서 지속적으로 온라인 상태를 유지하는지
    • Wi-Fi 신호 센서 값이 갑자기 튀지 않는지
    • 재부팅 없이 일정 시간 이상 동작하는지
    • OTA가 정상적으로 되는지
    • 자동화(Automation, 조건 기반 동작)가 실제로 트리거되는지

    특히 자동화까지 연결해보셔야 합니다. 장치 등록만 성공하고 실제 자동화에서 지연이 크면 체감 품질이 확 떨어지거든요.

    automation:
      - alias: "Notify when ESP node offline"
        triggers:
          - trigger: state
            entity_id: binary_sensor.node_status
            to: "off"
        actions:
          - action: persistent_notification.create
            data:
              title: "ESPHome Alert"
              message: "Node went offline. Check power, Wi-Fi, and API status."

    이런 식으로 간단한 오프라인 알림만 걸어둬도 유지보수가 훨씬 편합니다. 홈랩은 결국 운영의 영역이거든요. 설치보다 운영이 더 중요하다는 말, 해보면 바로 와닿습니다.

    Home Assistant 연동 후 ESPHome 장치 상태를 검증하는 대시보드 이미지

    Home Assistant 대시보드에서 ESPHome 장치 상태, Wi-Fi 신호, 온라인 여부를 확인하는 결과 이미지입니다.

    8. 자주 묻는 질문 정리

    Q1. 자동 발견이 안 되면 장치가 죽은 건가요?

    아닙니다. 먼저 Wi-Fi 연결과 IP 할당을 확인해보세요. 자동 발견 실패와 장치 고장은 완전히 다른 문제일 수 있습니다.

    Q2. ESP32 오류가 보이면 보드를 바로 바꿔야 하나요?

    대부분은 아닙니다. 전원, 케이블, 설정, 네트워크 같은 기본 원인을 먼저 보는 게 맞습니다. 저도 보드 탓인 줄 알았다가 케이블 바꾸고 끝난 적이 여러 번 있었습니다.

    Q3. Home Assistant 연동 후 가장 먼저 만들어야 할 자동화는 뭔가요?

    오프라인 감지 알림입니다. 화려한 자동화보다 장애를 빨리 알아차리는 자동화가 먼저입니다. 이전에 홈 네트워크 분리나 VLAN 구성 글을 정리해두셨다면, 이 부분과 같이 읽어보면 훨씬 이해가 잘 됩니다.

    9. 마무리: ESPHome 트러블슈팅은 감이 아니라 순서입니다

    정리하면, ESPHome 트러블슈팅은 어려운 기술 지식보다 점검 순서가 더 중요합니다. 전원, Wi-Fi, mDNS/API, 엔티티 구성을 차례대로 보면 대부분 풀립니다. 저도 처음엔 로그만 붙잡고 있었는데, 실제로 써보니 문제는 늘 기본기에서 나오더라고요.

    혹시 지금 Home Assistant 연동 때문에 막혀 계시다면, 오늘은 욕심내지 말고 상태 센서 하나만 정상으로 띄우는 것부터 해보세요. 그 한 단계가 되면 나머지는 훨씬 쉬워집니다. 다음 글에서는 ESPHome 장치 운영 모니터링이나 스마트홈 자동화 안정화 팁도 이어서 다뤄보겠습니다.

    전원, Wi-Fi, API, 엔티티 순으로 점검하는 흐름을 요약한 마무리 인포그래픽입니다.

  • [HomeLabs] MikroTik 라우터 1년 사용 회고: 홈랩 네트워크의 장단점 분석

    [HomeLabs] MikroTik 라우터 1년 사용 회고: 홈랩 네트워크의 장단점 분석

    [홈랩] MikroTik 라우터 1년 사용 회고

    MikroTik 라우터를 홈랩 네트워크 중심에 두고 1년 정도 운영해보니, 왜 이 장비가 입문자에게는 어렵고 익숙해지면 꽤 강력하다는 평가를 받는지 몸으로 이해하게 되더라고요. 처음엔 메뉴도 많고 용어도 낯설어서 솔직히 좀 당황했어요. 그런데 VLAN(가상 LAN, 논리적으로 분리된 네트워크), Firewall(방화벽, 트래픽 제어 규칙), Queue(큐, 대역폭 제어) 같은 기능을 하나씩 붙여보니까 홈랩 네트워크를 꽤 정교하게 다듬을 수 있었거든요. 혹시 집에서 서버 몇 대 굴리다가 네트워크가 점점 복잡해진 경험 있으신가요? 그 시점부터는 일반 공유기와는 다른 접근이 필요해지더라고요.

    이번 글은 특정 신제품 소개가 아니라, 제가 실제로 MikroTik RouterOS 환경을 홈랩에 적용하면서 느낀 장단점을 정리한 회고에 가깝습니다. 네트워크 장비 비교 관점에서도 어디가 좋았고 어디서 삽질했는지 솔직하게 적어보겠습니다. 다음 글에서는 스위치와 AP(Access Point, 무선 접속 장치)까지 포함한 전체 홈랩 네트워크 분리 설계를 더 자세히 다룰 예정입니다.

    MikroTik 라우터 중심의 홈랩 네트워크 아키텍처 다이어그램

    홈랩 네트워크에서 MikroTik 라우터가 코어 역할을 하는 전체 구성 예시입니다.

    MikroTik 라우터가 홈랩 네트워크에 잘 맞는 이유

    쉽게 말해 MikroTik 라우터는 공유기처럼 보이지만 운영 방식은 작은 네트워크 장비에 더 가깝습니다. 일반 가정용 장비가 버튼 몇 개로 끝나는 대신, MikroTik은 거의 모든 걸 세세하게 건드릴 수 있게 열어둔 느낌입니다. 처음엔 이게 뭔가 싶었는데, 홈랩처럼 요구사항이 자꾸 늘어나는 환경에서는 이 유연성이 진짜 크게 느껴지더라고요.

    제가 체감한 핵심 개념

    • RouterOS: MikroTik 장비에서 동작하는 네트워크 운영체제입니다. GUI와 CLI를 모두 지원해서 취향대로 작업할 수 있어요.
    • Bridge(브리지): 여러 포트를 하나의 스위치처럼 묶는 개념입니다. VLAN 필터링과 함께 많이 써요.
    • VLAN: 서버, 관리망, IoT 기기를 논리적으로 나누는 데 좋습니다.
    • NAT(Network Address Translation, 주소 변환): 내부 네트워크가 외부 인터넷에 나갈 때 거의 기본으로 들어갑니다.
    • Firewall Filter: 어떤 트래픽을 허용하고 막을지 정하는 핵심 규칙입니다.

    제가 직접 써보니 가장 큰 장점은 한 대로 할 수 있는 범위가 넓다기본값을 이해하지 못한 채 만지면 금방 헷갈린다

    1년 동안 운영하면서 느낀 장점과 단점

    항목 좋았던 점 아쉬웠던 점
    설정 유연성 세부 정책을 직접 설계하기 좋음 초기 진입장벽이 높음
    홈랩 네트워크 분리 VLAN, 방화벽 정책 구성에 유리 개념 이해 없이 설정하면 통신 장애가 남
    운영 도구 CLI, WinBox, Web UI 등 선택지가 있음 메뉴가 많아 처음엔 길을 잃기 쉬움
    문서/커뮤니티 검색하면 사례가 제법 나옴 설정 방식이 다양해서 정답이 하나가 아님
    확장성 VPN, 라우팅, QoS까지 확장 가능 기능이 많아질수록 관리 기준이 필요함

    특히 홈랩 네트워크에서는 서버망, 개인 PC망, IoT망을 나누는 순간부터 MikroTik 라우터의 진가가 나옵니다. 반대로 인터넷만 되면 되는 환경이라면 너무 과할 수도 있어요. 여기서 중요한 포인트! 좋은 장비가 아니라, 요구사항에 맞는 장비가 좋은 장비라는 점입니다.

    실전 구현: 제가 홈랩에서 잡았던 기본 구조

    제 환경에서는 아주 복잡하게 시작하지 않았어요. 처음부터 BGP(Border Gateway Protocol, 경로 제어 프로토콜) 같은 걸 만진 건 아니고요. 아래처럼 단순한 목표부터 잡았습니다.

    1. WAN과 LAN 기본 연결
    2. 관리용 네트워크와 일반 사용자 네트워크 분리
    3. 서버용 VLAN 추가
    4. 인터넷은 허용하되 관리망 접근은 제한
    5. 필요한 서비스만 포트 전달

    실제로 써보니까 처음부터 모든 걸 자동화하려고 하기보다, 기본 연결 → VLAN → 방화벽 → 모니터링 순서가 훨씬 덜 꼬였어요.

    예시 1: 인터페이스와 주소 기본 구성

    /interface bridge
    add name=bridge-lan vlan-filtering=yes
    
    /interface bridge port
    add bridge=bridge-lan interface=ether2
    add bridge=bridge-lan interface=ether3
    add bridge=bridge-lan interface=ether4
    
    /ip address
    add address=192.168.10.1/24 interface=bridge-lan comment=main-lan
    
    /ip pool
    add name=pool-main ranges=192.168.10.100-192.168.10.199
    
    /ip dhcp-server
    add name=dhcp-main interface=bridge-lan address-pool=pool-main
    
    /ip dhcp-server network
    add address=192.168.10.0/24 gateway=192.168.10.1 dns-server=192.168.10.1

    이 단계는 말 그대로 뼈대예요. 여기서 DHCP(Dynamic Host Configuration Protocol, 자동 IP 할당)까지 붙여두면 최소한 네트워크는 살아나거든요. 드디어 됐다! 싶은 첫 구간이 바로 여기였습니다.

    예시 2: VLAN 분리

    /interface vlan
    add interface=bridge-lan name=vlan20-servers vlan-id=20
    add interface=bridge-lan name=vlan30-iot vlan-id=30
    
    /ip address
    add address=192.168.20.1/24 interface=vlan20-servers comment=servers
    add address=192.168.30.1/24 interface=vlan30-iot comment=iot

    서버망과 IoT망을 나누고 나면 체감이 커요. NAS(Network Attached Storage, 네트워크 스토리지)나 가상화 호스트가 있는 구간은 좀 더 보수적으로 관리할 수 있고, IoT 기기 쪽은 인터넷만 나가게 제한하는 식으로 설계하기 쉬워지거든요.

    MikroTik RouterOS VLAN 및 인터페이스 구성 개념 이미지

    VLAN과 브리지 포트가 어떻게 연결되는지 한눈에 보이는 설정 개념도입니다.

    예시 3: 기본 방화벽 정책

    /ip firewall filter
    add chain=input action=accept connection-state=established,related
    add chain=input action=drop connection-state=invalid
    add chain=input action=accept protocol=icmp
    add chain=input action=accept src-address=192.168.10.0/24
    add chain=input action=drop
    
    add chain=forward action=accept connection-state=established,related
    add chain=forward action=drop connection-state=invalid
    add chain=forward action=accept src-address=192.168.20.0/24 dst-address=192.168.10.0/24
    add chain=forward action=drop src-address=192.168.30.0/24 dst-address=192.168.10.0/24
    add chain=forward action=accept

    여기서 많이 배우게 돼요. 라우터 자신에게 들어오는 트래픽은 input, 네트워크를 통과하는 트래픽은 forward라는 기본 구조를 이해해야 규칙이 덜 꼬여요. 저도 처음엔 forward만 만지다가 왜 관리 접속이 막히는지 한참 헤맸거든요.

    운영하면서 자주 썼던 점검 명령어

    설정도 중요하지만 검증이 더 중요해요. 홈랩 네트워크는 바뀌는 일이 많아서, 바꿀 때마다 확인 루틴을 만들어두는 게 훨씬 편하더라고요.

    /ip address print
    /interface bridge port print
    /interface vlan print
    /ip route print
    /ip firewall filter print stats
    /ping 8.8.8.8
    /tool traceroute 1.1.1.1

    특히 print stats는 규칙이 실제로 맞고 있는지 확인할 때 유용했어요. 규칙은 예쁘게 써놨는데 카운터가 안 올라가면 방향을 잘못 잡은 경우가 많았거든요.

    ⚠️ 주의사항과 제가 실제로 겪은 트러블슈팅

    MikroTik RouterOS를 1년 정도 굴리면서 가장 많이 한 삽질은 세 가지였어요. 이 부분은 정말 초반에 알았으면 시간을 꽤 아꼈을 겁니다.

    1. VLAN 태깅 방향을 헷갈리기 쉬움

    브리지, 포트, VLAN 테이블 관계를 정확히 안 보면 특정 포트만 통신이 안 되는 일이 생겨요. 처음엔 DHCP가 왜 안 붙지 싶었는데, 실제 원인은 태그드(tagged)와 언태그드(untagged) 포트 구분이 어긋난 경우가 많았습니다.

    • 증상: 특정 장비만 IP를 못 받음
    • 원인: 포트 PVID(기본 VLAN ID)와 브리지 VLAN 항목 불일치
    • 해결: VLAN 설계도를 먼저 그리고 포트 역할을 표로 정리

    2. 방화벽 규칙 순서가 생각보다 중요해요

    Firewall Filter는 위에서 아래로 평가되기 때문에, 넓게 허용하는 규칙을 먼저 두면 뒤쪽 차단 규칙이 사실상 의미가 없어져요. 이거 정말 많이 놓쳐요. 저도 초반엔 규칙은 다 써놨는데 왜 안 막히지? 하고 한참 봤습니다.

    3. 관리 접근 경로를 따로 남겨두는 게 안전해요

    원격에서만 만지다가 규칙 실수로 접속이 끊기면 꽤 난감해요. 가능하면 초기 작업은 로컬에서 하고, 관리망을 따로 두는 편이 좋습니다. 백업(export)도 자주 해두세요.

    /export file=backup-before-firewall
    /system backup save name=router-backup

    백업은 귀찮아도 무조건입니다. 한 번 꼬이면 다시 치는 시간보다 백업 복원이 훨씬 빨라요.

    MikroTik 라우터 방화벽 규칙과 트러블슈팅 흐름도

    입력 체인과 포워드 체인을 구분해 문제를 찾는 트러블슈팅 흐름 예시입니다.

    검증: 1년 운영 후 체감한 결과

    검증은 거창한 벤치마크보다 운영 안정성 관점에서 봤어요. 수치를 지어내고 싶진 않아서, 제가 실제로 중요하게 본 기준만 적겠습니다.

    1. 네트워크 분리 후 실수 전파 범위가 줄었는가
    2. 새 서버를 붙일 때 정책 적용이 쉬운가
    3. 문제 발생 시 원인 추적이 가능한가
    4. 재부팅이나 설정 변경 후 복구가 빠른가

    결론부터 말하면, 홈랩 네트워크 운영 피로도는 줄었어요. 예전에는 장비가 늘어날수록 규칙이 머릿속에서만 관리됐는데, MikroTik 라우터로 옮긴 뒤에는 네트워크 경계가 좀 더 명확해졌거든요. 서버망은 서버망대로, IoT는 IoT대로 성격에 맞는 정책을 적용하기 쉬웠습니다.

    물론 단점도 남았어요. 설정 자유도가 높다는 건, 결국 운영자 책임도 커진다는 뜻이거든요. 대충 만들어도 돌아가는 구성보다는, 명확하게 설계한 구성이 훨씬 잘 버텨요. 이건 RouterOS 자체보다 네트워크 장비 비교 전반에 적용되는 이야기 같아요.

    MikroTik 라우터 기반 홈랩 네트워크 모니터링 대시보드

    분리된 VLAN, 트래픽 흐름, 장비 상태를 확인하는 운영 관점의 결과 이미지입니다.

    네트워크 장비 비교 관점에서 본 MikroTik의 포지션

    많이들 궁금해하시는 포인트가 이거죠. 그래서 일반적인 비교 기준으로 정리해봤습니다.

    비교 기준 MikroTik 라우터 일반 가정용 공유기 소형 x86 방화벽 장비
    초기 난이도 높은 편 낮은 편 중간 이상
    세부 제어 강함 제한적 강함
    홈랩 네트워크 적합성 매우 좋음 단순 환경에 적합 고급 구성에 적합
    학습 가치 높음 낮음 높음
    운영 편의성 익숙해지면 좋음 매우 쉬움 구성에 따라 다름

    제 기준에서는 이런 분께 잘 맞았어요.

    • 집에서 서버, NAS, 가상화 환경을 운영하는 분
    • VLAN과 방화벽을 직접 만져보고 싶은 분
    • CLI와 GUI를 오가며 배우는 걸 싫어하지 않는 분

    반대로 그냥 인터넷 잘 되고 와이파이만 안정적이면 되는 분에게는 과할 수 있어요. 장비의 문제가 아니라 요구사항의 문제죠.

    정리: 1년 써보니 이런 분께 추천합니다

    1년 동안 써본 회고를 한 줄로 줄이면 이렇습니다. MikroTik 라우터는 쉬운 장비는 아니지만, 홈랩 네트워크를 제대로 설계하고 싶은 사람에게는 꽤 오래 가져갈 만한 도구예요. 저도 처음엔 메뉴가 너무 많아서 멈칫했는데, 한 번 구조가 잡히고 나니까 “아, 이래서들 쓰는구나” 싶더라고요.

    특히 MikroTik RouterOS는 네트워크를 공부하면서 운영까지 같이 해볼 수 있다는 점이 좋았어요. 단순히 인터넷 연결 장비가 아니라, 설계하고 검증하는 연습장처럼 느껴졌거든요. 이게 홈랩 재미이기도 하고요.

    다음 단계로는 아래 순서로 확장해보시면 좋습니다.

    1. 기본 LAN 구성부터 안정화
    2. 서버망과 IoT망 VLAN 분리
    3. 방화벽 정책 최소 허용 원칙 적용
    4. VPN과 원격 관리 구성
    5. 모니터링과 백업 자동화

    이전 글에서 다뤘던 홈랩 백업 전략과도 연결되는 주제라, 내부 링크로 묶어보셔도 좋을 것 같아요. 다음 글에서는 AP와 스위치까지 포함한 전체 홈랩 네트워크 설계 흐름을 더 현실적으로 정리해보겠습니다.

    MikroTik 라우터 1년 사용 장단점 요약 인포그래픽

    1년 사용 기준으로 정리한 장점, 단점, 추천 대상 요약 이미지입니다.

    자주 묻는 질문

    Q1. MikroTik 라우터는 초보자에게 너무 어렵지 않나요?

    처음엔 어려워요. 다만 홈랩 네트워크를 배우려는 목적이라면 오히려 배울 게 많습니다. 단, 한 번에 다 하려 하지 말고 기본 연결부터 쌓아가시는 게 좋아요.

    Q2. GUI만으로도 운영 가능한가요?

    가능합니다. 다만 CLI를 조금이라도 같이 보면 설정 구조 이해가 빨라져요. 저는 WinBox로 구조를 보고, CLI로 정리하는 식이 제일 편했습니다.

    Q3. 네트워크 장비 비교 시 가장 먼저 볼 기준은 뭔가요?

    내가 원하는 분리 수준과 운영 방식이에요. VLAN이 필요한지, 방화벽 정책을 직접 관리할지, 추후 확장 가능성이 있는지를 먼저 보시는 게 맞습니다.

  • [홈랩] 팰월드 서버 구축: 전용 서버 최적화와 운영 사례

    [홈랩] 팰월드 서버 구축: 전용 서버 최적화와 운영 사례

    [홈랩] 팰월드 서버 구축: 전용 서버 최적화와 운영 사례

    홈랩에서 팰월드 서버 구축을 고민하시는 분들이 정말 많아졌습니다. 저도 처음엔 “그냥 PC 한 대 켜두면 되는 거 아닌가?” 싶었는데, 실제로 팰월드 전용 서버를 굴려보니 얘기가 좀 달랐습니다. 접속자는 늘어나고, 저장 타이밍이 겹치면 순간 멈칫하고, 재부팅 한 번 잘못하면 월드 파일이 꼬일까 신경 쓰이더라고요. 특히 홈랩 게임 서버는 단순 실행보다도 안정적으로 오래 굴리는 운영 감각이 중요합니다. 이번 글에서는 제가 직접 정리해둔 방식으로 Palworld 서버를 홈랩에 올리면서 어떤 기준으로 설계했고, 어디서 삽질했는지, 그리고 어떻게 성능과 운영 편의성을 챙겼는지 경험 위주로 풀어보겠습니다.

    홈랩 팰월드 서버 구축 전체 아키텍처 다이어그램

    팰월드 전용 서버가 홈라우터, 리눅스 서버, 백업 저장소, 모니터링 구간으로 연결된 전체 구성 예시입니다.

    1. 왜 홈랩에서 팰월드 서버 구축이 까다로운가

    쉽게 말해 게임 서버(Game Server, 멀티플레이 세션을 유지하는 서버 프로세스)는 켜지는 것과 잘 굴러가는 것이 다릅니다. 한두 명 접속할 때는 괜찮아 보여도, 동시 접속자가 늘어나면 CPU 순간 점유율, 메모리 누적 사용량, 디스크 I/O(Input/Output, 저장장치 읽기/쓰기), 네트워크 지연이 같이 튀기 시작하거든요.

    제가 직접 해보니 특히 팰월드는 월드 저장 주기와 접속/이탈 이벤트가 겹칠 때 체감이 생기더라고요. 그래서 홈랩 환경에서는 아래 네 가지를 먼저 봐야 합니다.

    • CPU 단일 코어 성능: 무조건 코어 수보다 중요한 순간이 있습니다.
    • 메모리 여유: 운영체제 캐시까지 생각하면 빡빡하게 잡으면 안 됩니다.
    • 스토리지 안정성: SSD 사용이 사실상 필수입니다.
    • 자동화: 재시작, 백업, 로그 관리가 안 되면 금방 귀찮아집니다.

    2. 홈랩 팰월드 전용 서버 설계 기준

    저는 홈랩에서 새 서비스를 올릴 때 항상 “성능보다 운영 난이도”를 같이 봅니다. 팰월드 서버 구축도 똑같았습니다. 처음엔 테스트용으로 돌리다가, 지인들이 들어오기 시작하면 그때부터는 거의 작은 프로덕션처럼 봐야 하더라고요.

    항목 우선순위 실무 관점 메모
    CPU 높음 순간 부하 대응이 중요해서 너무 저전력 위주만 보면 아쉽습니다.
    메모리 높음 서버 단독 운영이면 여유 확보가 편합니다.
    스토리지 매우 높음 월드 저장과 백업 때문에 SSD 권장입니다.
    네트워크 높음 포트 포워딩과 내부 IP 고정이 핵심입니다.
    운영 자동화 매우 높음 systemd, cron, 로그 로테이션이 체감 차이를 만듭니다.

    여기서 중요한 포인트가 있습니다. 홈랩 게임 서버는 화려한 스펙보다 예측 가능한 동작이 더 중요합니다. 즉, 다른 컨테이너 작업과 리소스를 과하게 섞기보다, 적어도 피크 시간대에는 간섭이 적게 설계하는 게 낫습니다.

    3. 실전 구현: Ubuntu 기반 Palworld 서버 올리기

    이번 예시는 Linux 기반입니다. 저는 서버 운영 쪽은 Linux가 손에 익어서 이쪽이 훨씬 편하더라고요. 특히 로그, 서비스 등록, 자동 시작까지 한 번에 정리하기 좋습니다.

    3-1. 기본 패키지 설치

    1. 고정 IP를 먼저 잡습니다.
    2. 방화벽 정책을 확인합니다.
    3. SteamCMD를 설치할 준비를 합니다.
    sudo apt update
    sudo apt install -y steamcmd curl wget unzip tar
    sudo adduser --disabled-password --gecos "" steam
    

    저는 전용 계정을 따로 만드는 편입니다. 이유는 단순합니다. 나중에 권한 꼬임을 줄이기 좋고, 백업 경로도 깔끔해지거든요.

    3-2. Palworld 서버 파일 설치

    sudo -u steam -H bash -lc 'mkdir -p ~/Steam && steamcmd +login anonymous +app_update 2394010 validate +quit'
    

    설치가 끝나면 일반적으로 실행 파일은 Steam 라이브러리 아래에 생성됩니다. 환경에 따라 경로가 다를 수 있으니 한 번 확인해 주세요.

    sudo -u steam -H bash -lc 'find ~/ -name PalServer.sh 2>/dev/null'
    

    3-3. 첫 실행으로 설정 파일 생성

    sudo -u steam -H bash -lc 'cd ~/Steam/steamapps/common/PalServer && ./PalServer.sh'
    

    처음엔 이게 뭔가 싶었는데, 일단 한 번 실행해야 설정 파일이 생성됩니다. 바로 Ctrl+C로 내려도 됩니다.

    팰월드 전용 서버 설정 파일과 systemd 구성 이미지

    실전 구현 단계에서 설정 파일, 실행 스크립트, systemd 서비스가 어떻게 이어지는지 보여주는 구성 이미지입니다.

    3-4. 팰월드 전용 서버 설정 튜닝

    리눅스 기준으로 설정 파일 경로는 아래와 같습니다.

    sudo -u steam -H bash -lc 'nano ~/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini'
    
    [/Script/Pal.PalGameWorldSettings]
    OptionSettings=(ServerName="HomelabPalworld",ServerDescription="Home lab dedicated server",AdminPassword="change-me",ServerPassword="change-me",PublicPort=8211,PublicIP="",RCONEnabled=False)
    

    여기서 저는 처음에 옵션을 한 번에 많이 건드렸다가 서버가 안 떠서 삽질 좀 했습니다. 그래서 팁을 드리면, 기본 실행 확인 후 최소 옵션만 수정하는 쪽이 안전합니다.

    3-5. systemd로 Palworld 서버 서비스 등록

    sudo nano /etc/systemd/system/palworld.service
    
    [Unit]
    Description=Palworld Dedicated Server
    After=network.target
    
    [Service]
    User=steam
    WorkingDirectory=/home/steam/Steam/steamapps/common/PalServer
    ExecStart=/home/steam/Steam/steamapps/common/PalServer/PalServer.sh
    Restart=always
    RestartSec=10
    Nice=-5
    LimitNOFILE=100000
    
    [Install]
    WantedBy=multi-user.target
    
    sudo systemctl daemon-reload
    sudo systemctl enable palworld.service
    sudo systemctl start palworld.service
    sudo systemctl status palworld.service
    

    systemd(System and Service Manager, 리눅스 서비스 관리자)로 묶어두면 재부팅 후 자동 시작, 장애 시 재시작, 상태 확인이 아주 편합니다. 이거 진짜 편하더라고요.

    4. 운영 최적화: 제가 실제로 챙긴 포인트

    팰월드 서버 구축에서 많은 분이 설치까지만 보고 끝내는데, 실사용은 그 다음부터입니다.

    • 서버 전용 리소스 확보: 백업 작업이나 미디어 스캔 작업과 시간대를 겹치지 않게 했습니다.
    • SSD 사용: 월드 저장 체감이 확실히 안정적이었습니다.
    • 자동 재시작 창구 마련: 커널 업데이트나 정전 이후 복구를 쉽게 만들었습니다.
    • 백업 분리: 게임 서버 디스크와 백업 디스크를 나눴습니다.

    특히 백업은 무조건 자동화하는 걸 권합니다. 월드 파일은 “나중에 해야지” 하다가 꼭 문제 터진 뒤에 생각나거든요.

    mkdir -p /home/steam/backups
    crontab -e
    
    0 */6 * * * tar -czf /home/steam/backups/palworld-$(date +\%F-\%H\%M).tar.gz /home/steam/Steam/steamapps/common/PalServer/Pal/Saved
    

    가능하면 백업 파일은 NAS(Network Attached Storage, 네트워크 저장소)나 다른 디스크로 보내세요. 같은 디스크에만 두면 장애 분리가 안 됩니다.

    5. ⚠️ 트러블슈팅: 제가 실제로 막혔던 지점

    여기부터가 진짜 실전입니다. 저도 처음엔 서버가 실행만 되면 끝인 줄 알았는데, 근데 여기서 문제가 꽤 나오더라고요.

    5-1. 외부 접속이 안 되는 경우

    • 포트 포워딩이 빠졌을 수 있습니다.
    • 내부 IP 고정이 안 되어 DHCP로 주소가 바뀌었을 수 있습니다.
    • 방화벽(Firewall, 네트워크 접근 제어)에서 차단됐을 수 있습니다.
    sudo ss -lntup | grep 8211
    sudo ufw status
    

    저는 실제로 포트 포워딩은 해놨는데 내부 IP가 바뀌어서 한참 찾았습니다. 이런 건 은근 자주 나옵니다.

    5-2. 팰월드 서버 설정 변경 후 실행이 안 되는 경우

    대부분은 설정 파일 문법 문제였습니다. 특히 옵션 문자열에 따옴표나 쉼표 하나만 어긋나도 바로 문제가 생기더라고요. 그래서 저는 변경 전에 원본을 복사합니다.

    cp /home/steam/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini /home/steam/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini.bak
    

    5-3. 업데이트 후 실행 파일 검증이 필요한 경우

    sudo -u steam -H bash -lc 'steamcmd +login anonymous +app_update 2394010 validate +quit'
    sudo systemctl restart palworld.service
    

    업데이트 뒤에 이상하면 validate부터 한 번 돌려보세요. 저는 이걸 늦게 해서 시간을 좀 날렸습니다.

    홈랩 게임 서버 포트 포워딩과 방화벽 점검 이미지

    외부 접속 문제를 점검할 때 확인해야 할 포트 포워딩, 내부 IP, 방화벽 흐름을 표현한 이미지입니다.

    6. 검증과 결과: 팰월드 전용 서버 운영 상태 확인

    완성 후에는 “켜진다”가 아니라 “안정적으로 운영된다”를 확인해야 합니다. 저는 아래 항목으로 검증했습니다.

    1. 부팅 후 자동 시작 여부 확인
    2. 동시 접속 시 끊김 여부 점검
    3. 백업 파일 정상 생성 확인
    4. 로그에서 반복 에러 유무 확인
    sudo systemctl is-enabled palworld.service
    sudo systemctl status palworld.service
    journalctl -u palworld.service -n 100 --no-pager
    ls -lh /home/steam/backups
    

    실제로 써보니까, 홈랩에서 팰월드 전용 서버를 운영할 때 가장 만족도가 높았던 건 자동 복구와 백업 체계였습니다. 접속자 입장에서는 당연하게 느껴지는 부분인데, 운영자 입장에서는 이 차이가 엄청 큽니다. 드디어 됐다! 싶은 순간이 여기서 옵니다.

    팰월드 서버 구축 후 운영 상태와 백업 확인 대시보드 이미지

    서버 서비스 상태, 백업 성공 여부, 리소스 사용 현황을 한눈에 확인하는 운영 대시보드 예시입니다.

    7. 홈랩 게임 서버로서의 한계와 현실적인 팁

    좋은 점만 있는 건 아닙니다. 홈랩 게임 서버는 결국 가정용 전원, 가정용 회선, 가정용 장비 위에서 돌아갑니다. 그래서 미리 받아들이면 편합니다.

    • 정전 대응: UPS(Uninterruptible Power Supply, 무정전 전원장치)가 있으면 확실히 편합니다.
    • 업데이트 타이밍: 플레이 시간대와 겹치지 않게 유지보수 시간을 잡아야 합니다.
    • 장애 공지: 친구들과 같이 쓰는 서버라면 간단한 공지 채널이 있는 게 좋습니다.
    • 리소스 과신 금지: 다른 VM이나 컨테이너와 과도한 경쟁을 만들지 않는 게 핵심입니다.

    저도 처음엔 “내 홈서버 스펙이면 충분하겠지” 했었는데, 막상 여러 서비스가 동시에 돌아가면 병목이 예상 밖에서 생기더라고요. 그래서 지금은 게임 서버가 몰리는 시간대엔 무거운 작업을 피하고 있습니다.

    8. 정리 + FAQ

    이번 팰월드 서버 구축 사례를 정리하면, 핵심은 설치보다 운영입니다. Palworld 서버를 홈랩에 올리는 건 어렵지 않지만, 안정적으로 굴리려면 서비스 등록, 설정 백업, 로그 확인, 저장소 분리까지 챙겨야 합니다. 다음 글에서는 reverse proxy(리버스 프록시)와 모니터링 대시보드를 붙여서 조금 더 운영답게 만드는 방법도 다뤄볼 예정입니다.

    체크 항목 왜 중요한가 권장 여부
    고정 IP 포트 포워딩 안정성 권장
    systemd 등록 자동 시작 및 장애 복구 강력 권장
    SSD 사용 저장 지연 완화 권장
    자동 백업 월드 파일 보호 필수에 가깝습니다
    업데이트 검증 실행 오류 예방 권장

    자주 묻는 질문

    • Q. Docker로 올려도 되나요?
      가능은 하지만, 처음엔 네이티브 설치가 디버깅이 편했습니다.
    • Q. Windows보다 Linux가 낫나요?
      운영 자동화와 로그 확인은 Linux 쪽이 익숙하면 훨씬 편합니다.
    • Q. 가장 먼저 챙길 한 가지는?
      백업 자동화입니다. 이건 미루면 꼭 후회하더라고요.
    팰월드 전용 서버 운영 체크리스트 요약 이미지

    설치, 자동 시작, 백업, 방화벽, 검증 포인트를 한 장으로 요약한 인포그래픽입니다.

  • [홈랩] 홈랩 관리형 스위치 비교: Ubiquiti UniFi vs TP-Link Omada vs MikroTik

    [홈랩] 홈랩 관리형 스위치 비교: Ubiquiti UniFi vs TP-Link Omada vs MikroTik

    [홈랩] 홈랩 관리형 스위치 비교: Ubiquiti UniFi vs TP-Link Omada vs MikroTik

    홈랩 관리형 스위치를 고르기 시작하면 생각보다 빨리 머리가 복잡해집니다. 저도 처음엔 그냥 포트 수만 보면 되는 줄 알았거든요. 그런데 막상 VLAN(가상 LAN, 논리적으로 분리한 네트워크), LACP(링크 집계, 여러 포트를 하나처럼 묶는 방식), STP(스패닝 트리, 루프 방지 프로토콜), 관리 UI까지 보기 시작하면 완전히 다른 이야기더라고요. 특히 홈랩 관리형 스위치는 단순히 인터넷만 되는 장비가 아니라, 서버/가상화/스토리지/무선 AP까지 묶어주는 중심 장비라서 선택을 잘해야 나중에 삽질을 줄일 수 있습니다.

    이번 글에서는 많이 비교되는 Ubiquiti UniFi, TP-Link Omada, MikroTik를 홈랩 관점에서 비교해보겠습니다. 제가 실제로 홈랩을 굴리면서 느낀 포인트 위주로 정리할게요. 숫자 스펙을 줄세우기보다는, 어떤 환경에서 어떤 제품군이 더 편했는지, 어디서 시간이 많이 들었는지, 그런 현실적인 이야기입니다.

    홈랩 관리형 스위치 중심의 전체 네트워크 아키텍처 다이어그램

    홈랩 관리형 스위치가 라우터, 서버, NAS, AP와 어떻게 연결되는지 한눈에 보여주는 개요 이미지입니다.

    1. 왜 홈랩 관리형 스위치 비교가 중요한가

    쉽게 말해 스위치는 네트워크의 바닥 공사 같은 존재입니다. 처음에 대충 깔아도 당장은 돌아가는데, 나중에 VM(가상 머신), Kubernetes, NAS 백업망, IoT 분리, 게스트 Wi-Fi까지 붙이기 시작하면 구조가 꼬이기 시작합니다. 그때부터는 스위치가 단순한 허브가 아니라 정책을 실어 나르는 장비가 됩니다.

    • UniFi 스위치는 전체 관리 경험이 깔끔한 편입니다.
    • Omada 스위치는 비교적 익숙한 관리 경험과 무난한 구성이 장점입니다.
    • MikroTik 스위치는 자유도가 높고, 이해한 만큼 세밀하게 만질 수 있습니다.

    여기서 중요한 포인트! 홈랩에서는 성능 숫자보다도 운영 피로도가 더 중요할 때가 많습니다. 제가 직접 써보니, 설정 화면이 직관적인 장비는 테스트 속도가 빨라지고, 반대로 자유도가 높은 장비는 구조를 정확히 이해하면 정말 강력했지만 초반 진입 비용이 있었습니다.

    2. UniFi vs Omada vs MikroTik, 핵심 개념부터 맞춰봅시다

    비교를 하기 전에 용어를 먼저 맞추는 게 좋습니다. 저도 처음엔 Tagged/Untagged가 머리로만 이해되고 손에 잘 안 붙었는데, 실제 포트에 물려보면 감이 옵니다.

    2-1. Access 포트와 Trunk 포트

    Access(액세스) 포트는 보통 한 개 VLAN만 쓰는 엔드포인트용 포트입니다. PC나 프린터, IP 카메라 같은 장비를 물릴 때 많이 쓰죠. Trunk(트렁크) 포트는 여러 VLAN 태그를 함께 실어 보내는 업링크용 포트입니다. 스위치 간 연결이나 AP, 가상화 호스트 연결에 자주 씁니다.

    2-2. 관리형 스위치에서 중요한 체크포인트

    • VLAN 관리: 네트워크 분리를 쉽게 할 수 있는지
    • LAG/LACP: NAS나 서버 업링크를 묶을 수 있는지
    • 관리 UI: 웹 UI가 직관적인지, 중앙 관리가 되는지
    • 로그와 모니터링: 문제 생겼을 때 어디를 봐야 하는지
    • 학습 곡선: 내가 지금 공부할 시간이 있는지

    이 세 브랜드의 차이는 결국 여기서 갈립니다. UniFi 스위치는 통합 관리, Omada 스위치는 무난한 운영, MikroTik 스위치는 깊은 제어가 핵심이라고 보시면 편합니다.

    3. 홈랩 관리형 스위치 비교표

    항목 Ubiquiti UniFi TP-Link Omada MikroTik
    관리 방식 중앙 컨트롤러 기반 관리 경험이 강점 컨트롤러 기반 운영 가능, 비교적 익숙한 UI 장비별 설정과 세밀한 제어에 강함
    초기 진입 난이도 낮은 편 낮은 편~중간 중간~높음
    설정 자유도 정해진 흐름 안에서 편함 무난함 매우 높음
    홈랩 적합성 통합 운영 선호 시 좋음 가성비와 익숙함을 원할 때 무난 학습과 세밀한 튜닝을 즐기면 강력
    삽질 포인트 컨트롤러 구조 이해 부족 메뉴 위치와 장비 역할 혼동 브리지/포트/VLAN 개념을 정확히 알아야 함

    표만 보면 너무 단순해 보이죠? 근데 실제로 써보면 이 차이가 꽤 큽니다. 예를 들어 AP, 스위치, 게이트웨이를 한 화면에서 보고 싶으면 UniFi가 정말 편합니다. 반대로 저는 MikroTik에서 구조를 다 이해하고 나서야 “아, 이래서 다들 재밌다고 하는구나” 싶었어요. 처음엔 이게 뭔가 싶었는데, 손에 익으면 꽤 매력 있습니다.

    4. 실전 구성: 같은 홈랩 토폴로지를 세 제품에 적용하는 방법

    브랜드별 메뉴 이름은 달라도 기본 설계는 같습니다. 비교를 공정하게 하려면 같은 요구사항으로 봐야 하거든요. 저는 보통 아래처럼 시작합니다.

    1. 관리 VLAN 하나를 분리합니다.
    2. 서버용 VLAN, 사용자용 VLAN, IoT용 VLAN을 나눕니다.
    3. 가상화 호스트와 AP가 연결되는 포트는 Trunk로 잡습니다.
    4. 일반 PC나 테스트 장비 포트는 Access로 고정합니다.
    5. 문제 생기면 Linux 호스트에서 태그가 제대로 들어오는지 먼저 검증합니다.

    4-1. 예시 VLAN 설계

    VLAN ID 용도 비고
    10 Management 스위치/AP/관리 인터페이스
    20 Server 하이퍼바이저, NAS, 백업망 일부
    30 Client 노트북, 데스크톱
    40 IoT 분리가 필요한 장치

    4-2. Linux에서 VLAN 테스트 인터페이스 만들기

    브랜드별 UI만 보고 있으면 진짜 스위치가 잘못됐는지, 서버 NIC 설정이 잘못됐는지 헷갈릴 때가 많습니다. 그럴 때는 끝까지 UI를 의심하지 말고, 패킷이 실제로 어떻게 들어오는지 확인해야 합니다.

    # 물리 NIC가 eno1이라고 가정
    sudo ip link add link eno1 name eno1.20 type vlan id 20
    sudo ip addr add 192.168.20.10/24 dev eno1.20
    sudo ip link set eno1 up
    sudo ip link set eno1.20 up
    
    # 연결 확인
    ip -d link show eno1.20
    ping -c 4 192.168.20.1

    이 명령은 대부분의 테스트 환경에서 바로 써먹기 좋습니다. 스위치 쪽에서 Trunk와 Allowed VLAN만 맞아 있으면, 서버에서 VLAN 서브인터페이스가 올라오거든요. 저는 이 단계에서 꽤 많이 살았습니다. 괜히 컨트롤러 화면만 보다가 한참 돌았던 적이 많아서요 ㅎㅎ

    홈랩 관리형 스위치의 VLAN 분리와 트렁크 포트 구성 예시

    관리 VLAN과 서버 VLAN, 사용자 VLAN, IoT VLAN이 포트별로 어떻게 나뉘는지 보여주는 구성 예시입니다.

    4-3. 트래픽이 태그되어 들어오는지 확인

    sudo tcpdump -eni eno1 vlan

    이거 진짜 편하더라고요. 태그가 안 보이면 스위치 포트 프로파일이 틀렸거나, Access/Trunk가 뒤집힌 경우가 많습니다. 네트워크 구성 비교를 할 때도 결국 이런 기본 검증 흐름이 있어야 브랜드 차이를 냉정하게 볼 수 있습니다.

    4-4. 문서화 예시

    vlans:
      - id: 10
        name: management
        ports:
          tagged: [uplink1, hypervisor1, ap1]
          untagged: [mgmt-pc]
      - id: 20
        name: server
        ports:
          tagged: [uplink1, hypervisor1]
          untagged: [nas1]
      - id: 30
        name: client
        ports:
          tagged: [uplink1, ap1]
          untagged: [desk1, desk2]
      - id: 40
        name: iot
        ports:
          tagged: [uplink1, ap1]
          untagged: [camera1]

    이런 식으로 간단한 YAML(야믈, 사람이 읽기 쉬운 설정 형식) 문서라도 남겨두면 나중에 장비 바꿀 때 엄청 편합니다. UniFi에서 Omada로, 혹은 Omada에서 MikroTik으로 넘어가더라도 논리는 그대로 가져갈 수 있거든요.

    5. 브랜드별로 직접 운영해보면 느끼는 차이

    5-1. UniFi 스위치가 편한 경우

    무선 AP, 게이트웨이, 스위치를 한 흐름으로 보고 싶다면 UniFi 스위치 쪽 만족도가 높을 가능성이 큽니다. 포트 프로파일 개념이 익숙해지면 반복 작업이 줄고, 토폴로지 시각화도 운영 피로를 낮춰줍니다. 홈랩을 “관리 제품”처럼 다루고 싶은 분들께 잘 맞습니다.

    5-2. Omada 스위치가 무난한 경우

    Omada 스위치는 비교적 무난하게 접근하기 좋습니다. 인터페이스가 아주 특이하지 않고, 필요한 기능을 단계적으로 올리기 좋다는 인상이 있었습니다. 특히 “너무 복잡한 건 싫은데, 그렇다고 비관리형은 아쉽다”는 분들에겐 균형이 괜찮습니다.

    5-3. MikroTik 스위치가 강한 경우

    MikroTik 스위치는 이해한 만큼 보상을 주는 타입입니다. 브리지, VLAN 필터링, 포트 역할을 정확히 알고 들어가면 세밀하게 설계할 수 있습니다. 반대로 말하면, 감으로 만지면 바로 꼬입니다. 저도 처음엔 관리망이 갑자기 안 붙어서 식은땀 좀 났습니다. 결국 구조를 다시 그리고 나서야 풀렸어요.

    6. ⚠️ 실제로 많이 겪는 문제와 트러블슈팅

    이 섹션은 좀 중요합니다. 비교 글은 다들 장점만 말하는데, 실제 운영에서는 어디서 막히는지가 더 중요하거든요.

    • 관리 VLAN을 잘못 바꿔서 장비 접속이 끊김
      해결: 변경 전 현재 접속 포트와 관리 IP가 어느 VLAN에 물려 있는지 먼저 적어두세요. 가능하면 콘솔 접근 경로를 확보하고 바꾸는 게 좋습니다.
    • AP 업링크 포트를 Access로 잡아서 SSID VLAN이 안 올라감
      해결: AP 연결 포트는 여러 VLAN이 지나가야 하므로 Tagged VLAN 허용 상태를 먼저 확인하세요.
    • 하이퍼바이저에서 VLAN은 만들었는데 통신이 안 됨
      해결: 스위치 Trunk 허용 목록, 서버 NIC 본딩 여부, 게이트웨이 서브인터페이스를 같이 확인해야 합니다.
    • 브랜드별 용어 차이 때문에 같은 설정을 다르게 이해함
      해결: 메뉴 이름보다 포트 역할을 기준으로 문서화하세요. Tagged/Untagged, PVID 같은 개념으로 통일하면 덜 헷갈립니다.

    혹시 이런 경험 있으신가요? “분명 VLAN 20인데 왜 통신이 안 되지?” 하면서 한 시간 넘게 본 적이요. 저는 대부분 케이블 문제가 아니라 포트 모드 문제였습니다. 드디어 됐다! 싶어서 보면 결국 Access/Trunk 하나 잘못 잡은 거였어요.

    홈랩 관리형 스위치 설정 오류를 점검하는 트러블슈팅 장면

    관리 VLAN 변경 실수나 태그 누락 같은 흔한 문제를 점검하는 트러블슈팅 흐름을 보여주는 이미지입니다.

    7. 검증 방법: 구성 후 무엇을 확인해야 하나

    스위치는 설정하는 것도 중요하지만, 검증 루틴을 만들어두는 게 더 중요합니다. 저는 아래 순서로 확인합니다.

    1. 각 VLAN 대역에서 게이트웨이 핑이 되는지 확인합니다.
    2. 분리해야 하는 네트워크끼리 정말 차단되는지 확인합니다.
    3. AP를 통해 무선 클라이언트가 의도한 VLAN에 붙는지 봅니다.
    4. NAS나 서버 업링크가 기대한 대로 동작하는지 확인합니다.
    5. 관리 UI에서 포트 업/다운, 오류 카운터를 확인합니다.
    # 인터페이스 상태 확인
    ip addr
    ip route
    
    # VLAN별 연결 확인 예시
    ping -c 4 192.168.10.1
    ping -c 4 192.168.20.1
    ping -c 4 192.168.30.1
    
    # 분리 검증 예시: IoT 대역에서 서버 대역 차단 확인
    nc -zv 192.168.20.10 22

    이렇게 검증하고 나면 장비 브랜드보다 설계가 더 중요하다는 걸 느끼게 됩니다. 좋은 홈랩 관리형 스위치를 고르는 것도 중요하지만, 결국 운영 안정성은 구조와 검증 습관에서 나오더라고요.

    홈랩 관리형 스위치 구성 검증 결과를 보여주는 대시보드

    VLAN별 연결 상태, 포트 상태, 테스트 결과를 한눈에 확인하는 검증 이미지입니다.

    8. 어떤 사람에게 어떤 선택이 맞을까

    • UniFi 추천: AP, 스위치, 게이트웨이를 통합된 경험으로 관리하고 싶은 분
    • Omada 추천: 너무 어렵지 않으면서도 관리형 기능을 충실히 쓰고 싶은 분
    • MikroTik 추천: 네트워크 구조를 깊게 이해하고 세밀한 제어를 원하는 분

    제 기준으로 정리하면 이렇습니다. UniFi 스위치는 운영 경험이 부드럽고, Omada 스위치는 접근성이 좋고, MikroTik 스위치는 공부할수록 재미가 커집니다. 어느 쪽이 무조건 우위라기보다, 내가 원하는 운영 스타일이 무엇인지가 핵심입니다.

    9. 정리와 다음 단계

    오늘 비교를 한 줄로 줄이면 이렇습니다. 네트워크 구성 비교에서 중요한 건 스펙표보다 운영 방식입니다. 홈랩에서 반복적으로 만질 장비라면 UI와 문서화 흐름이 중요하고, 반대로 구조를 파고드는 재미와 제어력을 원하면 학습 곡선도 받아들일 만합니다.

    저는 개인적으로 처음 홈랩을 세팅하는 분이라면 관리 VLAN, 서버 VLAN, 사용자 VLAN 정도만 먼저 분리해서 시작해보시라고 말씀드립니다. 처음부터 너무 많은 정책을 넣으면 나중에 어디서 꼬였는지 찾기 어려워지거든요. 작은 성공을 여러 번 만드는 쪽이 훨씬 낫습니다.

    다음 글에서는 홈랩 관리형 스위치를 실제 라우터와 하이퍼바이저에 연결해서, VLAN 간 라우팅과 방화벽 정책을 어떻게 가져가는지 다뤄볼 예정입니다. 이전 글에서 다룬 홈랩 IP 주소 설계 편이 있다면 같이 보셔도 흐름 잡는 데 도움이 됩니다.

    세 브랜드의 운영 스타일과 추천 사용자 유형을 간단히 정리한 요약 인포그래픽입니다.

    자주 묻는 질문

    Q1. 처음 홈랩을 시작할 때 가장 무난한 선택은 뭔가요?

    통합 관리와 쉬운 시각화를 원하면 UniFi 계열이 편하고, 너무 복잡하지 않은 균형형을 원하면 Omada도 괜찮습니다. 다만 이미 네트워크를 공부할 마음이 있다면 MikroTik도 충분히 좋은 선택입니다.

    Q2. MikroTik은 초보자에게 너무 어렵지 않나요?

    어렵긴 합니다. 다만 “불친절해서 못 쓴다”보다 “구조를 이해해야 제대로 쓴다”에 가깝습니다. 저도 처음엔 헷갈렸는데, VLAN과 브리지 개념을 잡고 나니 훨씬 수월했습니다.

    Q3. 브랜드를 섞어 써도 되나요?

    됩니다. 실제로 홈랩에서는 스위치, AP, 라우터를 서로 다른 브랜드로 운영하는 경우도 많습니다. 중요한 건 UI 통일성보다 VLAN 설계와 검증 루틴입니다.

  • [홈랩] 홈 어시스턴트 자동화 오류, 1년 운영하며 겪은 설정 트러블슈팅 사례

    [홈랩] 홈 어시스턴트 자동화 오류, 1년 운영하며 겪은 설정 트러블슈팅 사례

    [홈랩] 홈 어시스턴트 자동화 오류, 1년 운영하며 겪은 설정 트러블슈팅 사례

    홈랩(Home Lab, 집에서 직접 운영하는 실험용 서버 환경)으로 Home Assistant를 1년 정도 굴리다 보면, 언젠가는 한 번쯤 홈 어시스턴트 자동화 오류를 만나게 됩니다. 저도 처음엔 “분명 어제까지 되던 건데 왜 갑자기 안 되지?” 이 생각부터 들었거든요. 특히 조명 자동화, 센서 기반 알림, 외출 모드 전환 같은 것들은 한 번 꼬이면 생활 리듬 자체가 흔들립니다. 작은 설정 하나였는데 새벽에 삽질 좀 했습니다 ㅎㅎ

    이번 글에서는 제가 실제로 홈랩에서 운영하면서 자주 겪었던 설정 문제, 그리고 그걸 어떻게 트러블슈팅(troubleshooting, 문제 원인 추적 및 해결)했는지 정리해보겠습니다. 단순히 “이렇게 하세요”가 아니라, 왜 그런 증상이 생기는지까지 같이 풀어볼게요. 혹시 자동화가 가끔씩만 실패하거나, 로그는 멀쩡해 보이는데 동작은 안 하는 경험 있으신가요? 그럴 때 꽤 도움이 될 겁니다.

    홈 어시스턴트 자동화 오류 이해를 위한 홈랩 전체 구성도

    센서, 자동화, 엔티티 상태, 알림 흐름이 한눈에 보이는 홈랩 기반 Home Assistant 개요 이미지입니다.

    왜 홈 어시스턴트 자동화 오류가 자주 생길까

    쉽게 말해 자동화(Automation)는 Trigger(트리거, 발동 조건), Condition(조건, 실행 제한 규칙), Action(액션, 실제 실행 동작) 이 세 가지가 맞물려 돌아갑니다. 이 셋 중 하나만 기대와 다르게 동작해도 겉으로는 “자동화가 고장 났다”처럼 보이더라고요.

    제가 직접 해보니 원인은 대체로 아래 범주로 모입니다.

    • 엔티티 ID(Entity ID, 장치 식별자)가 바뀌었는데 자동화는 예전 값을 참조하는 경우
    • 트리거는 발생했지만 조건에서 걸러져 실행되지 않는 경우
    • 타임존(Time Zone, 시간대)이나 시간 조건이 엇나간 경우
    • 재시작 후 장치 상태 복구가 늦어서 자동화가 먼저 평가되는 경우
    • YAML 들여쓰기나 키 이름 오타처럼 아주 기본적인 설정 문제

    여기서 중요한 포인트! 자동화가 실행되지 않은 것과 실행은 됐지만 액션이 실패한 것은 완전히 다른 문제입니다. 이걸 구분하지 않으면 디버깅(Debugging, 문제를 재현하고 원인을 좁혀가는 과정) 시간이 길어집니다.

    먼저 확인할 핵심 개념 4가지

    1. 상태(State)와 속성(Attribute)의 차이

    처음엔 이게 뭔가 싶었는데, 센서는 겉으로 보이는 상태값만 보면 안 되는 경우가 정말 많더라고요. 예를 들어 배터리 센서나 조도 센서는 상태는 숫자인데, 실제 자동화 판단에는 다른 속성이 개입하는 경우가 있거든요.

    2. 트리거와 조건은 순서가 다릅니다

    트리거가 먼저 발생하고, 그 다음 조건을 검사합니다. 그래서 로그상 트리거가 찍혀도 조건이 틀리면 액션은 아예 실행되지 않습니다. 이건 초반에 많이 헷갈렸습니다.

    3. 수동 실행과 실제 이벤트 기반 실행은 다를 수 있습니다

    자동화를 UI에서 수동 실행하면 액션만 테스트되는 경우가 많아요. 반면 실제 환경에서는 센서 갱신 주기, 상태 전환 타이밍, 장치 응답 지연까지 들어오니까 결과가 달라질 수 있습니다.

    4. 로그 한 군데만 보면 놓칩니다

    Trace(트레이스, 자동화 실행 경로 추적), Logbook(로그북, 이벤트 기록), Developer Tools(개발자 도구), 그리고 필요하면 Logger(로거) 설정까지 같이 봐야 흐름이 보입니다.

    확인 대상 어디서 확인 주로 찾는 문제
    트리거 발생 여부 Trace, Logbook 이벤트 자체가 안 들어오는 문제
    조건 통과 여부 Trace 시간 조건, 상태 조건 불일치
    액션 성공 여부 Trace, 로그 서비스 호출 실패, 대상 엔티티 오류
    엔티티 현재 상태 Developer Tools ID 변경, 상태값 예상 불일치

    실전 구현: 제가 쓰는 기본 디버깅 순서

    제가 요즘은 자동화가 이상하면 무조건 아래 순서로 봅니다. 예전엔 이것저것 막 눌렀는데, 순서를 정해두니까 훨씬 빨라졌습니다.

    1. 자동화 Trace 확인: 트리거가 들어왔는지부터 봅니다.
    2. 엔티티 상태 점검: 조건에 사용한 센서와 스위치 상태를 확인합니다.
    3. 액션 단독 테스트: 서비스 호출이 실제로 되는지 검증합니다.
    4. YAML 검사: 들여쓰기, 키 오타, 잘못된 엔티티 ID를 다시 봅니다.
    5. 로그 레벨 상향: 필요할 때만 logger를 잠깐 상세하게 켭니다.

    예제 1. 사람이 감지되면 조명 켜기 자동화

    아래는 아주 흔한 패턴입니다. 그런데 이 단순한 자동화도 실제로는 자주 꼬입니다. 센서가 on으로 안 올라오거나, 이미 조명이 켜져 있어서 상태 변화가 없거나, 조건 시간이 잘못 잡혀 있으면 안 돌더라고요.

    automation:
      - alias: "Hall Motion Light On"
        id: hall_motion_light_on
        trigger:
          - platform: state
            entity_id: binary_sensor.hall_motion
            to: "on"
        condition:
          - condition: time
            after: "18:00:00"
            before: "23:59:59"
          - condition: state
            entity_id: input_boolean.guest_mode
            state: "off"
        action:
          - service: light.turn_on
            target:
              entity_id: light.hall_light
        mode: single

    이 설정에서 제가 실제로 자주 놓친 건 두 가지였습니다. 첫째, binary_sensor.hall_motion의 상태가 기대한 on/off가 아니라 제조사 통합(Integration, 연동 모듈) 특성상 갱신 간격이 들쑥날쑥했던 점. 둘째, 손님 모드용 input_boolean가 테스트 중 켜져 있었던 점입니다. 진짜 별거 아닌데 한참 찾았습니다.

    자동화 Trace와 엔티티 상태 점검 순서를 보여주는 설정 확인 이미지입니다.

    예제 2. 액션 단독 테스트

    자동화가 아니라 액션 문제인지 분리하려면 서비스 호출부터 해보는 게 좋습니다. Developer Tools에서 아래처럼 직접 호출해보면 됩니다.

    service: light.turn_on
    target:
      entity_id: light.hall_light

    이게 여기서는 잘 되는데 자동화에서는 안 된다? 그러면 액션보다 트리거나 조건 쪽을 봐야 합니다. 반대로 이것도 실패하면 장치 통신, 엔티티 ID, 통합 상태를 먼저 의심하는 게 맞습니다.

    예제 3. 로그 상세화

    로그를 너무 세게 켜면 오히려 보기 힘들어집니다. 그래서 저는 필요한 통합만 잠깐 올립니다.

    logger:
      default: warning
      logs:
        homeassistant.components.automation: debug
        homeassistant.core: info

    이 설정은 원인 파악이 끝나면 다시 낮추는 편이 좋습니다. 로그가 너무 많아지면 중요한 메시지가 묻히거든요.

    ⚠️ 1년 운영하며 자주 만난 설정 트러블슈팅 사례

    사례 1. 엔티티 이름이 바뀌어서 자동화가 조용히 실패

    이건 생각보다 흔합니다. 기기를 재등록하거나 통합을 다시 붙이면서 엔티티 ID가 바뀌면, 자동화는 예전 이름을 계속 참조합니다. UI에서는 장치가 멀쩡해 보여서 더 헷갈리더라고요.

    해결법은 단순합니다. Developer Tools의 States에서 현재 엔티티 ID를 다시 확인하고, YAML 또는 UI 자동화 편집기에서 참조 대상을 전부 점검하면 됩니다.

    사례 2. 조건이 너무 빡빡해서 실행 기회가 없음

    처음엔 저도 조건을 촘촘히 걸면 더 안전한 줄 알았습니다. 근데 실제로 써보니까 시간, 재실 여부, 모드 토글, 조도까지 다 묶어놓으면 오히려 하나라도 안 맞아서 액션이 거의 안 돌더라고요.

    해결법은 조건을 하나씩 빼면서 재현하는 겁니다. 특히 시간 조건은 Time Pattern(시간 패턴)이나 자정 경계에서 헷갈리기 쉬워서 주의가 필요합니다.

    사례 3. 재시작 직후 자동화가 오작동

    Home Assistant 재시작 직후에는 일부 장치 상태가 아직 복구되지 않았는데 자동화가 먼저 평가될 수 있습니다. 이때 센서가 unknown 또는 unavailable 상태라 조건이 엉뚱하게 처리되기도 합니다.

    해결법은 상태 안정화까지 기다리는 조건을 넣거나, 템플릿(Template, 조건식을 동적으로 계산하는 방식)으로 unknown 상태를 예외 처리하는 겁니다.

    condition:
      - condition: template
        value_template: "{{ states('binary_sensor.hall_motion') not in ['unknown', 'unavailable'] }}"

    사례 4. YAML 문법보다 더 무서운 건 논리 실수

    문법 오류는 체크에서 걸리니까 오히려 찾기 쉽습니다. 진짜 오래 끄는 건 논리 실수예요. 예를 들어 조명을 켜는 자동화와 끄는 자동화가 서로 상태를 건드리면서 루프처럼 보이는 상황이 있었습니다. 처음엔 센서 문제인 줄 알았는데, 나중에 보니 자동화끼리 서로 발동시키고 있었어요.

    해결법은 자동화 이름을 명확히 짓고, 관련 자동화 묶음을 같이 보는 겁니다. 하나만 보면 정상 같아도 전체 흐름에서는 충돌할 수 있습니다.

    홈 어시스턴트 자동화 오류의 YAML 설정 문제를 설명하는 이미지

    YAML 들여쓰기, 엔티티 ID, 조건 충돌 지점을 설명하는 설정 예시 이미지입니다.

    제가 정착한 디버깅 체크리스트

    삽질을 몇 번 하고 나니 결국 체크리스트가 제일 강하더라고요. 홈 어시스턴트 자동화 오류가 생기면 저는 거의 아래 순서대로 갑니다.

    1. 트리거가 실제로 발생했는지 Trace에서 확인
    2. 조건에 사용한 엔티티 상태를 현재 시점 기준으로 확인
    3. 액션 서비스 호출을 수동으로 실행
    4. 최근 장치명 또는 엔티티 ID 변경 여부 확인
    5. 재시작 직후라면 unknown, unavailable 상태 체크
    6. 관련 자동화끼리 충돌이 없는지 점검
    7. 필요 시 logger를 잠깐 debug로 올려 재현

    이 체크리스트만 지켜도 디버깅 시간이 확 줄어듭니다. 사실 자동화가 복잡해질수록 문제는 “기술적으로 어려운 버그”보다 “내가 예전에 왜 이렇게 짰지?”에 가깝더라고요.

    검증과 결과: 이렇게 확인하면 마음이 편합니다

    문제를 고친 뒤에는 그냥 한 번 작동했다고 끝내면 안 됩니다. 저는 최소한 세 가지는 꼭 봅니다.

    • 수동 테스트: 액션이 의도대로 실행되는지
    • 실환경 테스트: 실제 센서 이벤트로 발동되는지
    • 로그 재확인: 경고나 예외가 남지 않는지

    특히 밤 시간 조명 자동화처럼 시간 조건이 있는 건 같은 조건대에서 다시 검증해야 합니다. 낮에 테스트해서 성공해도 밤 조건에서 다르게 동작할 수 있거든요. 저는 수정 후 하루 정도는 Logbook을 더 자주 보는 편입니다. 귀찮아도 이 과정이 있어야 재발을 줄일 수 있었습니다.

    홈 어시스턴트 자동화 오류 해결 후 결과 검증 대시보드 이미지

    자동화 실행 성공 여부와 로그 확인 결과를 한눈에 보여주는 검증 이미지입니다.

    자주 묻는 질문 정리

    Q1. 자동화 수동 실행은 되는데 실제로는 왜 안 될까요?

    A. 수동 실행은 보통 액션 위주 테스트라서 그렇더라고요. 트리거와 조건 검증은 별도로 Trace에서 확인하셔야 합니다.

    Q2. 홈랩 환경이라 더 불안정한 걸까요?

    A. 꼭 그렇진 않습니다. 다만 홈랩은 기기 교체, 네트워크 변경, 통합 추가 실험이 잦아서 설정 드리프트(Configuration Drift, 설정이 점점 원래 의도와 달라지는 현상)가 생기기 쉬워요.

    Q3. YAML과 UI 자동화 중 뭐가 더 좋나요?

    A. 둘 다 장단점이 있더라고요. 저는 단순 자동화는 UI, 재사용성과 조건 제어가 중요한 건 YAML로 두는 편입니다. 중요한 건 방식보다도 추적 가능성과 일관성입니다.

    방식 장점 주의할 점
    UI 자동화 빠르게 만들고 수정하기 편함 복잡해지면 흐름 파악이 어려울 수 있음
    YAML 자동화 버전 관리와 구조화에 유리함 오타, 들여쓰기, 참조 실수에 주의

    마무리: 자동화는 결국 운영의 영역입니다

    1년 동안 운영해보니 홈 어시스턴트 자동화 오류는 대단한 장애라기보다, 작은 상태 차이와 설정 누적으로 생기는 경우가 대부분이었습니다. 저도 처음엔 장치 탓, 네트워크 탓부터 했었는데 결국 Trace와 상태 확인을 차근차근 보면 답이 나오더라고요. 드디어 됐다! 싶을 때의 그 편안함이 있습니다.

    정리하자면, 트리거 확인, 조건 분리, 액션 단독 테스트, 로그 최소 확장 이 네 가지가 핵심입니다. 특히 홈 어시스턴트 자동화 오류를 줄이려면 자동화 자체를 예쁘게 짜는 것보다, 나중에 내가 다시 봐도 이해할 수 있게 만드는 게 더 중요했습니다.

    다음 글에서는 자동화가 많아졌을 때 파일 분리 기준과 네이밍 규칙, 그리고 홈랩에서 백업 전략을 어떻게 가져가면 편한지 다뤄볼 예정입니다. 이전 글에서 다룬 네트워크 분리와 리버스 프록시(Reverse Proxy, 중간에서 요청을 전달하는 구성) 내용과도 연결되니 같이 보시면 흐름이 더 잘 잡히실 겁니다.

    홈 어시스턴트 자동화 오류 해결 체크리스트 요약 이미지

    문제 확인부터 해결까지 핵심 체크리스트를 요약한 인포그래픽 이미지입니다.

    ✅ 오늘 바로 해보실 건 하나입니다. 자동화 하나를 골라 Trace를 다시 열어보세요. 평소엔 보이지 않던 병목이 꽤 선명하게 보일 겁니다. 이거 진짜 편하더라고요.

  • [홈랩] 홈랩 VLAN 설정 완벽 가이드: 스위치와 라우터 연동

    [홈랩] 홈랩 VLAN 설정 완벽 가이드: 스위치와 라우터 연동

    [홈랩] 홈랩 VLAN 설정 완벽 가이드: 스위치와 라우터 연동

    홈랩 VLAN 설정, 한 번 제대로 잡아두면 네트워크가 정말 편해집니다. 서버는 서버끼리, IoT는 IoT끼리, 게스트 Wi-Fi는 내부망과 분리해서 굴릴 수 있거든요. 저도 처음 홈랩을 키울 때는 스위치에 선만 꽂으면 끝인 줄 알았는데, VM 하나 늘고 NAS 하나 붙고 카메라까지 들어오니까 금방 복잡해지더라고요. 결국 VLAN 구성으로 정리하고 나서야 드디어 됐다 싶었습니다. 특히 네트워크 분리와 보안 강화를 같이 챙기고 싶다면, 관리형 스위치와 라우터 VLAN 연동은 거의 필수에 가깝습니다.

    홈랩 VLAN 설정 전체 아키텍처를 보여주는 다이어그램

    관리형 스위치, 라우터, 서버, IoT, 게스트망이 VLAN별로 분리된 전체 구성 예시입니다.

    왜 홈랩 VLAN 설정이 중요한가요

    쉽게 말해 VLAN은 하나의 물리 네트워크를 여러 개의 논리 네트워크로 쪼개는 방식입니다. 선은 같은 스위치에 꽂혀 있어도, VLAN ID가 다르면 서로 다른 네트워크처럼 동작합니다. 이게 왜 좋으냐면요.

    • 관리망(Management)을 따로 빼서 스위치나 하이퍼바이저 관리 페이지를 안전하게 둘 수 있습니다.
    • 서버망(Server Network)과 개인 PC망을 분리해서 사고 범위를 줄일 수 있습니다.
    • IoT망을 따로 두면 카메라나 스마트 플러그가 내부 서버에 함부로 접근하지 못합니다.
    • 게스트망(Guest Network)을 만들면 손님 Wi-Fi를 줘도 마음이 좀 편해집니다.

    여기서 중요한 포인트! VLAN은 만능 보안 장비가 아니라 분리의 기본 단위입니다. 즉, 나누는 것만으로 끝나는 게 아니라 라우터에서 VLAN 간 통신 정책까지 같이 잡아야 진짜 의미가 있습니다.

    VLAN 구성 개념, 쉽게 말해 이렇게 이해하시면 됩니다

    저도 처음엔 태그니 언태그니 하면서 머리가 좀 아팠습니다 ㅎㅎ 그런데 아래 두 가지만 잡으면 금방 감이 옵니다.

    Tagged(태그드)와 Untagged(언태그드)

    Tagged(태그드)는 패킷에 VLAN 번호를 붙여서 보내는 방식입니다. 보통 스위치와 라우터 사이, 스위치와 하이퍼바이저 사이처럼 여러 VLAN을 한 선으로 같이 보낼 때 씁니다. 이 연결을 흔히 Trunk(트렁크)라고 부릅니다.

    Untagged(언태그드)는 패킷에 VLAN 태그를 붙이지 않는 방식입니다. PC 한 대, 프린터 한 대처럼 한 포트에서 한 네트워크만 쓰는 경우에 일반적으로 사용합니다. 이 포트를 흔히 Access(액세스) 포트라고 부르죠.

    PVID와 Native VLAN

    PVID(Port VLAN ID)는 태그 없이 들어온 트래픽을 어떤 VLAN으로 볼지 정하는 값입니다. 관리형 스위치에서 액세스 포트 설정할 때 자주 보게 됩니다. 제조사마다 표현은 조금 달라도 개념은 비슷합니다.

    항목 의미 주로 쓰는 곳
    Tagged VLAN 태그 포함 라우터-스위치, 스위치-서버 업링크
    Untagged VLAN 태그 없음 PC, 프린터, 단일 장비 연결 포트
    PVID 태그 없는 프레임의 기본 VLAN 액세스 포트 기본 소속 설정
    Trunk 여러 VLAN을 한 링크로 전달 업링크 포트

    실제로 써보니까, 홈랩 VLAN 설정에서 가장 많이 꼬이는 부분이 바로 여기였습니다. 스위치에서는 태그드로 보냈는데 라우터는 언태그드만 받고 있다거나, PVID가 엉뚱하게 남아 있다거나요. 증상은 인터넷 안 됨 하나로 보이는데 원인은 꽤 다양합니다.

    실전 설계: 먼저 VLAN 번호부터 정리해보겠습니다

    제가 홈랩에서 자주 쓰는 방식은 아래처럼 역할별로 VLAN을 나누는 겁니다. 꼭 이 숫자를 따라야 하는 건 아니지만, 일단 규칙을 정해두면 나중에 훨씬 덜 헷갈립니다.

    1. VLAN 10: 관리망 (스위치, 라우터, 하이퍼바이저 관리)
    2. VLAN 20: 서버망 (NAS, VM, 컨테이너 호스트)
    3. VLAN 30: IoT망 (카메라, 센서, 스마트 기기)
    4. VLAN 40: 게스트망 (외부 사용자용 Wi-Fi)

    예시 주소 체계도 같이 정해두면 좋습니다.

    vlans:
      10:
        name: mgmt
        subnet: 192.168.10.0/24
        gateway: 192.168.10.1
      20:
        name: servers
        subnet: 192.168.20.0/24
        gateway: 192.168.20.1
      30:
        name: iot
        subnet: 192.168.30.0/24
        gateway: 192.168.30.1
      40:
        name: guest
        subnet: 192.168.40.0/24
        gateway: 192.168.40.1

    이렇게 해두면 문서화도 쉽고, 방화벽(Firewall, 네트워크 접근 제어 장치) 규칙 만들 때도 편합니다.

    관리형 스위치와 라우터 VLAN 연동, 단계별로 해보겠습니다

    여기서는 특정 제조사 화면이 아니라, 대부분의 관리형 스위치와 Linux 기반 라우터에서 공통으로 이해할 수 있는 흐름으로 설명드릴게요. 모델마다 메뉴 이름은 달라도 핵심은 같습니다.

    1. 라우터 쪽에 VLAN 인터페이스 만들기

    라우터의 물리 인터페이스가 <code>eth0라고 가정해보겠습니다. 802.1Q(이더넷 VLAN 태깅 표준) 기반 서브인터페이스를 생성합니다.

    ip link add link eth0 name eth0.10 type vlan id 10
    ip link add link eth0 name eth0.20 type vlan id 20
    ip link add link eth0 name eth0.30 type vlan id 30
    ip link add link eth0 name eth0.40 type vlan id 40
    
    ip addr add 192.168.10.1/24 dev eth0.10
    ip addr add 192.168.20.1/24 dev eth0.20
    ip addr add 192.168.30.1/24 dev eth0.30
    ip addr add 192.168.40.1/24 dev eth0.40
    
    ip link set eth0 up
    ip link set eth0.10 up
    ip link set eth0.20 up
    ip link set eth0.30 up
    ip link set eth0.40 up

    이 작업은 재부팅해도 유지되도록 배포판 설정 파일이나 라우터 UI에 반영해야 하더라고요. CLI로 테스트한 뒤 영구 설정으로 옮기는 방식이 여러 번 배웠던 삽질을 줄여줍니다.

    2. DHCP 범위도 VLAN별로 분리하기

    라우터가 DHCP 서버 역할도 한다면, 네트워크별로 주소 풀을 따로 나눠서 줘야 합니다.

    dhcp:
      - interface: eth0.10
        range: 192.168.10.100-192.168.10.199
      - interface: eth0.20
        range: 192.168.20.100-192.168.20.199
      - interface: eth0.30
        range: 192.168.30.100-192.168.30.199
      - interface: eth0.40
        range: 192.168.40.100-192.168.40.199

    저는 예전에 이걸 빼먹어서, VLAN은 잘 나뉘었는데 IP가 안 붙는 바람에 한참 헤맸습니다. 핑도 안 되고, 장비는 링크 업인데 네트워크는 죽어 있고… 이런 경우 DHCP부터 보시면 됩니다.

    홈랩 VLAN 설정에서 관리형 스위치 포트 구성을 설명하는 이미지

    라우터-스위치 업링크는 트렁크, 단말 포트는 액세스 형태로 나뉘는 구성을 보여주는 예시입니다.

    3. 관리형 스위치 포트 역할 정하기

    예를 들어 포트 1번은 라우터와 연결, 포트 2번은 하이퍼바이저, 포트 3번은 NAS, 포트 4번은 IoT AP, 포트 5번은 관리용 PC라고 가정해보겠습니다.

    포트 연결 대상 설정 비고
    1 라우터 VLAN 10/20/30/40 Tagged 트렁크
    2 하이퍼바이저 VLAN 10/20 Tagged VM별 VLAN 사용
    3 NAS VLAN 20 Untagged, PVID 20 서버망 전용
    4 무선 AP VLAN 30/40 Tagged, VLAN 10 Untagged 또는 Tagged SSID 분리
    5 관리 PC VLAN 10 Untagged, PVID 10 관리망 접속

    여기서 중요한 포인트! 스위치 관리 IP를 어느 VLAN에 둘지 먼저 정하셔야 합니다. 저는 보통 관리망 VLAN 10에 둡니다. 나중에 장비 찾기가 훨씬 쉽거든요.

    4. 스위치에 VLAN 멤버십 적용하기

    제조사마다 화면은 다르지만 보통 이런 순서로 진행합니다.

    1. VLAN 10, 20, 30, 40 생성
    2. 포트 1을 각 VLAN의 Tagged 멤버로 추가
    3. 포트 3은 VLAN 20의 Untagged 멤버로 설정하고 PVID 20 지정
    4. 포트 5는 VLAN 10의 Untagged 멤버로 설정하고 PVID 10 지정
    5. AP 연결 포트는 SSID 설계에 맞춰 Tagged VLAN 추가

    혹시 메인 SSID는 직원망, 게스트 SSID는 손님망처럼 나누고 싶다면 여기서 라우터 VLAN과 무선 SSID 매핑까지 함께 설계하면 됩니다.

    5. VLAN 간 접근 정책 만들기

    VLAN을 나누는 것만으로는 부족합니다. 라우터에서 어디까지 통신을 허용할지 정해야 진짜 보안 강화가 됩니다. 저는 보통 이렇게 시작합니다.

    # 예시 개념
    # guest(40) -> internet only
    # iot(30) -> internet allowed, mgmt(10) blocked
    # servers(20) -> mgmt(10) from admin PC only
    
    iptables -A FORWARD -s 192.168.40.0/24 -d 192.168.10.0/24 -j DROP
    iptables -A FORWARD -s 192.168.40.0/24 -d 192.168.20.0/24 -j DROP
    iptables -A FORWARD -s 192.168.30.0/24 -d 192.168.10.0/24 -j DROP
    iptables -A FORWARD -s 192.168.10.50 -d 192.168.20.0/24 -j ACCEPT

    물론 실제 환경에서는 기본 정책, 상태 기반(Stateful) 허용, DNS/NTP 예외도 같이 보셔야 합니다. 다만 처음에는 차단 먼저, 필요한 것만 허용 이 원칙으로 가는 게 훨씬 안전합니다.

    ⚠️ 제가 직접 겪은 트러블슈팅 포인트

    홈랩 VLAN 설정에서 많이 겪는 문제를 정리해보겠습니다. 이건 진짜 현장에서, 아니 제 방 서버실에서 삽질하면서 얻은 체크리스트입니다.

    • 인터넷은 되는데 내부 장비가 안 보임: 방화벽 규칙이 너무 강하거나, 반대로 라우팅은 됐는데 DNS가 VLAN별로 안 열려 있을 수 있습니다.
    • 아예 IP를 못 받음: DHCP가 해당 VLAN 인터페이스에 바인딩되지 않았거나, 스위치 포트 PVID가 틀렸을 가능성이 큽니다.
    • 스위치 관리 페이지 접속 불가: 스위치 관리 IP가 속한 VLAN과 접속 포트 VLAN이 안 맞는 경우가 많습니다. 이거 한 번 꼬이면 공장 초기화 유혹이 엄청 강해집니다.
    • 하이퍼바이저 VM만 통신 안 됨: 가상 스위치(vSwitch)나 브리지에서 VLAN 태깅을 따로 켜야 하는 경우가 있습니다.
    • 무선 AP의 게스트 SSID 분리가 안 됨: AP 업링크 포트가 트렁크가 아니거나, SSID별 VLAN ID 매핑이 다를 수 있습니다.

    저도 처음엔 라우터 문제인 줄 알고 라우터만 계속 봤었는데, 알고 보니 스위치 포트 하나가 Untagged로 남아 있더라고요. 이런 건 진짜 허무합니다. 그래서 저는 이제 변경할 때마다 포트별 역할을 메모해둡니다.

    빠르게 확인하는 점검 명령어

    ip -d link show
    ip addr show
    ip route show
    ping 192.168.10.1
    ping 192.168.20.1
    arp -n

    ip -d link show는 VLAN 서브인터페이스가 제대로 올라왔는지 볼 때 꽤 유용합니다. 태그 ID까지 보여서 실수 잡기 좋습니다.

    홈랩 VLAN 설정 검증을 위한 라우터 VLAN 상태 점검 이미지

    라우터에서 VLAN 서브인터페이스와 접근 제어 정책을 점검하는 장면을 표현한 이미지입니다.

    검증: 네트워크 분리와 통신 결과는 어떻게 확인할까요

    구성이 끝나면 아래 순서로 검증해보시면 됩니다. 이 과정을 건너뛰면 나중에 어디가 잘못됐는지 찾기가 더 어려워집니다.

    1. 관리 PC를 VLAN 10 포트에 연결하고 스위치/라우터 관리 페이지 접속 확인
    2. 서버 장비가 VLAN 20 주소를 정상적으로 받는지 확인
    3. IoT 장비가 VLAN 30 대역에서 인터넷만 되는지 확인
    4. 게스트망 장비가 내부 NAS나 관리 페이지에 접근되지 않는지 확인
    5. 필요한 예외 통신만 허용되는지 로그로 점검

    예를 들어, 게스트망에서 아래 테스트를 해보는 식입니다.

    ping 192.168.10.1
    ping 192.168.20.10
    ping 8.8.8.8
    nslookup example.com

    정상이라면 관리망/서버망 핑은 막히고, 외부 인터넷과 DNS는 동작해야겠죠. 이런 식으로 시나리오 기반으로 확인해보면 설정이 눈에 잘 들어옵니다. 🎉

    정리 표: 어떤 식으로 나누면 운영이 편한가요

    VLAN 용도 권장 정책 운영 팁
    10 관리망 관리자 PC만 접근 허용 장비 관리 IP 일관성 유지
    20 서버망 필요 포트만 외부/내부 허용 서비스별 방화벽 로그 확인
    30 IoT망 인터넷 허용, 내부망 최소화 제조사 클라우드 의존성 주의
    40 게스트망 인터넷 전용, 내부 접근 차단 DNS/NTP만 예외 허용 검토
    홈랩 VLAN 설정 결과와 네트워크 분리 상태를 요약한 이미지

    각 VLAN 간 허용/차단 관계와 인터넷 접근 여부를 한눈에 보여주는 요약 이미지입니다.

    자주 묻는 질문

    Q1. VLAN 하나만 써도 되는데 굳이 나눠야 하나요?

    장비가 3~4대 수준이면 당장은 괜찮을 수 있습니다. 근데 홈랩은 보통 점점 커지거든요. NAS 붙고, 미니 PC 붙고, AP 붙고, 카메라 들어오면 그때부터 한 네트워크에 다 섞여 있는 게 더 불편해집니다.

    Q2. 관리형 스위치가 꼭 필요한가요?

    홈랩 VLAN 설정을 제대로 하려면 사실상 필요합니다. 비관리형 스위치는 VLAN 태그 처리나 포트별 정책이 안 되니까, 라우터 VLAN만으로는 한계가 있습니다.

    Q3. 라우터 한 대로도 가능한가요?

    가능합니다. 라우터가 802.1Q VLAN 인터페이스와 방화벽 정책을 지원하면 됩니다. 다만 포트 수나 무선 SSID 분리까지 생각하면 관리형 스위치와 AP까지 같이 보는 편이 현실적입니다.

    마무리: 홈랩 VLAN 설정은 귀찮지만, 한 번 해두면 오래 갑니다

    처음엔 이게 뭔가 싶었는데, 막상 구성해두면 체감 차이가 큽니다. 관리망은 깔끔해지고, 서버는 좀 더 안전해지고, IoT 장비 때문에 찝찝한 마음도 줄어들거든요. 제가 직접 해보니 핵심은 딱 세 가지였습니다. VLAN 번호 규칙 통일, 스위치 포트 역할 문서화, 라우터 방화벽 정책 분리입니다.

    혹시 지금 홈랩이 점점 복잡해지고 있다면, 이번 기회에 VLAN 구성부터 정리해보셔도 좋겠습니다. 다음 글에서는 VLAN 위에 얹는 Inter-VLAN Routing(인터 VLAN 라우팅) 정책과 홈랩 방화벽 룰 설계 팁도 다뤄볼 예정입니다. 이전 글에서 다뤘던 백업 네트워크 분리 구성과도 연결되는 내용이라 같이 보시면 이해가 더 잘 되실 거예요. 💡

    구축 후 점검해야 할 체크리스트와 다음 확장 단계 아이디어를 담은 마무리 이미지입니다.

  • [HomeLabs] Unifi 컨트롤러 성능 비교: Cloud Key vs Docker vs VM

    [HomeLabs] Unifi 컨트롤러 성능 비교: Cloud Key vs Docker vs VM

    [네트워크] Unifi 컨트롤러 성능 비교: Cloud Key vs Docker vs VM

    홈랩 규모가 조금만 커져도 Unifi 컨트롤러 성능 차이가 은근히 체감됩니다. 처음에는 AP 몇 대, 스위치 한두 대라서 어디에 올려도 비슷할 줄 알기 쉬운데요. 막상 써보면 대시보드가 열리는 속도, 백업이 끝나는 시간, 기기 채택 반응, 업데이트 직후 안정화 구간이 호스팅 방식마다 제법 다르게 느껴지더라고요.

    저도 처음엔 Unifi Cloud Key면 끝이라고 생각했습니다. 그런데 Docker로 옮겨 보고, 다시 VM으로 분리해 보니 관점이 꽤 바뀌었습니다. 이번 글은 특정 수치를 과장해서 보여주기보다, 홈랩에서 실제로 어떤 항목을 기준으로 비교하면 덜 헤매는지, 그리고 어떤 운영 방식이 어떤 상황에 잘 맞는지 정리한 기록에 가깝습니다.

    Unifi 컨트롤러 성능 비교를 위한 Cloud Key, Docker, VM 아키텍처 이미지

    Cloud Key, Docker, VM에 UniFi Network Application이 배치된 구조를 한눈에 보여주는 개요 이미지입니다.

    왜 Unifi 컨트롤러 성능 비교가 중요한가

    UniFi Network Application은 단순히 웹 UI만 띄우는 도구가 아닙니다. 이벤트를 모으고, 장비 상태를 저장하고, 설정을 푸시하고, 백업도 만들고, 로그도 계속 다룹니다. 쉽게 말해 네트워크 관리의 중심점 역할을 하기 때문에 컨트롤러가 느리면 화면만 답답한 게 아니라 운영 전체 템포가 같이 느려집니다.

    특히 아래 상황에서 차이가 잘 드러납니다.

    • 장비 수가 늘어나서 대시보드 로딩이 길어질 때
    • 백업 파일을 자주 만들고 복원 테스트까지 할 때
    • 원격 접속으로 설정을 바꾸는데 UI 응답이 늦을 때
    • 업데이트 전후로 기기 재연결이 몰릴 때
    • 다른 서비스와 같은 서버 자원을 나눠 쓸 때

    여기서 중요한 포인트가 하나 있습니다. 벤치마크는 단순 CPU 점수 비교가 아닙니다. 관리형 장비와 상호작용하는 서비스라서 체감 응답성과 운영 편의성까지 같이 봐야 의미가 생기거든요.

    Unifi Cloud Key, Unifi Docker, Unifi VM 개념 정리

    이 부분은 이름은 쉬운데 경계가 헷갈리기 쉽습니다. 저도 처음엔 그랬거든요. 지금 기준으로는 아래처럼 이해하면 가장 편합니다.

    1. Cloud Key: UniFi 전용 관리 장치입니다. 현재는 CloudKey+ 같은 전용 콘솔 계열이 대표적이고, 설치가 단순하며 전력 효율이 좋은 편입니다.
    2. Docker: 기존 NAS나 리눅스 서버 위에 UniFi Network Application을 컨테이너로 올리는 방식입니다. 배포와 백업, 이관이 편해서 홈랩 유저가 많이 선택합니다.
    3. VM: Proxmox VE, ESXi 같은 하이퍼바이저 위에 별도 가상머신을 두고 운영하는 방식입니다. 격리와 스냅샷, 장애 분리 측면에서 장점이 큽니다.
    항목 Cloud Key Docker VM
    초기 설치 난이도 낮음 중간 중간~높음
    운영 유연성 낮음 높음 높음
    자원 격리 전용 장비 기준 양호 호스트 공유 강함
    백업/이관 편의성 보통 매우 좋음 좋음
    업데이트 실험 보수적으로 접근 이미지 교체로 비교적 쉬움 스냅샷 활용 쉬움
    홈랩 확장성 장비 의존 매우 좋음 좋음

    제 경험상 소규모 구성에서는 Cloud Key가 정말 편합니다. 반대로 홈서버를 이미 굴리고 있다면 Unifi Docker가 손에 익기 시작하고요. 여러 서비스와 운영 표준을 맞추고 싶다면 Unifi VM이 더 안정적으로 느껴질 때가 있습니다.

    Unifi 컨트롤러 성능 벤치마크 기준은 이렇게 잡는 게 덜 헷갈립니다

    많이 하는 실수가 있습니다. 로그인 화면 열리는 시간만 보고 결론 내리는 거예요. 그런데 실제 운영에서는 그걸로 부족합니다. 제가 직접 돌려보니 아래 다섯 가지는 꼭 봐야 비교가 되더라고요.

    1. 초기 기동 시간: 서비스 재시작 후 웹 UI가 실제로 접속 가능한 시점
    2. 대시보드 응답성: 로그인 후 주요 화면 전환 체감
    3. 백업 생성 시간: 설정 백업이 완료되기까지 걸리는 흐름
    4. 복원 후 안정화: 백업 복원 후 장비가 정상 표시되기까지 걸리는 시간
    5. 자원 점유 추이: CPU, 메모리, 디스크 I/O가 몰리는 구간 확인

    여기서는 숫자를 억지로 만들 필요가 없습니다. 오히려 같은 장비 수, 같은 설정, 같은 시간대, 같은 네트워크 조건에서 반복 가능한 비교 절차를 만드는 게 더 중요합니다. 결국 benchmark도 운영에 도움이 되어야 의미가 있으니까요.

    테스트 조건을 맞출 때 체크할 것

    • 동일한 사이트 설정과 비슷한 수의 장비를 사용합니다.
    • 자동 백업 주기나 DPI(Deep Packet Inspection, 심층 패킷 분석) 같은 부가 기능은 동일하게 맞춥니다.
    • 호스트에 다른 작업이 몰리는 시간은 피합니다.
    • 가능하면 같은 브라우저, 같은 클라이언트에서 접근합니다.
    • 한 번만 보지 말고 최소 여러 차례 반복합니다.
    Unifi 컨트롤러 성능 벤치마크 측정 흐름 다이어그램

    기동 시간, 로그인 응답, 백업 생성, 복원 안정화, 리소스 모니터링 순서를 정리한 벤치마크 흐름 이미지입니다.

    실전 구현: Docker와 VM에서 비교 환경 만들기

    Cloud Key는 전용 장비라 설치 과정 자체가 단순한 편입니다. 그래서 실전 비교는 Docker와 VM 쪽에서 재현 가능한 구조를 만들어두는 게 좋습니다. 저는 보통 동일한 백업 파일을 기준으로 각 환경을 맞춘 뒤, 그다음에 응답성과 운영 편의성을 비교합니다.

    1. Docker 환경 준비

    아래 예시는 Docker Compose 기준입니다. 최근 많이 쓰는 LinuxServer 이미지 방식에 맞춰 외부 MongoDB를 따로 두는 형태로 잡았습니다. 여기서는 개념 전달이 목적이라 최소 예시만 넣었고, 실제 운영에서는 DB 이미지 태그를 꼭 고정해 두는 편이 안전하더라고요.

    services:
      unifi:
        image: lscr.io/linuxserver/unifi-network-application:latest
        container_name: unifi-controller
        restart: unless-stopped
        environment:
          - PUID=1000
          - PGID=1000
          - TZ=Asia/Seoul
          - MONGO_USER=unifi
          - MONGO_PASS=unifi-pass
          - MONGO_HOST=unifi-db
          - MONGO_PORT=27017
          - MONGO_DBNAME=unifi
          - MONGO_AUTHSOURCE=admin
        ports:
          - "8443:8443"
          - "3478:3478/udp"
          - "10001:10001/udp"
          - "8080:8080"
        volumes:
          - ./unifi-config:/config
        depends_on:
          - unifi-db
    
      unifi-db:
        image: mongo:4.4
        container_name: unifi-db
        restart: unless-stopped
        environment:
          - MONGO_INITDB_ROOT_USERNAME=root
          - MONGO_INITDB_ROOT_PASSWORD=change-me
        command: ["--wiredTigerCacheSizeGB", "1"]
        volumes:
          - ./unifi-db:/data/db
          - ./init-mongo.sh:/docker-entrypoint-initdb.d/init-mongo.sh:ro

    이 예시에서 중요한 건 두 가지입니다. 첫째, `mongo:latest`처럼 메이저 버전이 자동으로 바뀌는 태그는 피하는 게 좋습니다. 둘째, 최신 UniFi Network Application 계열은 외부 MongoDB 구성과 인증 설정이 맞지 않으면 처음부터 이상하게 느려지거나 아예 기동이 꼬일 수 있어서, 성능 비교 전에 구성 일치부터 잡아야 합니다.

    실제로 써보면 Docker 방식은 이관성과 반복 실험이 정말 좋습니다. 이미지 버전 비교, 구성 백업, 롤백이 빠르거든요. 홈랩에서는 이거 하나만으로도 체감 만족도가 꽤 큽니다.

    2. VM 환경 준비

    VM은 운영체제 레벨에서 분리되기 때문에 다른 서비스와 간섭을 줄이기 좋습니다. 저는 Proxmox VE 위에 Ubuntu Server 계열 VM을 올려서 비교했는데, 중요한 건 배포판 이름보다도 CPU, 메모리, 디스크 할당 정책이었습니다. 특히 스토리지가 느리면 VM이든 Docker든 생각보다 금방 답답해집니다.

    홈랩에서는 VM 안에 다시 Docker로 UniFi를 올리는 방식도 많이 씁니다. 엄밀히 말하면 VM과 Docker를 동시에 쓰는 구조죠. 그런데 운영 표준화 측면에서는 꽤 합리적입니다. 스냅샷도 되고, 컨테이너 이관도 되니까요.

    sudo apt update
    sudo apt install -y curl ca-certificates gnupg
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt update
    sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

    위 명령은 VM 안에 Docker 실행 환경을 올리는 예시입니다. 즉, 이 단계 자체가 UniFi 설치 명령은 아니고, 비교 실험을 동일한 방식으로 재현하기 위한 기반 준비라고 보시면 됩니다.

    3. 측정 스크립트 예시

    응답 확인은 너무 복잡하게 갈 필요가 없습니다. 로그인 화면이 열리는지, HTTPS 관리 포트가 실제로 응답하는지부터 잡아도 큰 도움이 됩니다. 아래 스크립트는 재시작 직후 어느 쪽이 더 빨리 안정화되는지 감을 잡을 때 꽤 유용했습니다.

    #!/usr/bin/env bash
    TARGET="https://unifi.example.local:8443"
    for i in $(seq 1 30); do
      printf "[%02d] " "$i"
      curl -k -s -o /dev/null -w "code=%{http_code} connect=%{time_connect} start=%{time_starttransfer} total=%{time_total}\n" "$TARGET"
      sleep 2
    done

    여기에 `docker stats`, `top`, `iostat` 같은 툴을 같이 보면 병목 구간이 더 잘 보입니다. 숫자가 예쁘게 나온다고 끝이 아니라, 어느 순간에 CPU가 튀고 디스크가 밀리는지 같이 봐야 해석이 훨씬 정확해지더라고요.

    Unifi Docker와 Unifi VM 설정 비교 이미지

    컨테이너 구성 파일과 VM의 CPU, 메모리, 디스크 할당 개념을 함께 설명하는 설정 이미지입니다.

    주의사항과 트러블슈팅: 여기서 많이 헷갈립니다

    이 부분은 정말 중요합니다. 저도 성능 차이인 줄 알았는데 알고 보니 설정 문제였던 적이 여러 번 있었거든요. 분명 같은 데이터인데 한쪽만 유독 느리다면, 생각보다 아래 항목에서 걸리는 경우가 많습니다.

    포트와 네트워크 경로 문제

    • 8080/TCP: 장비와 애플리케이션 간 통신에 쓰입니다. 막혀 있으면 Adoption이나 재연결 흐름이 꼬일 수 있습니다.
    • 8443/TCP: 관리 GUI/API 접근에 자주 쓰는 포트입니다. 리버스 프록시를 붙일 때 인증서나 HTTPS 처리 구성이 꼬이면 UI가 불안정해질 수 있습니다.
    • 3478/UDP: STUN 기반 통신에 사용됩니다. 장비 채택과 연결 상태 확인 때 자주 체크하게 되는 포트입니다.

    처음엔 컨트롤러가 느린 줄 알았는데, 실제로는 L2 브로드캐스트가 제대로 안 닿아서 장비 발견이 지연된 적도 있었습니다. 이건 성능 문제가 아니라 연결 경로 문제죠. 그래서 Unifi 컨트롤러 성능을 보기 전에 통신 경로부터 먼저 정상화하는 게 맞습니다.

    디스크 성능이 발목 잡는 경우

    Cloud Key든 Docker든 VM이든 결국 로그와 데이터베이스 쓰기가 발생합니다. 저장소가 느리면 UI도 같이 답답해집니다. 특히 저전력 장비나 공유 스토리지를 쓸 때 체감 차이가 커요. CPU보다 디스크 I/O가 먼저 병목이 되는 경우도 생각보다 많더라고요.

    백업 복원 후 장비 상태가 바로 안 맞는 경우

    복원은 됐는데 장비가 오프라인처럼 보이거나 사이트 정보가 바로 반영되지 않는 경우가 있습니다. 이럴 땐 성능 탓부터 하지 말고 아래 순서로 보는 게 훨씬 빠릅니다.

    1. 장비가 새 컨트롤러 IP 또는 호스트명을 제대로 인식했는지 확인합니다.
    2. DNS(Domain Name System, 도메인 이름 해석)와 게이트웨이 경로를 점검합니다.
    3. 인증서 경고나 브라우저 캐시 문제를 제거합니다.
    4. 컨트롤러 재기동 후 로그를 다시 확인합니다.

    보통 비교 대상의 상태를 최대한 동일하게 맞추는 작업을 끝내고 나서야 진짜 성능 차이가 보입니다. 이 순서를 건너뛰면 숫자는 그럴듯해도 결론이 자꾸 흔들리더라고요.

    Unifi 컨트롤러 성능 결과 해석: 숫자보다 운영 감각이 더 중요합니다

    이제 결과를 어떻게 읽을지 정리해보겠습니다. 이 글에서는 특정 모델별 점수를 임의로 적지는 않겠습니다. 대신 홈랩에서 반복적으로 느끼는 경향을 기준으로 정리하면 아래 표에 가깝습니다.

    비교 포인트 Cloud Key 경향 Docker 경향 VM 경향
    설치 직후 진입 장벽 가장 낮음 낮음 중간
    호스트 자원 공유 영향 낮음 있음 관리 가능
    백업/이관 실험 제한적 매우 편함 편함
    문제 분리 난이도 단순 호스트 영향 고려 필요 OS 단위로 분리 쉬움
    장기 운영 유연성 보통 높음 높음

    제가 직접 굴려보니 결론은 꽤 명확했습니다.

    • 간단하고 안정적인 전용 운영이 목표면 Cloud Key가 편합니다.
    • 홈서버, NAS, 자동화, 백업까지 묶어서 운영할 생각이면 Docker가 실용적입니다.
    • 격리, 표준화, 스냅샷, 복구 훈련까지 챙기려면 VM이 운영자 친화적으로 느껴질 가능성이 큽니다.

    즉, Unifi 컨트롤러 성능은 단순 처리속도만이 아니라 운영 방식과 함께 봐야 합니다. 같은 웹 응답이라도 장애 대응 시간, 이관 편의성, 실험 가능성까지 포함하면 체감 순위가 달라지거든요.

    Unifi 컨트롤러 성능 결과를 보여주는 대시보드 이미지

    기동 시간, 응답 지표, CPU/메모리 추이를 그래프 형태로 보여주는 결과 요약 이미지입니다.

    Unifi 컨트롤러 성능 기준으로 어떤 환경을 고르면 좋을까

    정답은 하나가 아닙니다. 여기서 중요한 기준은 장비 수만이 아니라 현재 운영 습관입니다. 저도 돌이켜보면 장비 숫자보다 백업 습관, 장애 대응 방식, 업데이트 빈도가 선택에 더 큰 영향을 줬습니다.

    1. 처음 시작하는 경우: 전용 장비 기반의 Cloud Key가 가장 부담이 적습니다.
    2. 이미 Docker를 잘 쓰는 경우: Unifi Docker 구성이 가장 가성비 좋게 느껴질 가능성이 큽니다.
    3. 여러 서비스와 분리 운영이 필요한 경우: Unifi VM이 추후 확장과 장애 분리에 유리합니다.
    4. 백업과 복원 훈련을 자주 하는 경우: Docker 또는 VM이 훨씬 편합니다.

    지금 제 기준으로 홈랩이라면 Docker를 먼저 추천하고, 조금 더 엄격하게 운영할 때는 VM으로 분리할 것 같습니다. Cloud Key도 여전히 좋은 선택지지만, 실험을 자주 하는 사람에게는 유연성이 살짝 아쉽더라고요.

    정리와 다음 단계

    이번 글의 핵심은 간단합니다. Unifi 컨트롤러 성능을 비교할 때는 Cloud Key, Docker, VM을 단순 빠르기 경쟁으로 보지 말고 운영 편의성과 복구 가능성까지 같이 보자는 겁니다. 실제로 써보면 Docker는 반복 실험이 편하고, VM은 격리가 좋고, Cloud Key는 셋업이 단순해서 각자 강점이 분명합니다.

    혹시 지금 컨트롤러가 느리다고 느끼신다면 바로 마이그레이션부터 하지 마세요. 먼저 기동 시간, 백업 속도, 포트 상태, 디스크 I/O를 체크해보는 게 훨씬 낫습니다. 생각보다 원인은 호스팅 방식보다 주변 설정에 있는 경우가 많습니다. 저도 처음엔 성능 문제인 줄 알고 꽤 헤맸거든요.

    다음 글에서는 Unifi Docker를 실제 운영 환경에 올릴 때 볼륨 백업, 리버스 프록시, 업데이트 전략을 더 깊게 다뤄볼 예정입니다. 이전 글에서 다룬 홈랩 스토리지 구성과 함께 보면 흐름이 더 잘 잡힐 거예요. 백업 전략 관련 글도 같이 보면 마이그레이션 실수 줄이는 데 도움이 됩니다.

    Unifi Cloud Key, Docker, VM 선택 기준 요약 이미지

    용도별 추천 시나리오와 장단점을 한 장으로 정리한 비교 요약 이미지입니다.

    자주 묻는 질문

    Q1. 소규모 네트워크에서도 VM이 필요할까요?

    반드시 그렇지는 않습니다. 소규모라면 Cloud Key나 Docker로도 충분한 경우가 많습니다. 다만 다른 서비스와 충돌을 줄이고 싶다면 VM이 더 편하게 느껴질 수 있습니다.

    Q2. Docker가 항상 더 빠른가요?

    항상 그렇지는 않습니다. 호스트 자원 경쟁, 스토리지, 네트워크 구성에 따라 체감은 달라집니다. 그래서 benchmark는 환경 통제가 핵심입니다.

    Q3. 마이그레이션 전에 가장 먼저 뭘 해야 하나요?

    백업 검증입니다. 백업 파일이 만들어지는 것과 실제로 복원해서 정상 동작하는 것은 다른 문제거든요.

  • [HomeLabs] PoE 스위치 체크리스트: 홈랩 전원·호환성·케이블링 점검

    [HomeLabs] PoE 스위치 체크리스트: 홈랩 전원·호환성·케이블링 점검

    PoE 스위치 체크리스트: 홈랩 전원·호환성·케이블링 점검

    홈랩을 꾸리다 보면 어느 순간 PoE 스위치 체크리스트가 꼭 필요해지는 때가 옵니다. AP(Access Point, 무선 접속 장치), IP 카메라, VoIP 전화기, 소형 SBC(Single Board Computer, 단일보드 컴퓨터) 같은 장치가 하나둘 늘어나면 어댑터도 같이 늘어나거든요. 저도 처음에는 포트 수만 보고 스위치를 골랐다가 전력 예산이 모자라 장치가 들쭉날쭉 꺼진 적이 있었습니다. 그때 확실히 느꼈어요. PoE 스위치 선택은 포트 개수보다 전원, 장치 호환성, 그리고 네트워크 케이블링을 먼저 봐야 합니다.

    이번 글에서는 제가 홈랩에서 실제로 점검하는 기준을 바탕으로, 도입 전에 꼭 확인해야 할 항목을 정리해보겠습니다. 숫자만 외우는 방식보다 왜 체크해야 하는지까지 같이 보면 훨씬 오래 남더라고요. 스위치는 샀는데 장치가 안 켜지거나, 링크는 잡히는데 속도가 애매하게 떨어졌던 경험이 있다면 특히 도움이 될 겁니다.

    PoE 스위치 체크리스트를 설명하는 홈랩 전체 구성도

    PoE 스위치에서 AP, 카메라, NAS 관리망, 업링크가 어떻게 연결되는지 한눈에 보여주는 전체 구성 예시입니다.

    1. PoE 스위치 체크리스트의 출발점: PoE 규격 이해

    PoE(Power over Ethernet, 이더넷 전원 공급)는 랜 케이블 한 가닥으로 데이터와 전원을 함께 보내는 방식입니다. 배선이 깔끔해지고, 천장 AP나 벽면 카메라처럼 전원 콘센트가 애매한 위치에 장치를 둘 때 특히 편합니다. 다만 여기서 중요한 점이 하나 있습니다. 모든 PoE가 같은 방식으로 동작하는 건 아닙니다.

    • IEEE 802.3af: 일반적으로 PoE라고 부르는 기본 규격입니다.
    • IEEE 802.3at: 보통 PoE+라고 부르며, 802.3af보다 더 높은 전력을 요구하는 장치에 쓰입니다.
    • IEEE 802.3bt: 그보다 더 높은 전력을 제공하는 확장 규격으로, 장치와 스위치가 모두 지원해야 의미가 있습니다.

    많이 헷갈리는 부분이 바로 여기입니다. 스위치에 PoE라고 적혀 있다고 해서 아무 장치나 바로 연결되는 건 아닙니다. 실제로는 PoE 전원 공급 방식과 장치가 요구하는 규격이 맞아야 합니다. 반대로 일부 장치는 패시브 PoE(Passive PoE, 비표준 고정 전압 방식)를 쓰기도 해서 더 조심해야 하고요. 표준 기반인지, 비표준 방식인지 확인하지 않으면 전원이 아예 들어오지 않거나 장치 쪽 보호 회로 이슈가 생길 수 있습니다.

    2. PoE 스위치 체크리스트의 핵심은 전력 예산입니다

    제가 홈랩 장비를 늘릴 때 제일 먼저 보는 건 포트 수가 아니라 총 전력 예산(Power Budget, 전체 공급 가능 전력)입니다. 8포트 PoE 스위치라고 해서 8개 포트가 동시에 충분한 전력을 낼 수 있다는 뜻은 아니거든요. 이 부분이 생각보다 자주 헷갈립니다.

    전력 예산을 보는 방법

    1. 연결할 장치 목록을 먼저 적습니다.
    2. 각 장치가 요구하는 PoE 규격과 최대 소비 전력을 확인합니다.
    3. 동시 사용 기준으로 합산합니다.
    4. 확장과 순간 부하를 고려해 여유 전력을 남깁니다.

    실제로 써보면 홈랩은 처음 계획보다 장치가 늘어날 가능성이 높습니다. 오늘은 AP 2대만 연결해도 몇 달 뒤에는 카메라나 추가 노드가 붙는 경우가 많더라고요. 그래서 현재 사용량에만 딱 맞춰 사면 금방 답답해집니다. 저는 대체로 계산값보다 20~30% 정도 여유를 두는 편입니다.

    점검 항목 왜 중요한가 제가 보는 기준
    총 PoE 예산 여러 장치 동시 구동 가능 여부 현재 합계보다 20~30% 여유 확보
    포트당 최대 전력 고전력 장치 지원 여부 AP, 카메라, 미니 장치 요구치 확인
    업링크 속도 장치가 늘면 병목 발생 기가비트 이상, 필요 시 멀티기가 확인
    팬 소음 홈랩 환경 체감 품질 서재·거실 설치면 특히 중요
    관리 기능 VLAN, LLDP, 포트 상태 확인 문제 추적이 훨씬 쉬워짐

    PoE 스위치 체크리스트를 문서로 적어두면 실수가 크게 줄어듭니다. 머리로만 계산하면 꼭 하나 빠지더라고요.

    3. 장치 호환성은 규격 이름만 보지 마세요

    PoE 스위치 선택에서 두 번째로 중요한 건 장치 호환성입니다. 여기서는 세 가지를 같이 봐야 합니다.

    • PoE 표준 일치 여부: 802.3af, 802.3at, 802.3bt 중 무엇을 요구하는지
    • 전원 입력 방식: 표준 PoE인지, 어댑터 전용인지, 패시브 PoE인지
    • 데이터 링크 속도: 100Mbps면 충분한지, 1Gbps 이상이 필요한지

    저도 처음엔 전압만 맞으면 되는 줄 알았는데, 실제로는 포트당 공급 가능한 전력이 부족해서 장치가 반복 부팅되는 경우가 있었습니다. 또 어떤 장치는 전원은 들어오는데 협상(auto-negotiation)이 깔끔하지 않아 링크가 100Mbps로만 잡히기도 했고요. 결국 홈랩 구축에서는 스위치 사양표와 장치 사양표를 나란히 놓고 보는 습관이 제일 중요합니다.

    호환성 점검용 간단 표

    장치 유형 확인할 것 놓치기 쉬운 부분
    무선 AP PoE 규격, 포트 속도 무선 성능보다 유선 업링크 병목
    IP 카메라 PoE 지원 여부, 실외 배선 거리와 케이블 품질 영향
    소형 SBC PoE HAT 또는 스플리터 필요 여부 부팅 시 순간 전력
    VoIP 장치 표준 PoE 지원 여부 VLAN 필요성

    4. 네트워크 케이블링은 생각보다 더 중요합니다

    네트워크 케이블링은 그냥 연결만 되면 끝이라고 보기 쉽지만, PoE 환경에서는 더 민감합니다. 오래된 케이블, 직접 압착한 커넥터, 중간에 품질이 불안한 패치 패널이 있으면 문제 추적이 꽤 까다로워집니다. 링크는 살아 있는데 장치가 재부팅되거나 속도가 낮게 잡히는 식으로 애매하게 증상이 나오거든요. 이런 문제가 제일 피곤합니다.

    제가 홈랩에서 기본으로 체크하는 건 아래 정도입니다.

    • Cat5e 이상 케이블 사용 여부
    • 케이블 길이가 과도하게 길지 않은지
    • 피복 손상, 접점 불량, 재압착 흔적 확인
    • 패치 패널이나 키스톤 잭을 포함한 전체 경로 점검
    • 전원선과 과도하게 밀착 배선하지 않았는지 확인

    체감상 가장 빠른 진단 방법은 의외로 단순합니다. 스위치를 의심하기 전에 검증된 짧은 케이블로 먼저 교차 테스트해보는 거예요. 저도 이상 증상이 나오면 제일 먼저 케이블부터 바꿔봅니다. 이게 진짜 시간을 많이 아껴주더라고요.

    PoE 스위치 체크리스트 중 네트워크 케이블링 점검 장면

    패치 패널, 랜 케이블, 천장 AP 라인을 점검하면서 문제 구간을 분리하는 모습을 표현한 이미지입니다.

    5. 실전에서 제가 쓰는 PoE 스위치 체크리스트

    이제부터는 제가 실제로 신규 장비를 붙일 때 점검하는 순서입니다. 복잡해 보여도 한 번 체크리스트로 만들어두면 다음부터는 훨씬 편합니다.

    1단계. 장치 인벤토리 작성

    devices:
      - name: living-room-ap
        type: access-point
        poe_standard: "802.3at"
        uplink_speed: "1G"
        note: "천장 설치 예정"
      - name: entry-camera
        type: ip-camera
        poe_standard: "802.3af"
        uplink_speed: "100M or 1G 확인"
        note: "실외 배선 구간 점검 필요"
      - name: lab-sbc
        type: sbc
        poe_standard: "PoE splitter or HAT 확인"
        uplink_speed: "1G"
        note: "부팅 안정성 확인"
    

    문서화가 사소해 보여도 나중에 장치 추가할 때 큰 도움이 됩니다. 처음엔 귀찮은데, 결국 시간을 아껴주는 쪽은 이 방법이더라고요.

    2단계. 링크 상태와 속도 확인

    ip link show
    ethtool eth0
    

    ethtool은 Linux 환경에서 링크 속도, 듀플렉스, 자동 협상 상태를 확인할 때 유용합니다. 스위치에서 1Gbps로 될 줄 알았는데 실제 서버 NIC(Network Interface Card, 네트워크 인터페이스 카드)는 100Mbps로 잡히는 경우가 종종 있습니다. 인터페이스 이름은 환경마다 eth0가 아니라 enp1s0처럼 다를 수 있다는 점도 같이 확인해두세요.

    3단계. LLDP로 연결 정보 점검

    sudo lldpcli show neighbors
    

    관리형 스위치와 지원 장치 조합이라면 LLDP(Link Layer Discovery Protocol, 링크 계층 장치 탐색 프로토콜)가 꽤 유용합니다. 어느 포트에 무엇이 연결됐는지 추적하기 쉬워지거든요. 다만 이 명령은 보통 lldpd 같은 LLDP 데몬이 설치되고 실행 중이어야 동작합니다. 처음엔 없어도 되겠지 싶었는데, 장치가 5대만 넘어가도 체감 차이가 꽤 큽니다.

    4단계. 실제 통신 테스트

    ping -c 4 192.168.1.10
    iperf3 -c 192.168.1.20
    

    장치에 전원이 들어왔다고 끝은 아닙니다. 데이터 경로가 안정적인지도 같이 봐야 합니다. 특히 AP나 카메라는 전원만 들어오고 네트워크 품질은 애매한 상태가 남는 경우가 있습니다. 참고로 iperf3는 상대편 장치나 서버에서 미리 iperf3 -s로 대기 중이어야 제대로 측정됩니다.

    PoE 스위치 선택 시 확인하는 포트 상태와 장치 호환성 점검 이미지

    포트 업 상태, 속도, 연결 장치 식별 정보를 함께 확인하는 관리형 스위치 점검 화면을 표현한 이미지입니다.

    6. 실전에서 자주 겪는 문제와 해결법

    이 섹션은 문서보다 현장에서 더 자주 만나는 문제를 정리한 부분입니다. 홈랩에서는 사양표보다 증상이 먼저 보일 때가 많거든요.

    문제 1. 장치는 켜지는데 자꾸 재부팅됩니다

    전력 부족이거나 케이블 품질 문제일 가능성이 큽니다. 저는 우선 다른 포트로 바꿔보고, 짧고 검증된 케이블로 교체합니다. 그다음 장치 스펙과 포트당 공급 가능 전력을 다시 대조합니다.

    문제 2. 링크는 잡히는데 속도가 낮습니다

    자동 협상 문제나 배선 품질 이슈일 수 있습니다. 특히 직접 만든 케이블이면 더 의심해볼 만합니다. 생각보다 케이블 교체만으로 해결되는 경우가 많았습니다.

    문제 3. 어떤 장치는 PoE가 아예 안 들어옵니다

    표준 PoE가 아니라 패시브 PoE 기반 장치일 수 있습니다. 이때는 무리해서 연결하지 말고 장치 문서를 다시 확인하는 게 우선입니다. 표준 장비와 비표준 전원 방식을 섞는 건 리스크가 큽니다.

    문제 4. 스위치는 조용할 줄 알았는데 생각보다 시끄럽습니다

    홈랩은 서버실이 아니라 생활 공간에 있는 경우가 많습니다. 그래서 팬 소음과 발열도 꼭 체크해야 합니다. 성능만 보고 들여왔다가 책상 옆에서 상시 팬 소음을 듣게 되면 꽤 괴롭더라고요.

    • 전력 예산 부족: 장치 수가 늘수록 흔합니다.
    • 비표준 PoE 혼용: 사전 문서 확인이 필수입니다.
    • 불량 케이블: 증상이 애매하게 나타나서 더 까다롭습니다.
    • 관리 기능 부재: 원인 추적 시간이 길어집니다.

    7. 검증은 전원과 데이터 둘 다 봐야 끝입니다

    최종 검증 단계에서는 단순히 전원이 들어오는지만 보지 말고, PoE 전원 공급과 데이터 통신이 동시에 안정적인지 확인해야 합니다. 저는 보통 아래 순서로 점검합니다.

    1. 스위치 포트 상태 LED 또는 관리 화면 확인
    2. 장치 부팅 완료 여부 확인
    3. 링크 속도 확인
    4. 핑과 실제 서비스 응답 확인
    5. 부하가 걸릴 때도 안정적인지 재확인

    설치 직후엔 멀쩡해 보여도 몇 시간 뒤 문제가 드러나는 경우가 있습니다. 그래서 가능하면 하루 정도는 로그와 상태를 지켜보는 편입니다. 바로 정리했다가 다음 날 카메라가 오프라인으로 떠 있으면 허탈하거든요.

    PoE 전원 공급이 안정적으로 동작하는 홈랩 구축 결과 이미지

    모든 장치가 온라인 상태로 표시되고 링크 상태가 안정적인 홈랩 모니터링 결과를 보여주는 이미지입니다.

    8. 정리: PoE 스위치 체크리스트에서 꼭 볼 것

    PoE 스위치 체크리스트를 한 줄로 줄이면 이겁니다. 포트 수보다 전력 예산, 스펙표보다 실제 장치 호환성, 그리고 마지막은 케이블링입니다. 저도 여러 번 시행착오를 겪고 나서야 이 순서가 몸에 붙었습니다. 처음엔 스위치만 바꾸면 해결될 줄 알았는데, 실제로는 케이블 하나가 원인이었던 적도 있었고요.

    정리하면 아래 네 가지를 먼저 보시면 됩니다.

    1. 총 전력 예산이 충분한가
    2. 장치 호환성이 표준 기준으로 맞는가
    3. 네트워크 케이블링 품질이 받쳐주는가
    4. 관리 기능과 소음 같은 운영 요소가 괜찮은가

    이 체크만 해도 불필요한 재구매를 많이 줄일 수 있습니다. 다음 글에서는 관리형 스위치에서 VLAN(Virtual LAN, 가상 LAN)과 AP를 묶어 홈랩 네트워크를 분리하는 방법도 다뤄볼 예정입니다. 이전 글에서 다룬 랙 정리나 UPS(Uninterruptible Power Supply, 무정전 전원 장치) 구성 글과 함께 보면 흐름이 더 잘 잡힙니다.

    전력 예산, 규격 호환성, 케이블링, 검증 절차를 한 장으로 정리한 요약형 이미지입니다.

    9. 자주 묻는 질문

    Q1. 홈랩이면 무조건 관리형 스위치가 좋을까요?

    반드시 그런 건 아닙니다. 다만 장치가 늘어나고 문제 추적이 필요해지면 관리형 스위치가 훨씬 편합니다. VLAN, LLDP, 포트 상태 확인 기능이 운영 난도를 꽤 낮춰주거든요.

    Q2. PoE 인젝터(PoE Injector, 개별 전원 주입 장치)로 대체해도 될까요?

    소수 장치라면 가능합니다. 다만 장치 수가 늘어나면 배선과 어댑터 관리가 다시 복잡해집니다. 일정 규모 이상이면 스위치로 정리하는 편이 더 깔끔합니다.

    Q3. 케이블이 오래돼도 일단 링크만 잡히면 괜찮은가요?

    그렇지 않은 경우가 많습니다. 특히 PoE는 전원과 데이터가 함께 지나가서 애매한 불량이 숨어 있을 수 있습니다. 문제 생기면 가장 먼저 교체 테스트를 해보세요.

  • [HomeLabs] MikroTik 홈랩: VLAN과 방화벽 설정 사례

    [HomeLabs] MikroTik 홈랩: VLAN과 방화벽 설정 사례

    MikroTik 홈랩: VLAN과 방화벽 설정 사례

    MikroTik 홈랩을 조금만 키워도 결국 부딪히는 지점이 있습니다. 처음에는 공유기 하나에 스위치 하나만 붙여도 잘 돌아가지만, 장비와 서비스가 늘어나면 “이 장비를 같은 네트워크에 둬도 되나?”라는 고민이 꼭 생기거든요. 저도 관리용 장비, 서버, IoT, 일반 사용자 PC를 한 네트워크에 몰아넣고 쓰다가 브로드캐스트 트래픽이 늘고, 방화벽 규칙은 꼬이고, 문제 생기면 원인 찾기가 꽤 힘들었습니다. 그래서 MikroTik 홈랩 구조를 다시 짜면서 VLAN 설정과 방화벽 규칙을 정리했는데, 이거 진짜 관리가 훨씬 편해지더라고요.

    이번 글은 이론만 훑는 글이 아니라, 제가 실제로 MikroTik 라우터 기준으로 홈랩 네트워크를 분리하고 보안을 다듬었던 흐름을 정리한 사례입니다. 특히 MikroTik 라우터를 이미 쓰고 있거나, 홈 네트워크 보안을 한 단계 올리고 싶은 분이라면 바로 적용 포인트를 잡는 데 도움이 될 겁니다. 예시는 RouterOS 7 계열 기준으로 봐 주세요.

    MikroTik 홈랩 전체 네트워크 아키텍처 다이어그램

    관리망, 서버망, IoT망, 사용자망으로 분리된 MikroTik 홈랩 전체 구조 예시입니다.

    MikroTik 홈랩에서 VLAN이 왜 중요한가

    쉽게 말해 VLAN(Virtual LAN, 가상 랜)은 물리적으로는 같은 스위치와 케이블을 쓰지만 논리적으로는 다른 네트워크처럼 분리하는 방식입니다. 예를 들어 NAS, Proxmox, 관리용 노트북은 신뢰도가 높은 관리망에 두고, 스마트 플러그나 카메라 같은 IoT 장비는 별도 망으로 빼는 식이죠.

    처음엔 좀 번거로워 보여도, 실제로 나눠 놓으면 장점이 꽤 분명합니다.

    • 보안: IoT 장비에 문제가 생겨도 서버망으로 바로 넘어오기 어렵습니다.
    • 운영 편의성: 장비 성격별로 IP 대역이 나뉘니 장애 범위를 빨리 좁힐 수 있습니다.
    • 정책 적용: VLAN별로 방화벽 규칙, DHCP, DNS 정책을 다르게 줄 수 있습니다.
    • 확장성: 나중에 가상화 서버나 무선 AP를 추가해도 구조가 덜 흔들립니다.

    특히 MikroTik 홈랩에서는 RouterOS가 브리지와 VLAN 필터링을 잘 지원해서, 장비 수가 조금만 늘어나도 체감 차이가 큽니다.

    MikroTik 홈랩 네트워크 구성 사례

    이번 사례는 데이터센터급으로 복잡한 구조는 아니고, 집에서 충분히 따라 할 수 있는 수준입니다. 저는 관리 편의성과 보안 사이에서 균형을 맞추는 방향으로 잡았습니다.

    VLAN 용도 예시 대역 접근 정책
    10 관리망 192.168.10.0/24 라우터 관리, 스위치/AP 관리 허용
    20 서버망 192.168.20.0/24 내부 서비스 운영, 필요한 포트만 허용
    30 IoT망 192.168.30.0/24 인터넷 허용, 내부망 접근 제한
    40 사용자망 192.168.40.0/24 일반 PC/모바일, 서버 일부 접근 허용

    포트 역할은 이렇게 잡았습니다.

    • ether1: WAN(Uplink, 외부 회선 연결)
    • ether2: 관리용 Access 포트
    • ether3: 서버용 Access 포트
    • ether4: IoT용 Access 포트
    • ether5: 무선 AP 또는 관리형 스위치로 가는 Trunk(여러 VLAN 태그를 동시에 전달하는 포트)

    여기서 중요한 포인트는 처음부터 모든 포트를 트렁크로 만들지 않는 것입니다. 홈랩에서는 필요한 포트만 트렁크로 두고, 나머지는 명확하게 Access 포트로 두는 편이 훨씬 덜 헷갈립니다.

    MikroTik 홈랩 VLAN 포트 매핑과 트렁크 구성 이미지

    각 이더넷 포트가 어떤 VLAN에 연결되는지 보여주는 포트 매핑 예시입니다.

    MikroTik 홈랩 VLAN 설정 전에 먼저 정리할 개념

    VLAN 설정에서 많이 헷갈리는 게 Tagged와 Untagged입니다. 저도 여기서 한참 헤맸습니다.

    • Tagged: VLAN 번호 태그를 붙여서 전달합니다. 스위치 간 연결이나 AP 업링크에 주로 씁니다.
    • Untagged: 일반 장비가 그대로 연결되어도 되도록 태그 없이 보냅니다. PC나 프린터 같은 단말 포트에 씁니다.
    • PVID: 포트로 들어오는 언태그드 트래픽을 어느 VLAN에 넣을지 정하는 기본 VLAN ID입니다.

    쉽게 말해, 트렁크 포트는 여러 VLAN 트래픽을 라벨 붙여서 보내는 길이고, 액세스 포트는 한 종류만 받는 문이라고 생각하면 이해가 빠릅니다.

    MikroTik 라우터에서 VLAN 설정하기

    이제 실전입니다. 아래 예시는 RouterOS CLI 기준입니다. 인터페이스 이름과 포트 구성은 장비마다 다를 수 있으니 그대로 붙여 넣기 전에 꼭 확인하세요. 특히 VLAN 필터링은 제일 마지막에 켜는 편이 안전합니다.

    1. 브리지를 만들고, 처음에는 VLAN 필터링을 끈 상태로 구성합니다.
    2. 각 포트를 브리지에 넣고 PVID를 지정합니다.
    3. 브리지 위에 VLAN 인터페이스를 만들고 IP를 할당합니다.
    4. 브리지 VLAN 테이블을 작성합니다.
    5. 마지막에 VLAN 필터링을 켭니다.
    /interface bridge
    add name=br-lan vlan-filtering=no comment="HomeLab bridge"
    
    /interface bridge port
    add bridge=br-lan interface=ether2 pvid=10 comment="Mgmt access"
    add bridge=br-lan interface=ether3 pvid=20 comment="Server access"
    add bridge=br-lan interface=ether4 pvid=30 comment="IoT access"
    add bridge=br-lan interface=ether5 comment="Trunk to AP or managed switch"
    
    /interface vlan
    add interface=br-lan name=vlan10-mgmt vlan-id=10
    add interface=br-lan name=vlan20-server vlan-id=20
    add interface=br-lan name=vlan30-iot vlan-id=30
    add interface=br-lan name=vlan40-user vlan-id=40
    
    /ip address
    add address=192.168.10.1/24 interface=vlan10-mgmt
    add address=192.168.20.1/24 interface=vlan20-server
    add address=192.168.30.1/24 interface=vlan30-iot
    add address=192.168.40.1/24 interface=vlan40-user
    
    /interface bridge vlan
    add bridge=br-lan vlan-ids=10 tagged=br-lan,ether5 untagged=ether2
    add bridge=br-lan vlan-ids=20 tagged=br-lan,ether5 untagged=ether3
    add bridge=br-lan vlan-ids=30 tagged=br-lan,ether5 untagged=ether4
    add bridge=br-lan vlan-ids=40 tagged=br-lan,ether5
    
    /interface bridge
    set br-lan vlan-filtering=yes

    여기서 중요한 건 CPU 포트 역할을 하는 브리지 자체를 tagged에 넣는 것입니다. 이걸 빼먹으면 라우터가 해당 VLAN 트래픽을 제대로 처리하지 못해서, 설정은 맞는 것 같은데 IP도 안 붙고 DHCP도 안 되는 상황이 나올 수 있습니다.

    DHCP까지 같이 구성하려면 이렇게 이어가면 됩니다. RouterOS에서는 DHCP 서버가 기본적으로 비활성 상태로 추가되므로, 예시처럼 disabled=no를 넣어 주는 편이 확실합니다.

    /ip pool
    add name=pool-mgmt ranges=192.168.10.100-192.168.10.199
    add name=pool-server ranges=192.168.20.100-192.168.20.199
    add name=pool-iot ranges=192.168.30.100-192.168.30.199
    add name=pool-user ranges=192.168.40.100-192.168.40.199
    
    /ip dhcp-server
    add name=dhcp-mgmt interface=vlan10-mgmt address-pool=pool-mgmt disabled=no
    add name=dhcp-server interface=vlan20-server address-pool=pool-server disabled=no
    add name=dhcp-iot interface=vlan30-iot address-pool=pool-iot disabled=no
    add name=dhcp-user interface=vlan40-user address-pool=pool-user disabled=no
    
    /ip dhcp-server network
    add address=192.168.10.0/24 gateway=192.168.10.1 dns-server=192.168.10.1
    add address=192.168.20.0/24 gateway=192.168.20.1 dns-server=192.168.20.1
    add address=192.168.30.0/24 gateway=192.168.30.1 dns-server=192.168.30.1
    add address=192.168.40.0/24 gateway=192.168.40.1 dns-server=192.168.40.1
    
    /ip dns
    set allow-remote-requests=yes servers=1.1.1.1,8.8.8.8

    여기서 한 가지 더 챙길 부분이 있습니다. DHCP에서 각 VLAN의 게이트웨이 주소를 DNS 서버로 내려줄 거라면, 라우터 자체 DNS 리졸버도 같이 켜줘야 합니다. 이걸 빼먹으면 방화벽은 멀쩡한데 웹 접속만 안 되는 묘한 상황이 생기더라고요.

    MikroTik 라우터 VLAN 설정 작업 장면

    브리지, VLAN 인터페이스, 포트 PVID를 설정하는 실제 구성 흐름을 보여주는 장면입니다.

    MikroTik 홈랩 방화벽 규칙 설계: 막을 건 막고, 열 건 열기

    VLAN만 나눠 놓으면 끝이 아닙니다. 진짜 핵심은 방화벽 규칙입니다. VLAN을 나눠도 라우터가 그 사이를 라우팅해 주기 때문에, 규칙을 안 잡으면 서로 통신이 됩니다. 이 부분이 초보 때 가장 많이 놓치는 포인트였습니다.

    저는 아래 원칙으로 갔습니다.

    • 라우터 자체 관리 접근은 관리망에서만 허용
    • IoT망은 인터넷만 허용하고 내부망 접근은 기본 차단
    • 사용자망은 필요한 서버 서비스만 접근 허용
    • Established/Related 연결은 먼저 허용
    • 마지막에는 명시적 Drop 규칙으로 정리

    그리고 일반적인 가정용 회선이라면 인터넷 연결을 위해 NAT(srcnat/masquerade)도 같이 필요합니다. 이 규칙이 빠지면 VLAN 분리는 됐는데 외부 인터넷이 안 되는 경우가 많습니다.

    /interface list
    add name=WAN
    add name=LAN
    
    /interface list member
    add interface=ether1 list=WAN
    add interface=vlan10-mgmt list=LAN
    add interface=vlan20-server list=LAN
    add interface=vlan30-iot list=LAN
    add interface=vlan40-user list=LAN
    
    /ip firewall address-list
    add list=internal-nets address=10.0.0.0/8
    add list=internal-nets address=172.16.0.0/12
    add list=internal-nets address=192.168.0.0/16
    
    /ip firewall filter
    add chain=input action=accept connection-state=established,related comment="Allow established, related"
    add chain=input action=drop connection-state=invalid comment="Drop invalid"
    add chain=input action=accept protocol=icmp in-interface-list=LAN comment="Allow ICMP from LAN"
    add chain=input action=accept in-interface=vlan10-mgmt src-address=192.168.10.0/24 comment="Allow router management from mgmt VLAN"
    add chain=input action=drop in-interface-list=WAN comment="Drop all input from WAN"
    add chain=input action=drop in-interface-list=LAN comment="Block router access from non-mgmt VLANs"
    
    add chain=forward action=accept connection-state=established,related comment="Allow established, related forward"
    add chain=forward action=drop connection-state=invalid comment="Drop invalid forward"
    add chain=forward action=accept src-address=192.168.10.0/24 comment="Mgmt VLAN full access"
    add chain=forward action=accept src-address=192.168.40.0/24 dst-address=192.168.20.0/24 protocol=tcp dst-port=80,443,22 comment="User VLAN to selected server services"
    add chain=forward action=drop src-address=192.168.30.0/24 dst-address-list=internal-nets comment="Block IoT to internal networks"
    add chain=forward action=accept src-address=192.168.30.0/24 out-interface-list=WAN comment="IoT to internet only"
    add chain=forward action=accept in-interface-list=LAN out-interface-list=WAN comment="Allow LAN to internet"
    add chain=forward action=drop in-interface-list=LAN out-interface-list=LAN comment="Default deny inter-VLAN"
    
    /ip firewall nat
    add chain=srcnat out-interface-list=WAN action=masquerade comment="Home internet NAT"

    여기서 실무적으로 중요한 건 순서입니다. 방화벽 규칙은 위에서 아래로 평가되기 때문에, 허용 규칙보다 Drop을 먼저 올려버리면 열어 둔 줄 알았던 서비스가 전부 막혀 버릴 수 있습니다. 저도 SSH 하나 열겠다고 손봤다가 왜 안 되지 싶어서 한참 들여다본 적이 있습니다.

    추천하는 방화벽 접근 방식

    1. 먼저 Established/Related 허용
    2. 그다음 라우터 자체 보호용 input 규칙 정리
    3. 서비스별 예외 허용 추가
    4. 마지막에 기본 차단(Default Deny)

    이 구조로 가면 나중에 규칙이 늘어나도 덜 망가집니다. MikroTik 홈랩을 오래 굴릴 생각이면 이게 꽤 중요합니다.

    ⚠️ 실제로 겪었던 문제와 해결법

    여기서는 제가 실제로 많이 헷갈렸던 부분만 적어보겠습니다. 문서만 보면 간단해 보이는데, 현장에서는 꼭 한 번씩 걸리더라고요.

    1. VLAN 필터링을 너무 빨리 켠 경우

    증상: 설정하다가 갑자기 접속이 끊깁니다.

    원인: 브리지 VLAN 테이블이 덜 잡힌 상태에서 vlan-filtering=yes를 먼저 켠 경우입니다.

    해결: Safe Mode에서 작업하거나, 콘솔 접속 가능한 상태에서 마지막 단계에 켜는 게 안전합니다.

    2. 트렁크 포트인데 상대 장비가 태그를 못 받는 경우

    증상: AP나 관리형 스위치 뒤쪽 VLAN이 전부 안 뜹니다.

    원인: 반대편 장비 포트가 Access로 되어 있거나 Native VLAN 설정이 다를 때가 많습니다.

    해결: 양쪽 장비에서 Tagged/Untagged 정책을 맞추고, 필요한 경우 관리 VLAN을 따로 지정합니다.

    3. IoT는 막았는데 Chromecast류 장비 검색이 안 되는 경우

    이건 꽤 자연스러운 현상입니다. 멀티캐스트나 브로드캐스트 기반 탐색은 VLAN 경계에서 그대로 끊기는 경우가 많거든요. 그래서 mDNS Repeater나 별도 예외 정책이 필요할 수 있습니다. 저는 보안 우선으로 두고 꼭 필요한 장비만 따로 예외를 넣었습니다.

    4. 방화벽은 맞는데 DNS 때문에 인터넷이 안 되는 경우

    의외로 자주 만납니다. 포워드 규칙은 열었는데 DNS 질의가 막혀 있거나, DHCP에서 DNS를 잘못 내려주면 사용자는 그냥 “인터넷 안 됨”으로 느낍니다. 이럴 땐 핑과 DNS 조회를 분리해서 보는 게 훨씬 빠릅니다.

    5. NAT를 빼먹어서 외부 인터넷이 안 되는 경우

    이것도 많이 나옵니다. 특히 집에서 MikroTik 라우터가 인터넷 경계 장비 역할을 한다면, 일반적으로 masquerade 규칙이 필요합니다. 상위 장비가 각 VLAN 대역으로 되돌아오는 정적 라우트를 알고 있지 않다면 NAT 없이 바로 인터넷이 되긴 어렵습니다.

    MikroTik 홈랩 방화벽 규칙과 트래픽 흐름 시각화

    관리망, 서버망, IoT망 사이에서 허용되는 경로와 차단되는 경로를 한눈에 보여주는 이미지입니다.

    검증 방법과 실제 결과

    설정을 끝냈다면 반드시 검증을 해야 합니다. 저는 보통 아래 순서로 확인합니다.

    1. 각 VLAN 포트에 장비를 하나씩 연결해서 DHCP 주소가 제대로 나오는지 확인
    2. 게이트웨이 핑이 되는지 확인
    3. 인터넷 접근이 필요한 VLAN은 외부 접속 확인
    4. 차단해야 하는 VLAN 간 접근이 실제로 막히는지 확인
    5. 허용해야 하는 서비스 포트만 열리는지 확인
    # 클라이언트 측 점검 예시
    ping 192.168.10.1
    ping 192.168.20.1
    nslookup example.com
    curl http://192.168.20.10
    ssh [email protected]

    제가 이 구조로 옮긴 뒤 가장 크게 느낀 변화는 두 가지였습니다. 첫째, 문제 원인을 찾는 시간이 확실히 줄었습니다. “이 장비는 VLAN 30 IoT망”이라고 딱 정리되어 있으니 문제 범위가 바로 좁혀지더라고요. 둘째, 홈 네트워크 보안이 눈에 띄게 안정됐습니다. 적어도 IoT 장비 하나 이상해졌다고 NAS나 하이퍼바이저까지 바로 노출되는 구조는 아니게 된 거죠.

    물론 단점도 있습니다. VLAN이 늘어나면 규칙 관리가 귀찮아집니다. 다만 초반 설계를 잘해 두면 이 불편은 꽤 줄어듭니다. 주소 대역 규칙, 인터페이스 리스트, Address List를 적극적으로 쓰면 나중에 정말 편합니다.

    정리: MikroTik 라우터로 홈랩을 나눌 때 기억할 것

    • VLAN 분리만으로 끝나지 않습니다. 방화벽 규칙이 같이 가야 진짜 분리입니다.
    • 관리망은 별도로 두는 게 좋습니다. 라우터, 스위치, AP 관리는 한 구역으로 모아 두면 운영이 편합니다.
    • IoT망은 기본 차단이 안전합니다. 필요할 때만 예외를 여는 방식이 덜 위험합니다.
    • 트렁크와 액세스 개념을 명확히 구분해야 합니다. 여기서 대부분 꼬입니다.
    • 인터넷 연결 검증에는 DNS와 NAT까지 같이 봐야 합니다. 이 둘이 빠지면 원인 파악이 더 어려워집니다.

    혹시 지금 MikroTik 홈랩을 운영 중인데 네트워크가 점점 복잡해지고 있다면, 가장 먼저 VLAN 2~3개만 나누는 것부터 시작해 보세요. 한 번 구조가 잡히면 이후에 무선 AP, Proxmox, NAS, 리버스 프록시 같은 요소를 붙일 때 훨씬 편합니다. 다음 글에서는 MikroTik 라우터와 무선 AP를 연동해서 SSID별 VLAN을 태우는 방법도 다뤄볼 예정입니다. 이전 글의 홈랩 IP 설계 원칙 글과 함께 보면 흐름이 더 잘 잡힐 겁니다.

    MikroTik 홈랩 VLAN 분리 전후 비교 인포그래픽

    VLAN과 방화벽 적용 전후의 차이를 요약한 비교 인포그래픽입니다.

    자주 묻는 질문

    Q1. 집에서 VLAN까지 꼭 해야 하나요?

    장비가 5~6대 이하이고 성격이 비슷하면 당장은 아닐 수도 있습니다. 하지만 서버, NAS, CCTV, IoT, 재택근무 PC가 섞이기 시작하면 분리해 두는 게 확실히 편합니다.

    Q2. MikroTik 라우터가 초보자에게 너무 어렵지 않나요?

    솔직히 쉽지는 않습니다. 저도 처음엔 메뉴 구조와 용어 때문에 꽤 헷갈렸습니다. 그래도 한 번 브리지, VLAN, 방화벽 흐름을 이해하면 아주 세밀하게 제어할 수 있다는 장점이 큽니다.

    Q3. 방화벽 규칙은 얼마나 세분화해야 하나요?

    처음에는 너무 잘게 나누지 않는 편이 낫습니다. 관리망 전체 허용, IoT망 인터넷만 허용, 사용자망에서 서버 특정 포트 허용 정도로 시작한 뒤 점진적으로 다듬는 방식이 현실적입니다.

  • [HomeLabs] 홈랩 미니PC, NUC vs ASUS PN vs GMKtec 3년 총소유비용 분석

    [HomeLabs] 홈랩 미니PC, NUC vs ASUS PN vs GMKtec 3년 총소유비용 분석

    [홈랩] 홈랩 미니PC 비용, NUC vs ASUS PN vs GMKtec 3년 총소유비용 분석

    홈랩을 오래 굴려보신 분들은 아시겠지만, 장비를 살 때 제일 무서운 건 초기 구매가만 보고 판단하는 겁니다. 저도 처음엔 작은 미니PC 하나쯤이야 싶어서 덜컥 들였었는데, 24시간 켜두는 홈서버(Home Server, 집에서 상시 운영하는 개인 서버) 특성상 나중에 전기요금이랑 업그레이드 비용이 은근히 쌓이더라고요. 그래서 오늘은 홈랩 미니PC 비용을 좀 더 현실적으로 보려고 합니다. Intel NUC, ASUS PN, GMKtec 같은 미니PC 계열을 놓고, 3년 총소유비용(TCO, Total Cost of Ownership) 관점에서 어떻게 비교하면 좋은지 정리해보겠습니다.

    중요한 점부터 말씀드리면, 이 글은 특정 모델의 실시간 가격표를 들고 와서 승부 보는 글은 아닙니다. 그런 숫자는 시기마다 너무 많이 바뀌거든요. 대신 초기 구매비 + 메모리/스토리지 확장비 + 전력 소비 + 장애 대응 시간까지 같이 보는 방식으로 접근합니다. 실제로 써보니까, 홈랩에서는 이 방식이 제일 덜 후회하더라고요.

    홈랩 미니PC 3종과 전력비용 흐름을 보여주는 개요 다이어그램

    NUC, ASUS PN, GMKtec 계열 미니PC와 전기요금, 스토리지, 운영 시간을 함께 보여주는 홈랩 비용 개요 이미지입니다.

    왜 홈랩 미니PC 비용은 구매가만 보면 안 되나

    쉽게 말해 미니PC는 작아서 싸 보이지만, 오래 돌릴수록 구조적인 차이가 드러납니다. 예를 들어 CPU 세대 차이, 유휴전력(idle power, 대기 상태 전력), 팬 소음, 발열, NVMe SSD(엔브이미 SSD, 고속 저장장치) 슬롯 수, 메모리 확장성 같은 부분이요. 처음엔 이게 뭔가 싶었는데, 홈랩 장비는 결국 한 번 사서 오래 묵히는 경우가 많아서 여기서 체감 차이가 크게 납니다.

    제가 직접 해보니 비용은 대략 아래 다섯 항목으로 나뉘더군요.

    • 초기 구매비: 본체 가격, 어댑터 포함 여부, 운영체제 포함 여부
    • 확장 비용: RAM(메모리), SSD, 추가 NIC(Network Interface Card, 네트워크 인터페이스) 필요 여부
    • 전력 소비: 24시간 상시 구동 시 누적 전기요금
    • 운영 비용: 팬 청소, 발열 관리, 장애 대응 시간
    • 재활용 가치: 3년 뒤 다른 용도로 돌리기 쉬운지

    여기서 중요한 포인트! 홈서버로 Proxmox(프록스목스, 가상화 플랫폼), Docker(도커, 컨테이너 실행 환경), Kubernetes(쿠버네티스, 컨테이너 오케스트레이션) 같은 걸 올릴 계획이면, 단순히 싸게 사는 것보다 확장성과 안정성이 더 큰 비용 절감으로 이어질 수 있습니다.

    Intel NUC, ASUS PN, GMKtec를 어떤 기준으로 봐야 하나

    브랜드별로 딱 잘라서 누가 무조건 낫다고 말하긴 어렵습니다. 다만 홈랩 기준으로는 성격 차이가 좀 있습니다. 저도 처음엔 스펙표만 보고 골랐었는데, 실제로 운영해보니까 체감 포인트가 다르더라고요.

    구분 Intel NUC ASUS PN GMKtec
    포지션 검증된 레퍼런스 성격 균형형 가성비 지향
    홈랩 적합성 안정성 중시 구성에 유리 사무/서버 겸용에 무난 예산 제한 있는 입문자에게 매력적
    확장성 체크포인트 세대별 차이 큼 포트 구성 확인 필요 모델별 편차 확인 필수
    주의할 점 중고/리퍼 비중 높을 수 있음 세부 SKU 확인 필요 발열/소음/펌웨어 후기 체크

    Intel NUC는 오래 홈랩 하신 분들한테 익숙한 이름입니다. 자료도 많고, 케이스 개조나 가이드도 잘 쌓여 있어서 문제 생겼을 때 검색이 잘 되는 편이죠. ASUS PN은 무난하게 잘 만든 사무용 미니PC 느낌인데, 홈서버로도 충분히 쓸 만한 경우가 많습니다. GMKtec은 예산을 줄이려는 분들이 많이 보게 되는 쪽인데, 대신 모델별 편차를 더 꼼꼼하게 봐야 합니다.

    즉, 이 비교의 핵심은 브랜드 전쟁이 아니라 내 홈랩 워크로드에 맞는 비용 구조를 찾는 겁니다.

    3년 총소유비용 계산식, 어렵지 않습니다

    총소유비용(TCO)은 말만 거창하지 계산은 단순합니다. 저는 보통 아래 식으로 잡습니다.

    3년 총소유비용 = 초기 구매비 + 업그레이드 비용 + 3년 전기요금 + 유지보수에 들어간 체감 비용

    여기서 유지보수에 들어간 체감 비용은 정확히 숫자로 박기 어렵습니다. 그래서 실무적으로는 아래처럼 두 단계로 나눠 보시면 편합니다.

    1. 확정 비용: 본체, RAM, SSD, 전기요금
    2. 비확정 비용: 장애 대응 시간, 발열로 인한 스트레스, 재설치 빈도

    사실 홈랩은 취미이기도 해서 시간 비용을 100% 돈으로 환산하긴 어렵거든요. 근데 삽질이 너무 잦으면 결국 장비를 안 켜게 됩니다. 이게 제일 비싼 비용이더라고요 ㅎㅎ

    전기요금 계산 예시

    평균 소비전력을 기준으로 계산하면 됩니다.

    # 평균 소비전력(W), 사용시간(h), 전기요금 단가(원/kWh)를 넣어 계산
    AVG_WATT=15
    HOURS_PER_DAY=24
    DAYS=1095
    PRICE_PER_KWH=150
    
    echo "scale=2; ($AVG_WATT / 1000) * ($HOURS_PER_DAY * $DAYS) * $PRICE_PER_KWH" | bc

    위 방식은 아주 단순한 계산입니다. 실제로는 유휴 상태와 부하 상태가 섞이기 때문에, 가능하면 스마트 플러그(smart plug, 전력 측정 가능한 콘센트)로 1주일 정도 측정해 평균값을 잡는 게 낫습니다.

    실전 구현: 홈랩 미니PC 비용 계산 템플릿 만들기

    여기서는 제가 실제로 자주 쓰는 방식대로, 전력 로그를 모으고 3년 TCO를 계산하는 간단한 템플릿을 보여드릴게요. 홈랩 미니PC 비용 비교는 감으로 하면 꼭 후회합니다. 숫자를 남겨야 합니다.

    1. 후보 장비 3개를 정합니다.
    2. 각 장비의 예상 초기 비용을 적습니다.
    3. RAM/SSD 업그레이드 비용을 따로 분리합니다.
    4. 평균 전력 소비를 측정하거나 보수적으로 추정합니다.
    5. 3년 기준으로 같은 공식에 넣어 비교합니다.
    devices = [
    {
    "name": "Intel NUC\