이 글은 2021년 4월 기준 기록입니다.
L2 스위치는 MAC 주소만 봅니다. 그래서 VLAN이 같은 장비들끼리만 통신할 수 있습니다. L3 스위치는 여기에 하나를 더 합니다. 동일 VLAN에 소속된 장비들은 MAC 주소를 참조해 스위칭하고, 다른 VLAN에 소속된 장비들은 IPv4·IPv6 같은 L3 주소를 참조해 라우팅합니다. 그래서 VLAN 간 통신을 어디서 처리할 것인가가 스위치 네트워크 설계의 첫 갈림길이 됩니다.
같은 VLAN 안에서는 L3 장비가 필요 없다
동일 VLAN에 소속된 장비 간의 통신에는 L3 스위치도 라우터도 필요하지 않습니다. 스위치가 MAC 주소만으로 프레임을 전달하면 끝입니다.

R1과 R2가 같은 VLAN 12에 속해 있고 같은 1.1.12.0/24 대역을 쓰므로, SW1은 L2 스위칭만으로 둘을 이어 줍니다.
VLAN 경계를 넘는 순간 L3 장비가 필요해진다
서로 다른 VLAN 사이의 통신을 위해서는 L3 스위치나 라우터가 필요합니다. L3 스위치를 쓰면 스위치 자신이 각 VLAN의 게이트웨이가 됩니다.

SW1이 VLAN 10과 VLAN 20에 각각 1.1.10.254, 1.1.20.254를 부여하고, 양쪽 장비는 그 주소를 게이트웨이로 지정합니다.
종단 스위치가 L2라면 라우팅은 원격지가 맡는다
PC 같은 종단 장치가 접속되는 스위치는 L2인 경우가 많습니다. 이때는 원격지의 L3 스위치를 이용해 VLAN 사이의 트래픽을 라우팅합니다.

VLAN 인터페이스는 상위의 SW2가 가지고, 종단의 SW1은 액세스 포트로 VLAN을 나눈 뒤 트렁크로 SW2에 올려 보냅니다.
L3 스위치가 없으면 라우터 한 대로 대신한다
L3 스위치가 없는 경우에는 라우터를 이용해 라우팅합니다. 이 구성을 Router on a stick이라고 합니다.

라우터 R3은 하나의 물리 인터페이스 e0/0을 서브인터페이스로 쪼개 각 VLAN의 게이트웨이 주소를 나누어 가지고, 스위치와는 트렁크로 연결됩니다.
테스트 네트워크
이후의 라우팅 프로토콜 설정은 모두 아래 구성을 기준으로 합니다.

