1. 인터브이랜의 개념과 네트워크 구성
기본적으로 VLAN은 2계층(Data Link Layer)에서 네트워크를 분리한다.
분리된 VLAN 간에 통신을 하려면 3계층(Network Layer) 장비인 라우터나 L3 스위치가 반드시 필요하다.

2. 라우터를 이용한 인터브이랜 (Router-on-a-Stick)
라우터의 물리 포트 하나를 논리적인 여러 개의 서브 인터페이스(Sub-Interface)로 쪼개어 사용하는 방식이다.
물리적 자원을 아끼면서 효율적으로 라우팅을 수행할 수 있어서 포트 자원이 부족한 환경에 유용하다.
아래 그림은 서로 다른 네트워크 대역(VLAN 10과 VLAN 20)에 속한 두 PC가 통신할 때, 데이터가 물리적으로 어떻게 이동하고 논리적으로 어떻게 처리되는지 보여준다.
- VLAN 10 (PC A): 10.10.10.x 대역
- VLAN 20 (PC B): 10.10.20.x 대역
- 문제 상황: 2계층 스위치(L2SW)만으로는 이 두 대역 사이의 벽을 넘을 수 없다.
- 해결책: 3계층 장비인 라우터(R1)를 통로로 사용한다.

위 그림의 숫자를 순서대로 따라가 보면 트래픽의 'U턴' 흐름을 볼 수 있다.
- PC A → 스위치: PC A가 다른 VLAN에 속한 PC B에게 데이터를 보낸다. 스위치는 이 패킷에 "이건 VLAN 10에서 온 거야"라는 태그(Tag 10)를 붙인다.
- 트렁크 라인(Trunk Line): 스위치와 라우터 사이의 단 하나의 선을 통해 데이터가 올라간다. 이때 여러 VLAN의 데이터가 섞이지 않도록 802.1Q 표준 방식의 태그가 붙어 있다.
- 라우터의 판단: 라우터의 물리 포트(fa0/0)는 하나지만, 내부적으로 쪼개진 서브 인터페이스(fa0/0.10)가 이 태그를 보고 "아, 우리 네트워크(VLAN 10) PC가 보낸 거구나" 하고 받아들인다.
- 라우팅: 라우터는 목적지 주소를 확인하고, 이를 VLAN 20의 게이트웨이(fa0/0.20)로 넘겨준니다.
- 내려오는 길: 라우터는 이제 태그를 20으로 바꿔서 다시 같은 선을 타고 스위치로 내려보낸다.
- 도착: 스위치는 태그 20을 확인하고, VLAN 20의 포트에 연결된 PC B에게 최종적으로 데이터를 전달한다.
위 방식의 장단점은 다음과 같다.
- 장점: 라우터의 물리 포트가 하나만 있어도 수십 개의 VLAN을 관리할 수 있어 비용이 저렴하다.
- 단점: 모든 트래픽이 하나의 물리 선을 타고 오르락내리락하므로, 통신량이 많아지면 병목 현상(Bottle-neck)이 발생할 수 있다. (마치 1차선 도로에 입구와 출구가 같이 있는 셈)
🟢 실습 토폴로지

🟢 실습 스크립트
---------------------------------------------
!기본 설정
Router1>en
Router1#conf t
Router1(config)#hostname R1
R1(config)#no ip domain-lookup
R1(config)#line con 0
R1(config-line)#logging synchronous
! 인터페이스 설정
R1(config-line)#int fa0/0
R1(config-if)#no sh
R1(config-if)#int fa0/0.10 --> 서브 인터페이스 번호*
R1(config-subif)#encapsulation dot1Q 10 --> VLAN ID*
R1(config-subif)#ip add 10.10.10.254 255.255.255.0
R1(config-subif)#int fa0/0.20 --> 서브 인터페이스 번호*
R1(config-subif)#encapsulation dot1Q 20 --> VLAN ID*
R1(config-subif)#ip add 10.10.20.254 255.255.255.0
! 저장 및 설정 확인
R1(config-subif)#end
R1#wr
R1#sh ip int b (show ip interface brief)

