홈 네트워크 구성하기
집 이사 후 가장 먼저 할 일은 네트워크 구성이다. 얼마 전 당근에서 시스코 스위치를 저렴하게 구할 수 있어서, 예전부터 꼭 해야겠다고 생각하던 네트워크 사용 목적에 따라 VLAN으로 분리하여 구축해야겠다고 생각했다. 네트워크 설계부터 구성까지의 과정을 적어보려 한다.
이전에는 Asus 공유기 3대를 메인-서브 구조로 구성해 메시 네트워크로 편의성 위주로 사용했으나, 이번에는 L2/L3 스위치를 도입해 보안과 성능을 중시하는 네트워크로 재구성했다. 무선 쪽에서는 스마트홈용 IoT 장비와 개인 기기가 같은 SSID와 네트워크를 공유하다 보니, 각 기기 간 접근 제어나 네트워크 분리가 어려워 보안 측면에서 한계가 있었다. 이를 개선하기 위해, VLAN 별로 SSID를 분리해 각 네트워크의 접근 권한을 명확히 제어할 수 있는 AP환경을 구축했다.
구성 목표
VLAN 분리
- 보안 강화: 네트워크를 논리적으로 분리해 접근 제어가 용이하고, 데이터 보호가 가능
- 트래픽 감소 및 성능 향상: 브로드캐스트 도메인을 축소해 불필요한 트래픽을 줄이고 네트워크 성능을 높임
- 유연성: 물리적 위치와 상관없이 논리적으로 그룹을 만들 수 있기 때문에 네트워크 구조 변경이 용이함
- 관리 편의성: 설정만으로 그룹 이동, 정책 적용 등 관리 작업을 간소화할 수 있음
무선 SSID 분리
- 네트워크 분리: SSID별로 VLAN을 매핑해 IoT, 게스트, 개인 기기 등 목적별로 네트워크를 분리
- 보안 정책 차등 적용: 각 SSID에 별도의 보안 정책(암호, 인증, 방화벽 등)을 적용해 보안성을 높임
- 리소스 및 접근 제어: SSID별로 네트워크 자원 접근 권한을 구분해 불필요한 접근을 차단할 수 있음
- 네트워크 관리 용이: 트래픽 모니터링, 문제 진단, 네트워크 확장 등의 관리가 용이
네트워크 구성
목적 별 분류 및 설계
VLAN | 용도 | 설명 |
---|---|---|
10 | 장비 관리 대역 | 네트워크 장비 관리용, pvid |
20 | 개인장비 무선 대역 | WiFi6, 개인 디바이스 전용 |
30 | IoT 전용 무선 대역 | 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+RM | L3 |
스위치 | Cisco WS-2960G-24TC-L | L2 |
AP | Aruba AP-25 | WLAN |
기타 | SKB H614G | WAN Bridge |
기타 | 단자함 Hub | 단자함 POE 라우터 |
네트워크 구성
- 통신사 모뎀 설정
- 메인 SK 회선을 SKB 모뎀 WAN포트로 인입
- SKB 모델을 브릿지 모드로 전환
- SKB 모뎀 LAN포트에 거실로 가는 케이블 인입(B2)
- 메인 라우터 설정
- 거실 벽 포트(B2)에서 메인 라우터 WAN포트로 인입
- 메인라우터의 인터페이스 중 하나에 Vlan10 할당 및 태깅 비활성화
- 설정한 인터페이스에서 벽 포트(W2)로 인입
- 단자함 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 설정
- ether1 포트에 dhcp-client 설정하여 공인 IP 받아오기
1
/ip dhcp-client add interface=ether1 disabled=no
- 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별 정책 및 접근 권한의 근거를 기록으로 남겨두면 나중에 “내가 왜 이렇게 설정했지?”와 같은 상황이 발생하지 않는다.
정기적인 점검은 필수다. 패치 및 펌웨어 업데이트, 방화벽 정책 변경 이력, 장비 상태(로그)에 대한 정기 점검 루틴을 만들어 운영하도록 하자.`