포스트

홈 네트워크 구성하기

홈 네트워크 구성하기

집 이사 후 가장 먼저 할 일은 네트워크 구성이다. 얼마 전 당근에서 시스코 스위치를 저렴하게 구할 수 있어서, 예전부터 꼭 해야겠다고 생각하던 네트워크 사용 목적에 따라 VLAN으로 분리하여 구축해야겠다고 생각했다. 네트워크 설계부터 구성까지의 과정을 적어보려 한다.

이전에는 Asus 공유기 3대를 메인-서브 구조로 구성해 메시 네트워크로 편의성 위주로 사용했으나, 이번에는 L2/L3 스위치를 도입해 보안과 성능을 중시하는 네트워크로 재구성했다. 무선 쪽에서는 스마트홈용 IoT 장비와 개인 기기가 같은 SSID와 네트워크를 공유하다 보니, 각 기기 간 접근 제어나 네트워크 분리가 어려워 보안 측면에서 한계가 있었다. 이를 개선하기 위해, VLAN 별로 SSID를 분리해 각 네트워크의 접근 권한을 명확히 제어할 수 있는 AP환경을 구축했다.


구성 목표

VLAN 분리

  • 보안 강화: 네트워크를 논리적으로 분리해 접근 제어가 용이하고, 데이터 보호가 가능
  • 트래픽 감소 및 성능 향상: 브로드캐스트 도메인을 축소해 불필요한 트래픽을 줄이고 네트워크 성능을 높임
  • 유연성: 물리적 위치와 상관없이 논리적으로 그룹을 만들 수 있기 때문에 네트워크 구조 변경이 용이함
  • 관리 편의성: 설정만으로 그룹 이동, 정책 적용 등 관리 작업을 간소화할 수 있음

무선 SSID 분리

  • 네트워크 분리: SSID별로 VLAN을 매핑해 IoT, 게스트, 개인 기기 등 목적별로 네트워크를 분리
  • 보안 정책 차등 적용: 각 SSID에 별도의 보안 정책(암호, 인증, 방화벽 등)을 적용해 보안성을 높임
  • 리소스 및 접근 제어: SSID별로 네트워크 자원 접근 권한을 구분해 불필요한 접근을 차단할 수 있음
  • 네트워크 관리 용이: 트래픽 모니터링, 문제 진단, 네트워크 확장 등의 관리가 용이

네트워크 구성

목적 별 분류 및 설계

VLAN용도설명
10장비 관리 대역네트워크 장비 관리용, pvid
20개인장비 무선 대역WiFi6, 개인 디바이스 전용
30IoT 전용 무선 대역2.4GHz 전용
40게스트 무선 대역WiFi6, 내부망 통신 블락
50가상 IP 대역VM 및 K8S 서비스용

Vlan10에 장비의 Real IP를 할당하여 관리 대역으로서의 역할 및 집 전체 LAN 포트가 Vlan10을 기본으로 사용하도록 하였다. VM쿠버네티스(LoadBalancer, Ingress)에서 사용할 Virtual IP 전용 VLAN을 나누고 일부 IP를 제외하고 DHCP를 적용하였다.

Vlan20 - 40을 무선랜 구간으로 정하고 IoT 대역과 게스트 대역에 방화벽을 적용하여 IoT 대역에서는 같은 VLAN간 통신은 가능하지만 나머지는 통신이 불가하도록 하고, 게스트 대역에서는 홈 네트워크 내부로의 통신을 전부 블락하여 외부 인터넷만 가능하도록 했다.

네트워크 장비 및 구성

네트워크 장비

구분장비명/모델명비고
라우터Mikrotik RB4011iGS+RML3
스위치Cisco WS-2960G-24TC-LL2
APAruba AP-25WLAN
기타SKB H614GWAN Bridge
기타단자함 Hub단자함 POE 라우터

네트워크 구성

Desktop View 단자함 내 배선도

  1. 통신사 모뎀 설정
    • 메인 SK 회선을 SKB 모뎀 WAN포트로 인입
    • SKB 모델을 브릿지 모드로 전환
    • SKB 모뎀 LAN포트에 거실로 가는 케이블 인입(B2)
  2. 메인 라우터 설정
    • 거실 벽 포트(B2)에서 메인 라우터 WAN포트로 인입
    • 메인라우터의 인터페이스 중 하나에 Vlan10 할당 및 태깅 비활성화
    • 설정한 인터페이스에서 벽 포트(W2)로 인입

Desktop View 단자함 네트워크 허브

  1. 단자함 Hub 설정
    • W2 케이블을 IN 포트로 인입
    • 네트워크 허브(POE 라우터)를 브릿지 모드로 전환; 일반적인 아파트의 단자함 허브는 말 그대로 네트워크 Hub 기능만 있기 때문에 별도의 설정이 필요하지 않다.
    • 각 방으로 가는 선 인입

아파트 마다 단자함 허브의 스펙이 다르기 때문에 확인 필요

graph TD
  WAN[WAN] --> Hub1[SKB H614G]
  Hub1 --> Router[Mikrotik RB4011]
  Router --> Hub2[Hub]
  Router --> Switch[Cisco 2960G]
  Router --> AP[Aruba AP_25]
  Hub2 --> Desktop[DeskTop]

