📚 네트워크 · 패킷 분석 › 04. 네트워크 장비 실습 — 167편
이전 글: 166. 802.1Q · 다음 글: 168. Broadcast Domain

1. 개념

VLAN은 L2에서 네트워크를 나눕니다(163. VLAN이란 무엇인가). 서로 다른 VLAN의 장치는 같은 스위치에 연결되어 있어도 프레임을 직접 주고받지 못하므로, 통신하려면 L3 장비가 한 VLAN에서 받은 패킷을 다른 VLAN으로 라우팅해야 합니다. 이것이 Inter-VLAN Routing입니다.

이를 위해 각 VLAN에는 보통 서브넷 하나와 게이트웨이 주소(예: VLAN 10 → 192.168.10.1)가 주어지고, 단말은 다른 VLAN으로 가는 패킷을 이 게이트웨이로 보냅니다. 게이트웨이의 개념은 154. Gateway란 무엇인가를 참고합니다.

구현 방식구성장점단점
VLAN별 물리 인터페이스라우터 포트 N개 ↔ 스위치 Access 포트 N개단순VLAN 수만큼 포트·케이블 필요
Router-on-a-stick라우터(또는 방화벽) 포트 1개 ↔ 스위치 Trunk, 서브인터페이스포트 1개로 해결모든 VLAN 간 트래픽이 링크 하나에 집중
L3 스위치 SVI스위치 내부의 VLAN 인터페이스(interface Vlan10)고속, 추가 장비 불필요기본적으로 모든 VLAN 간 통신 허용

2. 동작 원리

VLAN 10의 PC-A(192.168.10.11)가 VLAN 20의 SRV-1(192.168.20.21)에 접속할 때의 흐름입니다(Router-on-a-stick 기준).

PC-A: 목적지가 다른 서브넷 → 게이트웨이 192.168.10.1의 MAC을 ARP로 조회
   ↓ 프레임: src MAC=PC-A, dst MAC=라우터, IP TTL=64
스위치: Access(VLAN 10) 수신 → Trunk로 VID 10 태그를 붙여 라우터로
   ↓
라우터 서브인터페이스 .10 수신 → 라우팅 테이블 조회 → 출구 .20
   ↓ L2 헤더 교체: src MAC=라우터, dst MAC=SRV-1 / TTL 64→63 / VID 20 태그
스위치: Trunk 수신(VID 20) → 태그 제거 → Access(VLAN 20) → SRV-1

이 과정에서 바뀌는 값과 바뀌지 않는 값이 관제 해석의 기준이 됩니다.

값라우팅 전 → 후관제 의미
출발지·목적지 IP그대로 (NAT가 없다면)로그 간 대조의 기준
출발지 MACPC-A → 라우터서버 쪽에서는 단말 MAC을 볼 수 없음
TTL1 감소홉 수 추정 근거
VLAN ID10 → 20두 구역을 넘었다는 증거

3. 주요 특징

Inter-VLAN Routing 지점은 곧 VLAN 간 통신의 통제 지점이자 로그 지점입니다. 어디서 라우팅하느냐에 따라 보안 통제와 로그가 달라집니다.

라우팅 지점기본 동작통제 방법남는 로그
L3 스위치 SVI모든 VLAN 간 허용ACL(VLAN 인터페이스에 적용)ACL 로그(설정 시), Flow
라우터 서브인터페이스모든 VLAN 간 허용ACLACL 로그, Flow
방화벽 서브인터페이스정책에 없는 통신 차단방화벽 정책(Stateful)세션 허용·차단 로그

규모가 있는 조직은 사용자 VLAN 간 라우팅은 L3 스위치에서, 서버·관리 구역으로 가는 라우팅은 방화벽에서 하는 식으로 섞어 씁니다. 이 구성을 알아야 "어느 장비의 로그를 봐야 하는가"를 정할 수 있습니다(160. 네트워크 장비 연결 구조).


4. 예시

실습 예시 — GNS3 등의 Cisco IOS 계열 장비 설정 예입니다. 주소·VLAN 번호는 예시(값은 환경마다 다름)이며, 스위치의 라우터 연결 포트는 VLAN 10·20을 허용하는 Trunk여야 합니다(165. Trunk Port).

! Router-on-a-stick (라우터)
interface GigabitEthernet0/0
 no shutdown
interface GigabitEthernet0/0.10
 encapsulation dot1Q 10
 ip address 192.168.10.1 255.255.255.0
interface GigabitEthernet0/0.20
 encapsulation dot1Q 20
 ip address 192.168.20.1 255.255.255.0

