무엇이든 라우터로 만드는 방법
2 days ago
2
-
일반 컴퓨터나 미니 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으로 트래픽을 분리하는 것이 바람직
결론
-
무료 소프트웨어와 폐기 하드웨어만으로도 완전한 라우터 구축 가능
- 라우터는 결국 일반 컴퓨터에 불과하며, 누구나 직접 제작 가능
- 불필요한 장비를 재활용해 안정적이고 유연한 네트워크 인프라를 구축할 수 있음
-
Homepage
-
개발자
- 무엇이든 라우터로 만드는 방법