SW1·SW2와 SW4 사이는 이더 채널로 묶은 라우티드 포트이고, 나머지 스위치 간 포트는 트렁크입니다.
먼저 이더 채널과 라우티드 포트를 만듭니다.
SW1(config)#int range e0/0-1
SW1(config-if-range)#no switchport
SW1(config-if-range)#channel-group 14 mode desirable
SW2(config)#int range e0/0-1
SW2(config-if-range)#no switchport
SW2(config-if-range)#channel-group 24 mode desirable
SW4(config)#int range e0/0-3
SW4(config-if-range)#no switchport
SW4(config-if-range)#int range e0/0-1
SW4(config-if-range)#channel-group 14 mode desirable
SW4(config-if-range)#int range e0/2-3
SW4(config-if-range)#channel-group 24 mode desirable
나머지 스위치 간 포트는 트렁크로 설정합니다.
SW1(config)#int range e1/0,e2/0
SW1(config-if-range)#sw tr enc dot
SW1(config-if-range)#sw mo tr
SW2(config)#int range e1/0,e2/0
SW2(config-if-range)#sw tr enc dot
SW2(config-if-range)#sw mo tr
SW3(config)#int range e0/0-1
SW3(config-if-range)#sw tr enc dot
SW3(config-if-range)#sw mo tr
SW1에서 라우팅을 켜고, 포트 채널과 VLAN 인터페이스에 주소를 부여합니다.
SW1(config)#ip routing
SW1(config)#int port-channel 14
SW1(config-if)#ip add 1.1.14.1 255.255.255.0
SW1(config-if)#exit
SW1(config)#vlan 12,100
SW1(config-vlan)#exit
SW1(config)#int e1/0
SW1(config-if)#sw tr allowed vlan 12
SW1(config-if)#int e2/0
SW1(config-if)#sw tr allowed vlan 100
SW1(config)#int vlan 12
SW1(config-if)#no sh
SW1(config-if)#ip add 1.1.12.1 255.255.255.0
SW1(config-if)#int vlan 100
SW1(config-if)#no sh
SW1(config-if)#ip add 1.1.100.1 255.255.255.0
SW2도 같은 방식입니다.
SW2(config)#ip routing
SW2(config)#int port-channel 24
SW2(config-if)#ip add 1.1.24.2 255.255.255.0
SW2(config-if)#exit
SW2(config)#vlan 12,100
SW2(config-vlan)#exit
SW2(config)#int e1/0
SW2(config-if)#sw tr allowed vlan 12
SW2(config-if)#int e2/0
SW2(config-if)#sw tr all vlan 100
SW2(config-if)#exit
SW2(config)#int vlan 12
SW2(config-if)#no sh
SW2(config-if)#ip add 1.1.12.2 255.255.255.0
SW2(config-if)#int vlan 100
SW2(config-if)#no sh
SW2(config-if)#ip add 1.1.100.2 255.255.255.0
SW3은 VLAN 100을 통과시키기만 합니다.
SW3(config)#vlan 100
SW3(config-vlan)#exit
SW3(config)#int range e0/0-1
SW3(config-if-range)#sw tr all vlan 100
SW4는 두 개의 포트 채널과 R1이 물리는 VLAN 40을 가집니다.
SW4(config)#ip routing
SW4(config)#int port-channel 14
SW4(config-if)#ip add 1.1.14.4 255.255.255.0
SW4(config-if)#exit
SW4(config)#int port-channel 24
SW4(config-if)#ip add 1.1.24.4 255.255.255.0
SW4(config-if)#exit
SW4(config)#vlan 40
SW4(config-vlan)#int e1/0
SW4(config-if)#sw ac vlan 40
SW4(config-if)#sw mo ac
SW4(config-if)#exit
SW4(config)#int vlan 40
SW4(config-if)#no sh
SW4(config-if)#ip add 1.1.40.4 255.255.255.0
R1(config)#int e0/0
R1(config-if)#ip add 1.1.40.1 255.255.255.0
R1(config-if)#no sh
라우팅을 설정하려면 먼저 L3 인터페이스를 만들어야 한다
L3 스위치로 구성된 네트워크의 규모가 커지면 정적 경로를 일일이 넣는 대신 동적인 라우팅 프로토콜을 사용하는 편이 편리합니다. 설정 방법은 라우터와 거의 동일하지만, 그 전에 라우팅이 붙을 L3 인터페이스를 만들어야 한다는 점이 다릅니다. L3 인터페이스는 두 가지로 나뉩니다.
SVI(Switched Virtual Interface) 는 interface vlan 명령어로 VLAN을 대표하는 IP 주소를 부여하는 방식입니다. 라우티드 포트(routed port) 는 no switchport 명령어로 스위치의 포트를 라우터 포트처럼 동작시키는 방식입니다.
스위치 사이에는 라우티드 포트가 유리하다
L3 스위치 간에는 특별한 이유가 없는 한 라우티드 포트를 사용하는 것이 편리합니다. 이유는 하나로 모입니다. STP가 동작하지 않기 때문입니다.
STP가 없으면 차단되는 포트 없이 모든 링크가 트래픽 전송에 사용되므로 편리하고 효율적인 부하 분산을 구현할 수 있습니다. 차단된 포트가 없으니 네트워크의 동작 상태를 망 구성도만으로도 판단할 수 있고, 컨버전스 시간도 빠릅니다.
라우티드 포트가 지원되지 않는 L3 스위치들을 연결하는 경우에는 SVI를 사용하게 되는데, 이때는 VLAN 번호를 신경 써야 합니다. 액세스 포트로 사용하는 것이 좋고, 각 스위치 간의 VLAN 번호는 서로 다른 것을 사용해야 합니다. 동일한 VLAN 번호를 사용하면 물리적인 루프가 발생해 STP에 의해 특정 포트가 차단됩니다. 트렁크 포트로 사용하는 경우에는 switchport trunk allowed vlan 명령어로 VLAN 번호를 제한하는 것이 좋습니다. 동일 VLAN이 모든 트렁크에 걸쳐지면 루프가 발생할 수 있습니다.
라우팅 프로토콜 설정은 라우터와 다르지 않다
L3 인터페이스만 준비되면 그다음은 라우터에서 하던 것과 같습니다. RIP 버전 2는 각 L3 스위치에서 이렇게 설정합니다.
SW1(config)#router rip
SW1(config-router)#version 2
SW1(config-router)#net 1.0.0.0
SW2(config)#router rip
SW2(config-router)#version 2
SW2(config-router)#net 1.0.0.0
SW4(config)#router rip
SW4(config-router)#version 2
SW4(config-router)#net 1.0.0.0
EIGRP도 마찬가지입니다.
SW1(config)#router eigrp 1
SW1(config-router)#net 1.1.14.1 0.0.0.0
SW1(config-router)#net 1.1.12.1 0.0.0.0
SW1(config-router)#net 1.1.100.1 0.0.0.0
SW2(config)#router eigrp 1
SW2(config-router)#net 1.1.24.2 0.0.0.0
SW2(config-router)#net 1.1.12.2 0.0.0.0
SW2(config-router)#net 1.1.100.2 0.0.0.0
SW4(config)#router eigrp 1
SW4(config-router)#net 1.1.40.4 0.0.0.0
SW4(config-router)#net 1.1.14.4 0.0.0.0
SW4(config-router)#net 1.1.24.4 0.0.0.0
SVI의 기본 대역폭이 최적 경로를 왜곡한다
여기서 L3 스위치 고유의 함정이 나옵니다. SVI는 기본 대역폭이 1Gbit로 설정되어 있습니다. 실제로는 이더 채널의 대역폭이 더 큰데도 라우팅 프로토콜은 SVI 경로를 최적 경로로 골라 버리는 경우가 생깁니다. 따라서 네트워크의 구성에 따라 SVI의 대역폭을 수정해야 최적의 라우팅이 이루어집니다.
SW1(config)#int vlan 12
SW1(config-if)#bandwidth 10000
SW1(config-if)#exit
SW1(config)#int vlan 100
SW1(config-if)#bandwidth 10000
SW2(config)#int vlan 12
SW2(config-if)#bandwidth 10000
SW2(config-if)#exit
SW2(config)#int vlan 100
SW2(config-if)#bandwidth 10000
OSPF는 손볼 곳이 더 많다
OSPF 자체의 설정은 다른 프로토콜과 다르지 않습니다.
SW1(config)#router ospf 1
SW1(config-router)#router-id 1.1.1.1
SW1(config-router)#net 1.1.14.1 0.0.0.0 area 0
SW1(config-router)#net 1.1.12.1 0.0.0.0 area 0
SW1(config-router)#net 1.1.100.1 0.0.0.0 area 0
SW2(config)#router ospf 1
SW2(config-router)#router-id 2.2.2.2
SW2(config-router)#net 1.1.24.2 0.0.0.0 area 0
SW2(config-router)#net 1.1.12.2 0.0.0.0 area 0
SW2(config-router)#net 1.1.100.2 0.0.0.0 area 0
SW4(config)#router ospf 1
SW4(config-router)#router-id 4.4.4.4
SW4(config-router)#net 1.1.14.4 0.0.0.0 area 0
SW4(config-router)#net 1.1.24.4 0.0.0.0 area 0
SW4(config-router)#net 1.1.40.4 0.0.0.0 area 0
R1(config)#router ospf 1
R1(config-router)#router-id 5.5.5.5
R1(config-router)#net 1.1.40.1 0.0.0.0 area 0
문제는 그다음에 붙는 조정 작업들입니다.
MTU가 다르면 네이버가 맺히지 않는다
대부분 스위치 SVI의 기본 MTU 크기는 1500 바이트지만, 일부 장비는 1504 바이트로 설정되어 있습니다. 이 경우 양측의 MTU 사이즈가 달라서 OSPF 네이버가 되지 못합니다.
SW4(config)#int port-channel 14
SW4(config-if)#ip mtu ?
<68-1500> MTU (bytes)
기준 대역폭이 100Mbps라 그 이상은 구분되지 않는다
SVI의 대역폭을 조정해도 OSPF에서는 여전히 대역폭이 작은 SVI 경로를 사용하기도 합니다. OSPF의 메트릭인 코스트(cost) 계산의 기준 대역폭이 100Mbps이기 때문입니다.
100Mbps / 100Mbps = 1
100Mbps / 200Mbps = 0.5 ⇒ 1
100Mbps를 넘는 링크는 계산 결과가 모두 1로 수렴해 버립니다. 따라서 OSPF의 기준 대역폭 자체를 변경해 주어야 합니다.
SW1(config)#router ospf 1
SW1(config-router)#auto-cost reference-bandwidth ?
<1-4294967> The reference bandwidth in terms of Mbits per second
네이버가 하나뿐인 구간은 브로드캐스트일 이유가 없다
브로드캐스트 네트워크 타입의 경우 장애 복구 시 DR, BDR 선출에서 wait 시간 40초를 대기합니다. 즉 장애 복구 시간이 길어집니다. 네이버가 하나뿐인 구간은 OSPF 네트워크 타입을 포인트 투 포인트로 변경합니다.
SW1(config)#int port-channel 14
SW1(config-if)#ip ospf network point-to-point
스위치들이 동일한 VLAN으로 접속되어 있는 경우에는 포인트 투 멀티포인트로 변경합니다.
타이머는 양쪽이 같아야 한다
OSPF의 컨버전스 시간을 단축시키는 작업이 필요할 수 있습니다. 헬로, 데드, SPF 스케쥴 딜레이, SPF 홀드 타이머 등이 대상입니다. 이 중 헬로와 데드 타이머는 OSPF 네이버 간에 반드시 동일해야 합니다.
이외에도 OSPF 스텁 에어리어, 축약 등의 기능을 사용해 네트워크 안정을 확보할 수 있습니다.
'IT·테크 > 인프라' 카테고리의 다른 글
| BGP — AS와 AS 사이를 정책으로 잇는 라우팅 프로토콜 (0) | 2026.08.14 |
|---|---|
| OSPF — 링크 상태로 전체 지도를 그려 길을 찾는다 (0) | 2026.08.13 |
| EIGRP — DUAL로 대체 경로를 미리 계산해 두는 라우팅 프로토콜 (0) | 2026.08.13 |
| RIP — 홉 수만 세는 가장 단순한 라우팅 프로토콜 (0) | 2026.08.12 |
| 라우팅 개요 — 라우터는 무엇을 보고 경로를 고르는가 (0) | 2026.08.12 |