---------------------------------------------
인터페이스의 IP 할당 현황과 상태를 한눈에 파악할 수 있는 명령어다.
- 확인 포인트: fa0/0.10과 fa0/0.20이 리스트에 나타나는가?
- Status와 Protocol 항목이 모두 up 상태인가?
- 트러블슈팅: 만약 Status가 administratively down이라면 부모 인터페이스인 fa0/0에서 no shutdown을 하지 않은 것이고, Protocol이 down이라면 연결된 스위치 포트가 트렁크(Trunk) 설정이 아니거나 물리적 연결에 문제가 있는 것이다.
- Encapsulation dot1Q: 라우터 포트는 원래 VLAN 태그를 인식하지 못하는 L3 포트다. encapsulation dot1Q 명령은 라우터에게 "태그가 붙은 패킷을 읽을 수 있는 능력"을 부여하고, 특정 숫자를 지정해 "이 서브 인터페이스는 이 VLAN의Gateway"라고 정의하는 과정이다. 이 설정이 선행되지 않으면 IP 주소 할당 자체가 불가능하다.
- 물리 포트 활성화: 서브 인터페이스는 논리적 포트일 뿐이다. 부모 격인 fa0/0 포트가 shutdown 상태라면 서브 인터페이스는 절대로 동작하지 않는다.
라우터를 이용해 인터브이랜을 설정했다면, 게이트웨이는 라우터의 서브 인터페이스(Sub-Interface) IP와 일치해야 한다.
- VLAN 10의 PC: 게이트웨이 주소 = 라우터의 int fa0/0.10에 할당된 IP
- VLAN 20의 PC: 게이트웨이 주소 = 라우터의 int fa0/0.20에 할당된 IP
예시: 라우터 설정이 ip add 10.10.10.254 255.255.255.0이라면, PC의 게이트웨이 칸에도 반드시 10.10.10.254를 적어야 한다.
🌀서브 인터페이스 번호 vs VLAN ID의 역할
기술적으로는 두 숫자가 꼭 일치하지 않아도 동작한다.
하지만 실무에서는 일치시키는 것이 관례이다.
두 숫자는 라우터 내부에서 담당하는 역할이 완전히 다르다.
1️⃣ 서브 인터페이스 번호 (fa0/0.10)
- 역할: 라우터 내부에서 이 논리적 포트를 식별하기 위한 이름(인덱스)일 뿐이다.
- 범위: 장비마다 다르지만 보통 매우 큰 숫자까지 가능하다.
- 특징: fa0/0.1로 만들든 fa0/0.100으로 만들든 라우터가 물리 포트를 쪼개서 인식하는 데는 지장이 없다.
2️⃣ encapsulation dot1Q 10
- 역할: 실제로 어떤 VLAN 태그가 붙은 패킷을 처리할지 결정하는 실질적인 데이터 처리 기준이다.
- 범위: VLAN ID 범위인 1~4094 사이여야 한다.
- 특징: 이 숫자가 실제 스위치에서 설정한 VLAN 번호와 다르면 통신이 절대로 불가능하다.
기술적으로 int fa0/0.1 인터페이스에 encapsulation dot1Q 10을 설정해도 핑(Ping)은 잘 돌아간다.
그럼에도 불구하고 굳이 숫자를 맞추는 이유는 다음과 같다.
- 관리 및 가독성: 설정이 복잡해질 때 fa0/0.1이 10번 VLAN인지, 20번 VLAN인지 일일이 show run을 확인해야 한다면 관리가 매우 힘들어진다. 인터페이스 번호만 보고도 "아, 이건 10번 VLAN용이구나"라고 바로 알 수 있게 하려는 배려다.
- 트러블슈팅 효율: 장애 발생 시 show ip interface brief 명령어를 쳤을 때, 인터페이스 번호와 실제 서비스되는 VLAN 번호가 일치해야 직관적으로 문제를 파악할 수 있다.
- 실무 관행: 전 세계 모든 네트워크 엔지니어들이 약속처럼 숫자를 맞춰서 사용한다. 굳이 다르게 설정해서 혼란을 줄 필요가 없다.
3. L3 스위치를 이용한 인터브이랜 (SVI 방식)
L3 스위치는 하드웨어적으로 라우팅 기능을 내장하고 있다.
물리 포트를 쪼개는 대신, 각 VLAN 자체에 가상의 라우터 인터페이스를 생성하는 SVI(Switched Virtual Interface) 방식을 사용한다.
L3 스위치는 "내부 하드웨어(ASIC)에서 즉시 라우팅"이 일어난다.
외부 라우터로 나갈 필요 없이 스위치 내부의 가상 인터페이스(SVI) 간에 패킷이 이동한다.
아래 그림은 VLAN 10에 있는 PC A가 VLAN 20에 있는 PC B에게 데이터를 보내는 상황을 표현한 것이다.
두 PC는 서로 다른 네트워크에 있기 때문에 반드시 3계층(IP 계층) 처리가 필요한데, 이를 외부 장비가 아닌 스위치 내부의 가상 인터페이스(SVI)가 담당한다.