과정이 복잡해 보이지만 최종 구성도를 보면 단순하다. 일반적으로는 통신사 모뎀을 통해 바로 네트워크 허브로 각 방에서 인터넷이 가능하도록 연결하기 때문에 훨씬 단순하지만, 내 장비를 통해 홈 네트워크를 관리하기 위해 이런 귀찮음 정도는 감수할 수 밖에 없다..

주요 장비 별 설정 방법

Mikrotik RB4011iGS+RM 라우터 설정

라우터 초기화 후, 첫 접속 시 default configuration을 제거하고 진행

라우터를 처음 설정한다면 가장 먼저 할 일은 관리자 계정 설정이다. mikrotik 스위치들은 기본적으로 admin 유저를 활성화하고 password는 제품박스 안에 스티커의 형식으로 동봉해주는 방식이다. admin은 너무 흔한 이름이기에 새로운 유저를 생성하고 해당 유저에게 admin 권한을 부여한 뒤 기존 admin 계정은 비활성화(혹은 삭제) 하도록 하자.

WAN 설정

  1. ether1 포트에 dhcp-client 설정하여 공인 IP 받아오기
1
/ip dhcp-client add interface=ether1 disabled=no
  1. masquerade 설정
1
/ip firewall nat add chain=srcnat out-interface=ether1 action=masquerade

인터페이스 설정

VLAN 설정을 하려면 먼저 브릿지를 생성해야 한다. 브릿지 생성 후 포트 설정을 해준다.

1
2
3
4
5
6
7
/interface bridge add name=bridge vlan-filtering=yes
/interface bridge port
add bridge=bridge interface=ether2 comment="LAN" pvid=10
add bridge=bridge interface=ether8 comment="Aruba AP-25" pvid=10
# 링크 어그리게이션(본딩, 이더채널 등으로 불리기도 한다) 설정을 위한 포트
add bridge=bridge interface=ether9 comment="Cisco 2960G" pvid=10
add bridge=bridge interface=ether10 comment="Cisco 2960G" pvid=10

PVID(Port VLAN ID)란? 스위치 포트에 들어오는 태그가 없는(Untagged) 프레임이 어떤 VLAN에 속하는지 결정하는 값으로 시스코 기준으로는 Native VLAN을 설정하는 것과 동일하다.

VLAN 인터페이스를 생성한다.

1
2
3
4
5
6
/interface vlan
add name=vlan10 vlan-id=10 interface=bridge
add name=vlan20 vlan-id=20 interface=bridge
add name=vlan30 vlan-id=30 interface=bridge
add name=vlan40 vlan-id=40 interface=bridge
add name=vlan50 vlan-id=50 interface=bridge

VLAN Tag/Untag 설정

1
2
3
4
5
6
/interface bridge vlan
add bridge=bridge vlan-ids=10 tagged=bridge,ether9,ether10 untagged=ether2,ether8
add bridge=bridge vlan-ids=20 tagged=bridge,ether8,ether9,ether10
add bridge=bridge vlan-ids=30 tagged=bridge,ether8,ether9,ether10
add bridge=bridge vlan-ids=40 tagged=bridge,ether8,ether9,ether10
add bridge=bridge vlan-ids=50 tagged=bridge,ether9,ether10

ether8,ether9는 Trunk 포트이기 때문에 모든 VLAN에 대해 tagged 설정을 해준다.

ether9,ether10 본딩(LACP, EtherChannel) 설정

1
2
/interface bonding 
add name=bond1 mode=802.3ad slaves=ether9,ether10 transmit-hash-policy=layer-2

DHCP 서버 설정

DHCP 서버 설정을 하기 위해 IP풀을 먼저 생성해준다.

1
2
3
4
5
6
/ip pool
add name=pool_vlan10 ranges=192.168.10.100-200 # 나머지는 수동 IP 및 미사용 영역
add name=pool_vlan20 ranges=192.168.20.200-250 # WiFi6 personal
add name=pool_vlan30 ranges=192.168.30.51-200 # 2.4GHz only for IoT
add name=pool_vlan40 ranges=192.168.40.100-200 # WiFi6 for guests
add name=pool_vlan50 ranges=192.168.50.50-250 # Virtual IPs

DHCP 서버 및 네트워크 설정:

1
2
3
4
5
6
7
8
9
10
11
12
13
/ip dhcp-server
add address-pool=pool_vlan10 interface=vlan10 name=dhcp_vlan10
add address-pool=pool_vlan20 interface=vlan20 name=dhcp_vlan20
add address-pool=pool_vlan30 interface=vlan30 name=dhcp_vlan30
add address-pool=pool_vlan40 interface=vlan40 name=dhcp_vlan40
add address-pool=pool_vlan50 interface=vlan50 name=dhcp_vlan50