! L3 스위치 SVI 방식
ip routing
interface Vlan10
 ip address 192.168.10.1 255.255.255.0
interface Vlan20
 ip address 192.168.20.1 255.255.255.0

확인 명령은 show ip interface brief, show ip route connected입니다.

실습 예시 — Linux VM을 Router-on-a-stick으로 쓰는 구성입니다(Rocky/Ubuntu 공통). ens37이 스위치(또는 VLAN 필터링 브리지)의 Trunk 포트에 연결되어 있다고 가정하며, 설정은 재부팅 시 사라집니다.

sudo ip link add link ens37 name ens37.10 type vlan id 10
sudo ip link add link ens37 name ens37.20 type vlan id 20
sudo ip addr add 192.168.10.1/24 dev ens37.10
sudo ip addr add 192.168.20.1/24 dev ens37.20
sudo ip link set ens37.10 up && sudo ip link set ens37.20 up
sudo sysctl -w net.ipv4.ip_forward=1

# Rocky는 firewalld가 인터페이스 간 전달을 막을 수 있으므로 정책 확인
sudo firewall-cmd --get-active-zones

📷 [실습 화면 삽입 위치] VLAN 10의 VM에서 VLAN 20의 VM으로 traceroute -n 실행 시 첫 홉에 192.168.10.1이 나타나고, 라우터 VM의 tcpdump -e -nn -i ens37 vlan에서 같은 패킷이 VID 10으로 들어와 VID 20으로 나가는 화면


5. 보안 관점

  • "VLAN을 나눴다 = 분리됐다"가 아닙니다. L3 스위치·라우터는 ACL이 없으면 모든 VLAN 간 통신을 허용합니다. 실제 분리는 라우팅 지점의 정책으로 완성됩니다(178. ACL).
  • 민감 구역(서버·관리·OT)으로 가는 경로는 Stateful 방화벽을 거치게 설계하는 것이 일반적입니다. 상태 비저장 ACL은 응답 트래픽 처리와 로그 측면에서 한계가 있습니다.
  • 라우팅 지점을 우회하는 구성(서버에 두 VLAN NIC를 동시에 연결, 임시 직결 등)은 정책을 무력화합니다.
  • 게이트웨이 주소는 공격자에게도 중요한 대상입니다. 같은 VLAN 안에서 게이트웨이를 사칭하는 ARP 스푸핑은 VLAN 간 트래픽 전체를 가로챌 수 있습니다.

6. SOC 관점

흔적확인할 수 있는 것
방화벽 세션 로그방화벽이 라우팅하는 VLAN 간 허용·차단
L3 스위치·라우터 ACL 로그, FlowACL로 차단된 VLAN 간 시도, 통신량
서버 쪽 캡처출발지 MAC이 게이트웨이 MAC이고 TTL이 1 줄었으면 다른 VLAN에서 온 것
스위치 설정 로그SVI·서브인터페이스 추가, ACL 변경

관제자가 확인할 질문

  • 이 VLAN 간 통신은 어느 장비에서 라우팅되었는가? 그 장비에 정책과 로그가 있는가?
  • 사용자 VLAN에서 서버·관리 VLAN으로의 접근이 허용 정책과 일치하는가?
  • 두 VLAN에 동시에 연결된 호스트처럼 라우팅 지점을 우회하는 경로가 있는가?

오탐 주의: L3 스위치에서 라우팅되는 트래픽은 경계 방화벽 로그에 전혀 나타나지 않습니다. "방화벽 로그에 없다"를 "통신이 없었다"로 판단하지 않고, 해당 구간의 라우팅 지점을 먼저 확인합니다.


7. 핵심 정리

  • 서로 다른 VLAN 사이 통신은 L3 장비의 라우팅을 거쳐야 하며, 각 VLAN은 게이트웨이 주소를 가집니다.
  • 구현 방식은 VLAN별 물리 인터페이스, Router-on-a-stick(Trunk + 서브인터페이스), L3 스위치 SVI 세 가지입니다.
  • 라우팅을 거치면 IP는 유지되고 MAC은 교체되며 TTL이 1 줄고, VLAN ID가 바뀝니다.
  • 라우팅 지점이 VLAN 간 통제·로그 지점이며, L3 스위치·라우터는 ACL 없이는 모든 VLAN 간 통신을 허용합니다.
  • 관제에서는 어느 장비가 라우팅하는지 확인해야 볼 로그를 정할 수 있습니다.
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글