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 동글로 보완 가능하며, 신뢰성은 다소 떨어지지만 충분히 동작
- 외형은 조잡하지만 완전한 라우터로 동작
네트워크 구성
- 인터페이스 구성
- eth0: WAN
- eth1: LAN (유선)
- wlan0: LAN (무선)
- hostapd: Wi-Fi 네트워크 생성
- dnsmasq: DNS 및 DHCP 서비스
- bridge-utils: 포트 브리징
설치 및 초기 설정
- BIOS/UEFI 설정
- PXE 네트워크 부팅 비활성화
- USB/PCI 전원 관리 비활성화
- “AC 전원 복구 후 자동 부팅” 옵션 활성화
- 디스플레이 미연결 시 부팅 문제 해결용 HDMI 더미 동글 사용
- Intel: firmware-iwlwifi
- Realtek: firmware-ath9k-htc
- 구형 Atheros: firmware-atheros
필수 패키지 설치
다음 명령으로 주요 유틸리티 설치:
전체 시스템 패키지는 약 250개 수준
네트워크 인터페이스 이름 고정
최신 Linux는 enp0s31f6 형태의 이름을 사용하지만, 전통적 ethX 형식으로 고정 가능
/etc/systemd/network/10-persistent-ethX.link 파일 생성
무선 네트워크 생성
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 서비스 활성화:
인터페이스 설정
/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 파일에 추가
적용:
방화벽 및 NAT 설정
nftables 기반 구성(/etc/nftables.conf)
- 외부 트래픽 차단
- 내부 DNS, DHCP, SSH 허용
- NAT 수행
서비스 활성화:
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
서비스 활성화
시리얼 포트 관리
장치에 시리얼 콘솔 포트가 있다면 모니터 없이 관리 가능
/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 로그 확인
추가 기능
- 로그 기록 및 트래픽 분석, VLAN 분리, IPv6 지원, VPN 터널링, 동적 라우팅(BGP, IGP) 등 확장 가능
- Prometheus 기반 모니터링, DMZ 포트 포워딩, 침입 탐지 및 차단 기능 추가 가능
- 단, 라우터 자체에 과도한 소프트웨어 설치는 피하고, DMZ나 VLAN으로 트래픽을 분리하는 것이 바람직
결론
- 무료 소프트웨어와 폐기 하드웨어만으로도 완전한 라우터 구축 가능
- 라우터는 결국 일반 컴퓨터에 불과하며, 누구나 직접 제작 가능
- 불필요한 장비를 재활용해 안정적이고 유연한 네트워크 인프라를 구축할 수 있음
See also
Favorite site
- 무엇이든 라우터로 만드는 방법 | GeekNews
- How to turn anything into a router | Hacker News
- How to turn anything into a router 1
References
-
How_to_turn_anything_into_a_router.pdf ↩