Skip to content

Router:CreateRouter

무엇이든 라우터로 만드는 방법

About

  • 일반 컴퓨터나 미니 PC를 활용해 완전한 라우터를 구성하는 절차를 단계별로 정리
  • Debian 또는 Alpine Linux 환경에서 hostapd, dnsmasq, bridge-utils 등 최소 패키지로 유·무선 네트워크를 구성
  • 이더넷 인터페이스 2개만 있으면 데스크탑, 노트북, SBC 등 어떤 장비도 라우터로 전환 가능
  • 방화벽(nftables), DHCP/DNS 서비스, IP 포워딩 설정을 통해 상용 라우터 수준의 기능 구현
  • 폐기 하드웨어와 오픈소스만으로 안정적이고 유연한 네트워크 인프라를 구축할 수 있음

어떤 기기든 라우터로 만드는 방법

  • 미국 정부의 소비자용 라우터 수입 금지 조치 이후, 기존 하드웨어를 활용해 직접 라우터를 구성하는 방법을 소개
  • Linux 기반 미니 PC를 이용해 수년간 안정적으로 라우터를 운용한 경험을 바탕으로, 필요한 구성과 설정 절차를 단계별로 정리
  • 라우터는 본질적으로 일반 컴퓨터와 동일한 구조이므로, 데스크탑·노트북·SBC 등 다양한 장비로 구현 가능
  • Debian 또는 Alpine Linux 환경에서 hostapd, dnsmasq, bridge-utils 등 최소 패키지로 구성
  • 목적은 정책 대응이 아니라, 기존 하드웨어의 재활용과 네트워크 이해도 향상에 있음

하드웨어 선택

  • 패시브 쿨링 미니 PC가 이상적이지만, 이더넷 인터페이스 2개만 있으면 어떤 장비도 사용 가능
    • USB-Ethernet 동글로 보완 가능하며, 신뢰성은 다소 떨어지지만 충분히 동작
  • 예시로 Celeron 3205U 듀얼코어(1.5GHz) 장비는 유선 820~850Mbps, 무선 약 300Mbps 처리 가능
  • 과거에는 ThinkPad T60, ExpressCard-PCIe 브리지, Cisco 2960 스위치, D-Link 라우터(AP 전용) 등 폐기 부품으로 구성
    • 외형은 조잡하지만 완전한 라우터로 동작

네트워크 구성

  • 인터페이스 구성
    • eth0: WAN
    • eth1: LAN (유선)
    • wlan0: LAN (무선)
  • 유·무선 LAN은 브리지(bridge) 로 묶어 동일 네트워크로 동작
  • 추가 LAN 포트가 필요하면 USB-Ethernet 동글을 추가해 브리지에 연결 가능
  • 운영체제는 Debian Linux, 필수 구성 요소는 다음과 같음
    • hostapd: Wi-Fi 네트워크 생성
    • dnsmasq: DNS 및 DHCP 서비스
    • bridge-utils: 포트 브리징

설치 및 초기 설정

  • BIOS/UEFI 설정
    • PXE 네트워크 부팅 비활성화
    • USB/PCI 전원 관리 비활성화
    • “AC 전원 복구 후 자동 부팅” 옵션 활성화
    • 디스플레이 미연결 시 부팅 문제 해결용 HDMI 더미 동글 사용
  • 일부 하드웨어는 non-free-firmware 저장소 활성화 필요
  • 무선 칩셋별 펌웨어 설치
    • Intel: firmware-iwlwifi
    • Realtek: firmware-ath9k-htc
    • 구형 Atheros: firmware-atheros

필수 패키지 설치

다음 명령으로 주요 유틸리티 설치:

sudo apt install bridge-utils hostapd dnsmasq

전체 시스템 패키지는 약 250개 수준

네트워크 인터페이스 이름 고정

최신 Linux는 enp0s31f6 형태의 이름을 사용하지만, 전통적 ethX 형식으로 고정 가능

/etc/systemd/network/10-persistent-ethX.link 파일 생성

[Match]
MACAddress=AA:BB:CC:DD:00:11

[Link]
Name=ethX

무선 네트워크 생성

USB Wi-Fi 동글을 액세스 포인트(AP) 로 설정

/etc/hostapd/hostapd.conf 예시:

interface=wlan0
bridge=br0
hw_mode=g
channel=11
ssid=My Cool and Creative Wi-Fi Name
wpa_passphrase=mysecurepassword

hostapd 서비스 활성화:

sudo systemctl unmask hostapd
sudo systemctl enable --now hostapd

인터페이스 설정

/etc/network/interfaces 구성

allow-hotplug eth0
allow-hotplug eth1
auto wlan0
auto br0
iface eth0 inet dhcp
iface br0 inet static
bridge_ports eth1 wlan0
address 192.168.1.1/24

재부팅 후 brctl show br0 명령으로 브리지 상태 확인

IP 포워딩 활성화

/etc/sysctl.d/10-forward.conf 파일에 추가

net.ipv4.ip_forward=1

적용:

sudo systemctl restart systemd-sysctl.service

방화벽 및 NAT 설정

nftables 기반 구성(/etc/nftables.conf)

  • 외부 트래픽 차단
  • 내부 DNS, DHCP, SSH 허용
  • NAT 수행

서비스 활성화:

sudo systemctl enable nftables.service

DHCP 및 DNS 설정

dnsmasq 사용(/etc/dnsmasq.conf)

interface=br0
dhcp-range=192.168.1.50,192.168.1.250,255.255.255.0,6h
dhcp-option=option:router,192.168.1.1
dhcp-option=option:dns-server,192.168.1.1
cache-size=10000

서비스 활성화

sudo systemctl enable dnsmasq

시리얼 포트 관리

장치에 시리얼 콘솔 포트가 있다면 모니터 없이 관리 가능

/etc/default/grub 수정

GRUB_CMDLINE_LINUX='console=tty0 console=ttyS0,115200n8'
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"

systemctl enable [email protected]sudo update-grub 실행

동작 확인

  • 재부팅 후 sudo nft list ruleset 으로 방화벽 상태 점검
  • sudo nft -c -f /etc/nftables.conf 로 설정 검증
  • sudo systemctl reload nftables.service 로 무중단 규칙 갱신 가능
  • DHCP 로그 확인
sudo less /var/lib/misc/dnsmasq.leases
sudo journalctl -eu dnsmasq.service

추가 기능

  • 로그 기록 및 트래픽 분석, VLAN 분리, IPv6 지원, VPN 터널링, 동적 라우팅(BGP, IGP) 등 확장 가능
  • Prometheus 기반 모니터링, DMZ 포트 포워딩, 침입 탐지 및 차단 기능 추가 가능
  • 단, 라우터 자체에 과도한 소프트웨어 설치는 피하고, DMZ나 VLAN으로 트래픽을 분리하는 것이 바람직

결론

  • 무료 소프트웨어와 폐기 하드웨어만으로도 완전한 라우터 구축 가능
  • 라우터는 결국 일반 컴퓨터에 불과하며, 누구나 직접 제작 가능
  • 불필요한 장비를 재활용해 안정적이고 유연한 네트워크 인프라를 구축할 수 있음

See also

Favorite site

References


  1. How_to_turn_anything_into_a_router.pdf