🌐 네트워킹 — Cisco IOS & 라우팅/스위칭
🌐 개요
- L2 스위치: MAC 주소 기반으로 프레임을 포워딩 (충돌 도메인 분리)
- L3 라우터: IP 주소 기반으로 패킷을 포워딩 (브로드캐스트 도메인 분리)
- Cisco IOS: Cisco 장비의 네트워크 운영체제, 계층적 CLI 제공
⚙️ Cisco IOS CLI 모드 계층
IOS는 권한과 목적에 따라 4단계 모드로 나뉜다. 프롬프트 기호로 현재 모드를 구분한다.
Router> Priv: Privileged EXEC
Router# Global: Global Config
Router(config)# IF: Interface Config
Router(config-if)# Line: Line Config
Router(config-line)# Router: Router Config
Router(config-router)# User --> Priv: enable Priv --> User: disable Priv --> Global: configure terminal Global --> Priv: exit / end Global --> IF: interface Gi0/0 Global --> Line: line vty 0 4 Global --> Router: router ospf 1 IF --> Global: exit Line --> Global: exit Router --> Global: exit
| 모드 | 프롬프트 | 진입 명령 | 탈출 | 주요 용도 |
|---|---|---|---|---|
| User | Router> | 콘솔 접속 시 기본 | exit / logout | 조회·ping |
| Priv | Router# | enable | disable | 관리·저장·debug |
| Global | Router(config)# | configure terminal | end / Ctrl+Z | 장비 전역 설정 |
| Iface | Router(config-if)# | interface fa0/1 | exit | 인터페이스별 설정 |
🛠️ 기본 설정 8가지 실습
새로 받은 Cisco 장비에 적용하는 표준 초기 설정 시퀀스다.
① 호스트명 변경
Router> enable
Router# configure terminal
Router(config)# hostname R1
R1(config)#
② 특권 모드 암호 (enable secret)
R1(config)# enable secret cisco123
# enable password는 평문 저장 → enable secret(MD5) 권장
③ 콘솔 접속 암호
R1(config)# line console 0
R1(config-line)# password cisco
R1(config-line)# login
R1(config-line)# exit
④ 접속 배너 (Message of the Day)
R1(config)# banner motd #
Authorized Access Only!
#
⑤ 인터페이스 IP 할당 & 활성화
R1(config)# interface fastEthernet 0/0
R1(config-if)# ip address 192.168.1.1 255.255.255.0
R1(config-if)# no shutdown
R1(config-if)# exit
⑥ 상태 확인 (show 명령)
R1# show running-config # 현재 설정 (휘발성)
R1# show startup-config # NVRAM에 저장된 설정
R1# show ip interface brief # 인터페이스 요약 상태
R1# show version # IOS 버전/모델/업타임
R1# show mac address-table # (스위치) MAC 학습 테이블
⑦ 설정 저장
R1# copy running-config startup-config
# 또는 축약: R1# write memory
⑧ 초기화 & 재부팅
R1# erase startup-config
R1# reload
# 저장 없이 실습 초기화할 때 사용
🔀 스위칭 동작
스위치는 MAC 주소 테이블을 학습해 프레임을 해당 포트로만 포워딩한다.
| 장비 | 충돌 도메인 | 브로드캐스트 도메인 | 비고 |
|---|---|---|---|
| 허브 (L1) | 전체 1개 | 전체 1개 | 반이중·CSMA/CD 필요 |
| 스위치 (L2) | 포트마다 분리 | VLAN마다 1개 | 전이중 가능 |
| 라우터 (L3) | 포트마다 분리 | 인터페이스마다 분리 | 브로드캐스트 차단 |
Transparent Bridging 4 기능
Cisco 스위치의 표준 L2 동작은 IEEE 802.1D Transparent Bridging을 따른다.
| 기능 | 설명 |
|---|---|
| Learning | Source MAC ↔ 입력 포트를 CAM 테이블에 기록 (에이징 기본 300초) |
| Forwarding | Destination MAC이 테이블에 있고 입력 포트와 다르면 해당 포트로 전달 |
| Filtering | Destination MAC이 입력 포트와 동일하면 드롭 (같은 세그먼트로 되돌리지 않음) |
| Loop Prevention | STP로 물리 루프 발생 시 일부 포트를 Blocking 상태로 차단 |
🌲 Spanning Tree Protocol (STP)
스위치 이중화 구성은 물리 루프를 만들어 브로드캐스트 스톰·MAC 테이블 플랩·프레임 중복 3대 문제를 일으킨다. STP(IEEE 802.1D)가 논리적 트리를 만들어 여분 경로를 차단해 해결한다.
STP 동작 순서
- Root Bridge 선출 — Bridge ID(Priority 32768 기본 + MAC)가 가장 낮은 스위치가 Root
- Root Port 선택 — 각 비-Root 스위치에서 Root까지 Cost가 가장 낮은 포트
- Designated Port 선택 — 각 세그먼트에서 Root 쪽으로 가장 가까운 1개 포트
- Blocking — 나머지 포트는 차단 상태로 대기
포트 상태 5단계 (802.1D)
| 상태 | BPDU 수신 | MAC 학습 | 포워딩 | 전이 시간 |
|---|---|---|---|---|
| Blocking | ✅ | ❌ | ❌ | — |
| Listening | ✅ | ❌ | ❌ | 15초 |
| Learning | ✅ | ✅ | ❌ | 15초 |
| Forwarding | ✅ | ✅ | ✅ | — |
| Disabled | ❌ | ❌ | ❌ | 관리자 shut |
PortFast: 엣지 포트(PC 접속)에 한해 Listening/Learning을 건너뛰고 즉시 Forwarding.
🏷️ VLAN (Virtual LAN)
물리 스위치를 논리적으로 나눠 브로드캐스트 도메인을 분리한다.
| 포트 유형 | 태그 | 용도 | 명령어 |
|---|---|---|---|
| Access | ❌ 태그 없음 | 단말(PC) 연결 — 하나의 VLAN만 | switchport mode accessswitchport access vlan 10 |
| Trunk | ✅ 802.1Q 태그 | 스위치↔스위치 — 여러 VLAN 전달 | switchport mode trunkswitchport trunk allowed vlan 10,20 |
VLAN 생성 & 할당 예시
SW1(config)# vlan 10
SW1(config-vlan)# name SALES
SW1(config-vlan)# exit
SW1(config)# vlan 20
SW1(config-vlan)# name DEV
SW1(config-vlan)# exit
SW1(config)# interface fa0/1
SW1(config-if)# switchport mode access
SW1(config-if)# switchport access vlan 10
SW1(config)# interface fa0/24
SW1(config-if)# switchport mode trunk
SW1(config-if)# switchport trunk allowed vlan 10,20
🧭 라우팅 프로토콜
라우터는 라우팅 테이블을 기반으로 최적 경로를 선택한다. 테이블을 채우는 방식에 따라 정적·동적으로 나뉜다.
| 분류 | 프로토콜 | 알고리즘 | 범위 | 특징 |
|---|---|---|---|---|
| 거리 벡터 | RIP (v1/v2) | Bellman-Ford | IGP (소규모) | 홉 수만 고려, 최대 15홉, 30초 주기 브로드캐스트 |
| 링크 상태 | OSPF | Dijkstra (SPF) | IGP (중~대) | 비용(대역폭) 기반, 변화 시에만 LSA 전송, Area 분할 |
| 하이브리드 | EIGRP | DUAL | IGP (Cisco) | Bandwidth + Delay 복합 메트릭, 빠른 수렴 |
| 경로 벡터 | BGP | Path-Vector | EGP (AS 간) | 인터넷 백본, AS_PATH 기반 정책 라우팅 |
정적 라우팅 예시
R1(config)# ip route 192.168.2.0 255.255.255.0 10.0.0.2
# 목적지 네트워크 / 서브넷 마스크 / 다음 홉 IP
RIPv2 설정
R1(config)# router rip
R1(config-router)# version 2
R1(config-router)# no auto-summary
R1(config-router)# network 192.168.1.0
R1(config-router)# network 10.0.0.0
OSPF 설정 (단일 영역)
R1(config)# router ospf 1
R1(config-router)# router-id 1.1.1.1
R1(config-router)# network 192.168.1.0 0.0.0.255 area 0
R1(config-router)# network 10.0.0.0 0.0.0.3 area 0
# ⚠ OSPF는 와일드카드 마스크 사용 (서브넷 마스크의 비트 반전)
Administrative Distance (AD) — 신뢰도 순위
한 목적지에 대해 여러 프로토콜이 경로를 제시하면 AD가 낮은 쪽이 라우팅 테이블에 등록된다.
| 출처 | AD |
|---|---|
| Connected | 0 |
| Static | 1 |
| EIGRP (internal) | 90 |
| OSPF | 110 |
| RIP | 120 |
| EIGRP (external) | 170 |
| iBGP / eBGP | 200 / 20 |
🔁 RIP 루프 방지 기법
거리 벡터 프로토콜은 네트워크 변화가 느리게 전파되기 때문에 Count to Infinity 문제가 발생한다. RIP은 4가지 방어 장치를 동시에 사용한다.
| 기법 | 동작 |
|---|---|
| Maximum Hop | 홉 카운트 15까지만 유효, 16이면 unreachable로 간주 — 무한 증가 차단 |
| Split Horizon | 어떤 인터페이스로 배운 경로는 그 인터페이스로 다시 광고하지 않는다 |
| Route Poisoning | 링크 다운 시 해당 경로를 홉 16으로 즉시 광고해 "사용 불가" 확정 |
| Hold-Down Timer | 나쁜 정보 수신 직후 일정 시간(기본 180초) 더 나은 광고도 무시, 전파 안정화 |
🗺️ OSPF — Area & Cost
Area 구조 (2-Layer 계층)
OSPF는 네트워크를 Area로 나눠 LSA 홍수 범위를 제한한다. 모든 비-백본 Area는 Area 0(백본)과 반드시 연결되어야 한다.
- Area 0 (Backbone) — 모든 Inter-Area 트래픽이 경유
- ABR (Area Border Router) — 2개 이상 Area에 속하는 라우터, Area간 요약
- ASBR (Autonomous System Boundary Router) — OSPF↔다른 AS(RIP/BGP) 경로 교환
- Stub / Totally Stubby / NSSA — 외부 LSA를 차단해 라우팅 테이블 축소
Cost 계산식
# Cost = Reference Bandwidth (10^8) / Interface Bandwidth (bps)
# FastEthernet 100Mbps → 100,000,000 / 100,000,000 = 1
# Serial 1.544Mbps → 100,000,000 / 1,544,000 ≈ 64
R1(config-router)# auto-cost reference-bandwidth 10000
# 10Gbps 이상 링크가 있으면 기준 대역폭을 올려 구분력 확보
LSA 주요 타입
| Type | 이름 | 생성 주체 | 범위 |
|---|---|---|---|
| 1 | Router LSA | 모든 라우터 | Area 내부 |
| 2 | Network LSA | DR | Multi-Access 세그먼트 |
| 3 | Summary LSA | ABR | 다른 Area로 전파 |
| 5 | External LSA | ASBR | OSPF 도메인 전체 |
🛰️ BGP — 경로 벡터 & AS_PATH
BGP는 인터넷 전체(수만 AS) 단위 라우팅 프로토콜이다. 최적 경로가 아닌 정책 기반 경로를 고른다.
BGP 세션 2종
| 유형 | 상대 | AD | AS_PATH 변화 |
|---|---|---|---|
| eBGP | 다른 AS | 20 | 자기 AS를 prepend |
| iBGP | 같은 AS 내부 | 200 | 변경 없음 (Full-Mesh 필요) |
Path Attributes 결정 우선순위(요약)
- Weight (Cisco 전용, 높을수록 선호, 라우터 로컬)
- Local Preference (AS 내부 공통, 높을수록 선호)
- Locally Originated (network 명령으로 광고한 경로)
- AS_PATH (짧을수록 선호 — 기본 루프 방지 수단)
- Origin (IGP < EGP < Incomplete)
- MED (외부 이웃에게 진입 경로 힌트, 낮을수록 선호)
- eBGP over iBGP → IGP Metric → Router-ID 낮은 쪽
🔀 Redistribution — 프로토콜 간 경로 교환
서로 다른 라우팅 프로토콜(예 OSPF ↔ RIP, EIGRP ↔ OSPF)은 메트릭 체계가 달라 직접 통합되지 않는다. Redistribution은 ASBR에서 경로를 꺼내 반대편 프로토콜의 메트릭으로 번역해 광고한다.
기본 Seed Metric
| 유입 → 유출 | 기본 메트릭 | 필요 작업 |
|---|---|---|
| → RIP | 무한대 | default-metric 5 필수 지정 |
| → OSPF | 20 (BGP는 1) | redistribute rip subnets |
| → EIGRP | 무한대 | Bandwidth/Delay/Load/Reliability/MTU 5요소 지정 |
| → BGP | IGP 메트릭 상속 | redistribute ospf 1 |
OSPF ↔ RIP 상호 재분배 예
R1(config)# router ospf 1
R1(config-router)# redistribute rip subnets metric 100 metric-type 2
# subnets: Classful 요약 방지 / metric-type 2: E2(외부 메트릭만 반영, 기본)
R1(config)# router rip
R1(config-router)# redistribute ospf 1 metric 5
# RIP 쪽은 홉 단위로 표현 가능한 값(1~15) 필수
route-map + tag로 되돌아오는 경로를 차단하는 것이 표준 해법.
🔢 Classful vs Classless
| 구분 | Classful | Classless (CIDR) |
|---|---|---|
| 마스크 | 고정 (/8, /16, /24) | 가변 — /8 ~ /30 임의 |
| 프로토콜 | RIPv1, IGRP | RIPv2, OSPF, EIGRP, BGP |
| VLSM | ❌ 불가 | ✅ 가능 (네트워크별 다른 마스크) |
| 서브넷 요약 | 자동 (auto-summary) | 수동 (summary-address) |
| 주소 효율 | 낭비 심함 | 고효율 |
VLSM 예시 — 200명/100명/50명 세 서브넷
# 시작 네트워크: 192.168.10.0/24 (256개)
# 필요: 200호스트, 100호스트, 50호스트
# 200호스트 → /24 (254개, 단독 사용) 192.168.10.0/24
# 100호스트 → /25 (126개) 192.168.11.0/25
# 50호스트 → /26 (62개) 192.168.11.128/26
# ⚠ 크기 큰 서브넷부터 할당해야 낭비가 없다.
🧪 Packet Tracer vs GNS3
| 항목 | Packet Tracer | GNS3 |
|---|---|---|
| 제작 | Cisco Networking Academy | 오픈소스 |
| 엔진 | 시뮬레이션(가상 IOS 흉내) | 에뮬레이션(실제 IOS 이미지 구동) |
| 성능 | 가볍고 빠름 | CPU/RAM 많이 씀 |
| 지원 장비 | Cisco 일부 모델 | Cisco, Juniper, VMware VM 혼합 |
| 용도 | CCNA 학습·실습 | 실전 구축·고급 연습 |
| IOS 이미지 | 불필요 | 별도 확보 필요 (라이선스 주의) |
🕹️ 실습 터미널
브라우저에서 돌아가는 시뮬레이터는 별도의 실습 페이지로 분리했습니다. Docker · Linux · Cisco IOS · Kubernetes 를 탭으로 전환하며 연습하세요.