위 그림을 보면 다음과 같은 흐름을 볼 수 있다.
- PC1 → SVI 10 (내부 전송):
- PC A(10.1.10.1)는 목적지가 다른 네트워크임을 알고, 자신의 게이트웨이 주소인 SVI 10의 IP(10.10.10.254)로 패킷을 보낸다. 스위치 내부에서는 이미 VLAN 10 태그가 붙은 채로 이동한다.
- SVI 10 → ASIC (내부 라우팅 엔진):
- 스위치 내부의 가상 인터페이스(SVI 10)가 패킷을 수신한다. 스위치는 이 패킷을 어디로 보낼지 결정하기 위해 핵심 하드웨어인 ASIC(주문형 반도체)로 넘긴다.
- ASIC → SVI 20 (경로 전환):
- ASIC은 소프트웨어(CPU)가 아니라 하드웨어 칩셋에서 즉시 경로를 찾아낸다. "아, 이건 VLAN 20으로 가야 하는구나!"라고 판단하고, 패킷을 VLAN 20의 가상 문지기인 SVI 20에게 전달한다.
- SVI 20 → PC2 (최종 전달):
- SVI 20은 패킷을 받아 VLAN 20 태그를 붙여서 해당 포트에 연결된 PC B(10.10.20.1)에게 최종적으로 전달한다.
SVI 방식의ㅣ 특징은 다음과 같다.
- Internal Routing: 패킷이 물리적인 포트를 통해 외부 장비로 나가지 않고, 스위치 내부의 백플레인(Backplane)에서 처리가 끝난다.
- Wire-speed: 하드웨어 칩(ASIC)이 처리하므로 지연 시간(Latency)이 거의 없다.
🟢 실습 토폴로지