/ip dhcp-server network
add address=192.168.10.0/24 gateway=192.168.10.1 dns-server=192.168.10.1 comment="management IPs"
add address=192.168.20.0/24 gateway=192.168.20.1 dns-server=192.168.20.1 comment="wlan"
add address=192.168.30.0/24 gateway=192.168.30.1 dns-server=192.168.30.1 comment="wlan for IoT"
add address=192.168.40.0/24 gateway=192.168.40.1 dns-server=192.168.40.1 comment="wlan for guest"
add address=192.168.50.0/24 gateway=192.168.50.1 dns-server=192.168.50.1 comment="virtual IPs"

방화벽 설정

Mikrotik의 RouterOS에는 로그인 실패 횟수를 기반으로 IP를 차단하는 기능이 없기 때문에 기본적으로는 화이트리스트 방식으로 설정한다. 추후 rsyslog와 fail2ban을 연동해 블랙리스트 업데이트를 자동화할 예정이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# 기본 서비스 비활성화
/ip service
disable telnet
disable ftp
disable www # 웹UI를 통한 설정을 사용한다면 enable 상태로 둔다.
disable www-ssl
disable api
disable api-ssl

# established/related 허용 --> 재연결 시 방화벽 필터를 거치지 않아 라우터의 부담을 줄인다
add chain=input connection-state=established,related action=accept
add chain=forward connection-state=established,related action=accept

# DNS, DHCP 트래픽 허용
add chain=input protocol=udp dst-port=53 action=accept
add chain=input protocol=udp dst-port=67 action=accept
add chain=input protocol=udp dst-port=68 action=accept

# 화이트리스트 패킷 허용
/ip firewall address-list
add address=192.168.10.0/24 list=whitelist
add address=192.168.20.0/24 list=whitelist
add address=192.168.50.0/24 list=whitelist

/ip firewall filter
add chain=input src-address-list=whitelist action=accept
add chain=forward src-address-list=whitelist action=accept

# VLAN30 -> 내부만 허용
add chain=forward src-address=192.168.30.0/24 dst-address=192.168.30.0/24 action=accept
add chain=forward src-address=192.168.30.0/24 dst-address=192.168.0.0/16 action=drop
# VLAN40 -> 인터넷만 허용
add chain=forward src-address=192.168.40.0/24 dst-address=192.168.0.0/16 action=drop

# 블랙리스트 패킷 드랍 -> 추후 블랙리스트 업데이트 자동화 시 사용
/ip firewall address-list
add address=<블락할 IP> list=blacklist
... # 블락할 주소 추가

/ip firewall filter
add chain=input src-address-list=blacklist action=drop

# 허용된 규칙 이외의 트래픽 비허용
add chain=input action=drop log=yes log-prefix="[Firewall/Drop]" # 적용 시 주의 필요. 로깅 활성화하여 drop된 패킷 확인

Cisco 2960G 스위치 설정

기본 설정

  • 시스템 및 사용자 보안, 날짜/시간, 불필요한 서비스 비활성화
  • VLAN1 비활성화, SSH 및 콘솔 접근 보안 설정
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
service timestamp debug datetime localtime
service timestamp log datetime localtime
service password-encryption
clock timezone KST 9

hostname <HOSTNAME>

! VLAN1 비활성화
interface Vlan1
shutdown
exit

enable secret <ENABLE_PASSWORD>
username <USERNAME> privilege 15 secret <USER_PASSWORD>

ip domain name DOMAIN
crypto key generate rsa modulus 2048
ip ssh version 2
no ip domain name DOMAIN
no ip nomain-lookup
no ip http server
no ip http secure-server
no ip finger
no service tcp-small-servers
no service udp-small-servers
logging buffered 40960

line con 0
password <CONSOLE_PASSWORD>
login
logging synchronous
exit

line vty 0 15
password <VTY_PASSWORD>
transport input ssh
login local
exit

인터페이스 설정

1
2
3
4
5
6
vlan 10,20,30,40,50

interface Vlan10
ip address 192.168.10.2 255.255.255.0
no shutdown
exit

VLAN 트렁크/액세스 포트 설정

1
2
3
4
5
6
7
8
interface range G0/23-24
switchport mode trunk
channel-group 1 mode active
exit

interface Port-channel1
switchport mode trunk
exit

STP, 포트 보안 등 추가 설정

1
2
3
4
5
6
7
8
9
10
11
spanning-tree mode rapid-pvst
spanning-tree portfast default
spanning-tree bpduguard enable

! 포트보안 설정 예시; 적용 시 주의
interface range G0/1-20
switchport port-security
switchport port-security maximum 2
switchport port-security violation restrict
switchport port-security mac-address sticky
exit

port-security violation 옵션 restrict: 차단 + 로그/알림 protect: 차단 shutdown: 포트를 err-disabled 상태로 변경, 관리자 조치 전까지 포트 비활성화

마무리 및 팁

  • 각 네트워크/VLAN별 정책 및 접근 권한의 근거를 기록으로 남겨두면 나중에 “내가 왜 이렇게 설정했지?”와 같은 상황이 발생하지 않는다.

  • 정기적인 점검은 필수다. 패치 및 펌웨어 업데이트, 방화벽 정책 변경 이력, 장비 상태(로그)에 대한 정기 점검 루틴을 만들어 운영하도록 하자.`