🟢 실습 스크립트
---------------------------------------------
!L3SW 설정
Switch>en
Switch#conf t
Switch(config)#host L3SW1
!......이하 기본 설정 생략
L3SW1(config)#ip routing ! ★ 필수: 스위치의 L3 라우팅 기능을 활성화
! VLAN 생성 (L2 데이터베이스)
L3SW1(config)#vlan 10
L3SW1(config-vlan)#name v10
L3SW1(config-vlan)#vlan 20
L3SW1(config-vlan)#name v20
! SVI 생성 (L3 가상 인터페이스)
L3SW1(config-vlan)#int vlan 10
%LINK-5-CHANGED: Interface Vlan10, changed state to up
L3SW1(config-if)#ip add 10.10.10.254 255.255.255.0 !VLAN 10의 게이트웨이
L3SW1(config-if)#exit
L3SW1(config-vlan)#int vlan 20
%LINK-5-CHANGED: Interface Vlan20, changed state to up
L3SW1(config-if)#ip add 10.10.20.254 255.255.255.0 !VLAN 20의 게이트웨이
! 물리 포트 할당 (Access Port)
L3SW1(config-if)#int fa0/1
L3SW1(config-if)#sw mode access
L3SW1(config-if)#sw access vlan 10
%LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan10, changed state to up
L3SW1(config-if)#int fa0/2
L3SW1(config-if)#sw mode access
L3SW1(config-if)#sw access vlan 20
%LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan20, changed state to up
---------------------------------------------
- ip routing: L3 스위치는 공장 출하 시 L2 스위치 모드로 동작한다. 이 명령어를 입력하지 않으면 IP 주소를 아무리 잘 설정해도 패킷 전달(Routing)이 일어나지 않는다.
- ASIC 기반 처리: 라우터는 CPU 기반으로 패킷을 처리하지만, L3 스위치는 ASIC(주문형 반도체) 칩을 사용해 하드웨어적으로 패킷을 전달한다. 따라서 내부망 간의 통신 속도가 라우터 방식보다 훨씬 빠르다.
L3 스위치를 사용한다면, 게이트웨이는 스위치 내부에 만든 가상 인터페이스(SVI)의 IP와 일치해야 한다.
- VLAN 10의 PC: 게이트웨이 주소 = L3 스위치의 int vlan 10에 할당된 IP
- VLAN 20의 PC: 게이트웨이 주소 = L3 스위치의 int vlan 20에 할당된 IP
4. 라우터 vs L3 스위치
| 구분 | 라우터 (Router-on-a-Stick) | L3 스위치 (SVI) |
| 인터페이스 형태 | 하나의 물리 링크를 논리적으로 분할 fa0/1.10 |
VLAN별 가상 인터페이스(SVI) 생성 int vlan 10 |
| 핵심 명령어 | encapsulation dot1Q [VLAN_ID] | ip routing, interface vlan [ID] |
| 태그 인식 방식 | 서브 인터페이스별 캡슐화 정의 필수 | 스위치 내부에서 자동으로 인식 |
| 패킷 처리 방식 | 소프트웨어(CPU) 중심 | 하드웨어(ASIC) 중심 |
| 성능 특징 | 단일 링크 대역폭 공유 (병목 가능성) | 와이어 스피드(Wire-speed) 지원 |
| 게이트웨이 주소 | 라우터의 서브 인터페이스 IP | L3 스위치의 SVI(VLAN 인터페이스) IP |
1. 라우터: "물리 포트 살리고(no sh), 점 찍고(fa0/0.10), 캡슐 씌우고(encap), IP 준다."
2. L3 스위치: "VLAN 만들고, IP Routing 켜고, 가상 인터페이스(int vlan)에 IP 준다."
3. 트렁크(Trunk)의 중요성: 하부 L2 스위치와 연결되는 포트는 반드시 switchport mode trunk가 설정되어 있어야 한다. 태그가 붙은 패킷이 이동하는 통로이기 때문이다. 트렁크 설정이 누락되면 인터브이랜 통신은 절대 이루어지지 않는다.
5. 핑(Ping) 테스트 및 트러블슈팅 가이드
설정을 마쳤다면 ping 테스트로 통신 여부를 확인한다.
통신이 안 될 때는 아래 경로를 따라 점검한다.
단계별 핑 테스트 경로
- PC → 자신의 게이트웨이: 여기가 실패하면 PC의 IP 설정 오타나 해당 VLAN의 SVI/서브인터페이스 설정 오류다.
- 게이트웨이 → 상대방 게이트웨이: 여기가 실패하면 장비 내 라우팅 기능(ip routing)이나 캡슐화 설정 문제다.
- PC → 상대방 PC: 최종 목표
장애 발생 시 체크리스트 (Top 5)
- Trunk 설정 누락: 스위치 간, 또는 스위치와 라우터 연결 포트가 switchport mode trunk인지 확인하라. 태그가 이동할 고속도로가 없으면 통신은 불가능하다.
- no shutdown 미이행: 특히 라우터의 물리 포트를 살리지 않아 서브 인터페이스까지 죽어있는 경우가 흔하다.
- VLAN 할당 오류: PC가 연결된 포트가 엉뚱한 VLAN에 들어가 있지는 않은지 sh vlan b로 확인한다.
- PC 게이트웨이 오타: 장비 설정은 완벽해도 PC의 Default Gateway 주소가 틀리면 패킷은 나가지 못한다.
- Encapsulation ID 불일치: 라우터 설정에서 dot1Q 10이라고 써야 할 것을 dot1Q 20으로 잘못 쓰지는 않았는지 확인한다.
'Journey to Security > 네트워크' 카테고리의 다른 글
| L2 스위치와 L3 스위치에서 각각 IP주소 설정하기 (0) | 2026.03.15 |
|---|---|
| VLAN이 필요한 이유와 두 가지 Inter-VLAN 방식에 대해 알아보자. (0) | 2026.03.14 |
| L2 스위치의 핵심 기능 (0) | 2026.03.09 |
| [Cisco Packet Tracer] ARP와 ICMP 패킷 흐름 시뮬레이션으로 시각화하기 (0) | 2026.03.07 |
| [Cisco IOS] 스위치 메모리 관리 및 설정 초기화 (0) | 2026.03.07 |