라우팅은 패킷을 출발지에서 목적지까지 전달하는 과정이며, 이 역할을 수행하는 장비가 라우터입니다. 라우터는 목적지로 가는 최적의 경로를 결정하고 해당 경로로 패킷을 전달하는 기능을 담당합니다.

  • 라우팅 테이블(Routing Table)
    라우터가 경로를 결정할 때 참조하는 지도와 같은 역할을 합니다. 라우팅 테이블에는 목적지 네트워크, 해당 목적지로 가기 위한 다음 홉(Next-hop) 라우터의 주소, 사용할 출력 인터페이스, 경로의 우선순위 등의 정보가 기록됩니다.
  • 경로 결정 방법
    1. 정적 라우팅(Static Routing) : 네트워크 관리자가 모든 경로 정보를 라우터에 수동으로 직접 입력하는 방식입니다. 설정이 단순하고 예측 가능하지만, 네트워크 구조가 변경될 때마다 관리자가 직접 수정해야 하는 단점이 있습니다.
    2. 동적 라우팅(Dynamic Routing) : 라우터들이 라우팅 프로토콜을 이용하여 서로 경로 정보를 교환하고, 이를 바탕으로 라우팅 테이블을 자동으로 생성하고 갱신하는 방식입니다. 네트워크 변화에 능동적으로 대처할 수 있어 대규모 네트워크에 적합합니다.
  • 라우팅 메트릭(Routing Metric)
    동적 라우팅에서 최적의 경로를 선택하는 기준이 되는 값입니다. 라우팅 프로토콜마다 사용하는 메트릭이 다르며, 값이 작을수록 더 좋은 경로로 판단합니다.
    • 주요 메트릭: 홉 카운트(거쳐가는 라우터 수), 대역폭(Bandwidth), 지연(Delay), 신뢰성(Reliability) 등
  • 관리 거리(Administrative Distance, AD)
    하나의 목적지에 대해 여러 다른 라우팅 프로토콜로부터 경로 정보를 학습했을 때, 어떤 프로토콜의 정보를 더 신뢰할지 결정하는 기준값입니다. 값이 낮을수록 신뢰도가 높습니다. (예: 직접 연결된 경로 AD=0, 정적 경로 AD=1, RIP AD=120)

2. 라우팅 알고리즘의 종류

동적 라우팅 프로토콜은 크게 두 가지 알고리즘으로 분류됩니다.

  1. 거리 벡터 알고리즘 (Distance Vector)
    • 거리(얼마나 먼가)와 방향(어느 쪽으로 가야 하는가) 정보만을 기반으로 경로를 결정합니다.
    • 자신의 전체 라우팅 테이블을 주기적으로 이웃 라우터와 교환하는 방식으로 동작합니다.
    • 대표적인 프로토콜 : RIP (Routing Information Protocol)
  2. 링크 상태 알고리즘 (Link State)
    • 네트워크의 전체 토폴로지(지도) 정보를 수집한 후, SPF(Shortest Path First) 알고리즘을 사용하여 출발지부터 모든 목적지까지의 최단 경로 트리를 계산합니다.
    • 네트워크 변화가 있을 때만 해당 링크의 상태 정보만을 모든 라우터에 전파합니다.
    • 대표적인 프로토콜: OSPF (Open Shortest Path First)

정적 경로(Static Route) 설정

정적 경로는 소규모 네트워크나 보안이 중요한 특정 경로, 그리고 외부로 나가는 경로가 하나뿐인 **스텁 네트워크(Stub Network)**에서 유용하게 사용됩니다.

  • 설정 명령어 : 전역 설정 모드에서 다음 명령어를 사용합니다.
        ip route [목적지 네트워크 주소] [서브넷 마스크] [다음 홉 주소 또는 출력 인터페이스]
  • 기본 경로(Default Route)  : 라우팅 테이블에 없는 모든 목적지로 가는 패킷을 처리하기 위한 경로입니다. 주로 인터넷으로 나가는 관문에 설정합니다.
        ip route 0.0.0.0 0.0.0.0 [다음 홉 주소 또는 출력 인터페이스]
  • 검증 : show ip route static 명령어로 설정된 정적 경로를 확인할 수 있습니다.

RIP(Routing Information Protocol) 설정

RIP는 가장 오래되고 단순한 동적 라우팅 프로토콜 중 하나로, 거리 벡터 알고리즘을 사용합니다.

  • RIP의 특징
    • 메트릭 : 홉 카운트(Hop Count)를 사용하며, 최대 15홉까지만 인식합니다.
    • 업데이트 : 30초마다 자신의 라우팅 테이블 전체를 브로드캐스트합니다.
    • 버전 : RIPv1(클래스풀)과 RIPv2(클래스리스)가 있으며, 서브넷 마스크 정보를 함께 전송하는 RIPv2 사용이 권장됩니다.
  • 설정 과정 (2단계)
    1. 라우팅 프로세스 활성화 : 전역 설정 모드에서 라우팅 프로토콜로 RIP를 선택합니다.
          router rip
      version 2  // RIPv2 사용 설정
    2. 참여할 네트워크 선언: RIP 프로세스가 동작할, 즉 라우팅 정보를 교환할 자신의 인터페이스가 속한 네트워크를 선언합니다. 클래스풀 주소(A, B, C 클래스) 기준으로 입력합니다.
    3. Code
          network [네트워크 주소]
  • 검증 및 장애 처리
    • 검증 : show ip protocols로 RIP 설정 상태를, show ip route로 학습된 경로(R로 표시됨)를 확인합니다.
    • 장애 처리 : debug ip rip 명령어를 사용하면 라우팅 업데이트 메시지가 송수신되는 과정을 실시간으로 볼 수 있어 문제 해결에 도움이 됩니다. (CPU 부하가 높으므로 주의해서 사용해야 합니다.)
728x90

네트워크 장비에서 발생하는 중요한 이벤트(인터페이스 UP/DOWN, 설정 변경 등)를 기록하고 관리하기 위해 Syslog를 이용합니다. Syslog는 로그 메시지를 생성, 수집하여 중앙 서버에 저장하는 표준 프로토콜입니다.

  • 로그 메시지 전달 방법
    1. 콘솔 : 기본적으로 활성화되어 있습니다. 콘솔에 직접 연결된 사용자에게 실시간 로그를 보여줍니다.
    2. RAM 버퍼 : 라우터 내부 메모리에 로그를 임시 저장합니다. show logging 명령어로 확인할 수 있습니다.
    3. 원격 Syslog 서버 : 별도의 서버에 로그를 UDP를 통해 전송하여 영구적으로 보관합니다. 안정적인 로그 관리를 위해 권장되는 방식입니다.
    4. 터미널 라인 : Telnet이나 SSH로 원격 접속한 사용자에게 로그를 보여줍니다. (terminal monitor 명령어 필요)
  • 로그 메시지 형식과 중요도
    • 로그 메시지는 시간 정보(Timestamp), 발생 장치, 중요도 등급(Severity Level), 설명 등으로 구성됩니다.
    • 중요도 등급은 0(Emergency)부터 7(Debug)까지 8단계로 나뉘며, 숫자가 낮을수록 심각한 이벤트를 의미합니다. 관리자는 특정 등급 이상의 로그만 수신하도록 설정할 수 있습니다.

시간 동기화 (NTP)

여러 장비에서 발생한 로그의 시간 순서를 정확히 파악해야 원인 규명이 가능하므로, 정확한 시간 정보는 네트워크 장애 분석에 중요합니다.  NTP(Network Time Protocol)는 네트워크에 연결된 모든 장비의 시계를 기준 시계(Time Server)와 정확하게 동기화하는 프로토콜입니다.

  • NTP 설정
    • 장비는 NTP 서버(시간을 제공), NTP 클라이언트(시간을 수신), 또는 두 역할을 모두 수행하는 클라이언트/서버 모드로 동작할 수 있습니다.
    • 클라이언트는 ntp server [서버 IP 주소] 명령어를 사용하여 지정된 서버로부터 시간 정보를 받아옵니다.
    • 신뢰할 수 있는 시간 소스를 가진 라우터는 ntp master [계층 순위] 명령어로 NTP 서버 역할을 수행할 수 있습니다.

이웃 장비 탐색 (CDP와 LLDP)

네트워크 관리자는 물리적으로 직접 연결된 이웃 장비의 정보를 파악해야 할 때가 많으며, 이때 장비 탐색 프로토콜을 사용합니다.입니다.

  • CDP (Cisco Discovery Protocol)
    • 시스코 전용 프로토콜로, 데이터링크 계층(2계층)에서 동작합니다.
    • 부팅 시 자동으로 실행되며, 직접 연결된 다른 시스코 장비의 호스트 이름, IP 주소, 장비 모델, 연결된 포트 정보 등을 주기적으로 교환합니다.
    • show cdp neighbors 명령어로 이웃 장비의 요약 정보를, show cdp neighbors detail로 상세 정보를 확인할 수 있습니다.
  • LLDP (Link Layer Discovery Protocol)
    • CDP와 유사한 기능을 수행하는 국제 표준(IEEE 802.1AB) 프로토콜입니다.
    • 시스코 장비뿐만 아니라 다양한 제조사의 장비와 정보를 교환할 수 있다는 장점이 있습니다.
    • 명령어는 CDP와 거의 동일하며, show lldp neighbors 등으로 정보를 확인할 수 있습니다.

원격 장비 접속 및 관리

관리자는 물리적으로 멀리 떨어진 장비에 원격으로 접속하여 설정하고 관리할 수 있습니다.

  • Telnet : 가장 기본적인 원격 접속 방법이지만, 모든 통신 내용이 암호화되지 않은 평문(Plaintext)으로 전송되어 보안에 매우 취약합니다.
  • SSH (Secure Shell) : Telnet과 동일한 기능을 제공하지만, 모든 통신 내용을 암호화(Ciphertext)하여 보안이 뛰어납니다. 외부 네트워크에서의 원격 접속 시 SSH 사용이 권장됩니다.
  • Telnet 세션 관리 : 하나의 장비에서 여러 원격 장비로 동시에 Telnet 세션을 열고 관리할 수 있습니다. Ctrl+Shift+6 -> X 키를 눌러 현재 세션을 대기 상태로 전환하고 다른 작업을 할 수 있으며, resume 명령어로 대기 중인 세션에 다시 연결할 수 있습니다.
  • 연결 상태 확인
    • ping : 특정 IP 주소를 가진 목적지 장비와의 네트워크 연결이 정상적인지 확인하는 가장 기본적인 도구입니다. ICMP Echo 메시지를 사용합니다.
    • traceroute : 목적지까지 도달하는 동안 거쳐가는 모든 라우터의 경로와 각 구간의 응답 시간을 보여줍니다. 네트워크 경로상의 문제점을 파악하는 데 유용합니다.
728x90

'네트워크' 카테고리의 다른 글

시스코 라우터의 설정과 관리  (0) 2025.10.27
시스코 라우터와 IOS  (0) 2025.10.24
이더넷 LAN이란?  (0) 2025.09.29
컴퓨터 네트워크  (0) 2025.09.28

 라우터 설정 모드

  • 주요 모드와 진입 명령어
    • 사용자 모드 (Router>) : 기본적인 상태 확인만 가능합니다.
    • 특권 모드 (Router#) : enable 명령어로 진입하며, 모든 조회 및 관리 명령을 실행할 수 있습니다.
    • 전역 설정 모드 (Router(config)#) : 특권 모드에서 configure terminal 명령어로 진입하며, 라우터 전체에 영향을 미치는 설정을 합니다.
    • 특정 설정 모드 : 전역 설정 모드에서 특정 부분(인터페이스, 라인 등)을 설정하기 위해 진입합니다.
      • 인터페이스 설정 : interface [타입/번호]
      • 라인 설정 : line [타입] [번호]

라우터 기본 설정 및 저장

  • 라우터 이름 설정 : hostname [이름]
  • 패스워드 설정 : 콘솔, 원격 접속(vty), 특권 모드(enable password 또는 보안이 강화된 enable secret)에 암호를 설정하여 접근을 제어합니다.
  • 로그인 배너 설정 : banner motd 명령어로 접속 시 경고 메시지를 표시합니다.
  • 설정 저장 : RAM에서 실행 중인 설정(running-config)은 재부팅 시 사라집니다. 설정을 영구적으로 저장하려면 반드시 NVRAM의 startup-config에 복사해야 합니다.
    • 명령어 : copy running-config startup-config

인터페이스 설정 및 활성화

라우터가 실제로 통신을 시작하기 위한 핵심 설정입니다.

  • IP 주소 할당 : 해당 인터페이스 설정 모드에서 ip address [IP주소] [서브넷 마스크] 명령어로 IP를 설정합니다.
  • 인터페이스 활성화 : 시스코 장비의 인터페이스는 기본적으로 비활성화(shutdown) 상태입니다. no shutdown 명령어를 입력하여 반드시 활성화해야 합니다.
  • 설정 확인 : show interfaces 명령어로 인터페이스의 물리적, 논리적 상태("up, line protocol is up")와 설정 내용을 확인합니다.

라우터 관리와 부팅 프로세스

  • 라우터 부팅 순서
    1. POST : 하드웨어 자체 진단을 수행합니다.
    2. IOS 로드 : 플래시 메모리에서 운영체제(IOS) 이미지를 찾아 RAM으로 로드합니다.
    3. 설정 파일 로드 : NVRAM에서 시작 설정 파일(startup-config)을 찾아 RAM으로 로드하여 실행 설정(running-config)으로 적용합니다.
  • 파일 관리 : copy 명령어를 사용하여 IOS 이미지나 설정 파일을 TFTP 서버 등으로 백업하거나 복원할 수 있습니다.

문제 해결을 위한 필수 명령어 (showdebug)

네트워크 장애 발생 시 원인 파악을 위해 사용하는 핵심 명령어입니다.

  • show : 라우터의 설정, 상태, 통계 등 정적인 정보를 확인합니다. 시스템에 부하를 거의 주지 않아 가장 일반적으로 사용됩니다. (예: show running-config, show interfaces, show version)
  • debug : 패킷의 흐름이나 프로토콜 동작 등 동적인 정보를 실시간으로 보여줍니다. 원인 파악에 강력하나, CPU에 큰 부하를 주므로 실제 운영 중인 네트워크에서는 신중하게 사용해야 합니다.
728x90

'네트워크' 카테고리의 다른 글

시스템 로그 관리 (Syslog)  (0) 2025.10.30
시스코 라우터와 IOS  (0) 2025.10.24
이더넷 LAN이란?  (0) 2025.09.29
컴퓨터 네트워크  (0) 2025.09.28

라우터를 이용하여 인터넷을 통해 다른 네트워크에 있는 정보에 접근할 수 있습니다. 라우터는 서로 다른 네트워크를 연결하며 데이터가 목적지까지 갈 수 있는 최적의 길을 찾는 역할도 합니다. 시스코(Cisco)의 라우터와 그 운영체제인 IOS에 대하여 글을 작성합니다.

라우터의 핵심 기능

라우터는 OSI 7계층 중 3계층(네트워크 계층)에서 동작하는 장비입니다. 그 이름처럼, 라우터의 가장 중요한 임무는 ‘라우팅(Routing)'이며, 라우팅이란 데이터 패킷을 목적지까지 가장 효율적인 경로로 전송하는 과정을 말합니다.

라우터의 기능은 두 가지로 나눌 수 있습니다.

  1. 경로 결정 (Path Determination) : 라우터는 ‘라우팅 테이블’이라는 지도책을 가지고 있습니다. 수신된 패킷의 목적지 IP 주소를 이 지도책에서 찾고, 어떤 경로(인터페이스)로 내보내야 할지 결정합니다. 라우터는 라우팅 프로토콜을 통해 주변 라우터와 정보를 교환하며 이 지도책을 항상 최신 상태로 유지합니다.
  2. 패킷 전달 (Packet Forwarding) : 경로가 결정되면, 해당 경로에 연결된 인터페이스로 패킷을 전달하는 물리적인 동작을 수행합니다.

라우터의 내부 구조

라우터는 특정 목적을 위해 만들어진 컴퓨터로 일반 PC와 마찬가지로 CPU, 메모리, 운영체제 등을 갖추고 있습니다.

  • CPU (Central Processing Unit) : 라우터의 두뇌 역할을 하며 모든 연산을 처리합니다.
  • RAM (Random Access Memory) : 실행 중인 운영체제(IOS)와 설정 파일(running-config), 라우팅 테이블 등을 저장하는 휘발성 메모리입니다. 전원이 꺼지면 내용이 사라집니다.
  • ROM (Read Only Memory) : 라우터의 부팅을 돕는 기본적인 프로그램(POST 등)이 저장된 비휘발성 메모리입니다.
  • NVRAM (Non-Volatile RAM) : 전원이 꺼져도 내용이 유지되는 비휘발성 메모리로, 라우터의 시작 설정 파일(startup-config)을 저장하는 중요한 공간입니다.
  • 플래시 메모리 (Flash Memory) : 라우터의 운영체제인 IOS 이미지가 저장되는 공간입니다. PC의 하드디스크나 SSD와 유사한 역할을 합니다.

시스코 IOS

시스코 IOS(Internetwork Operating System)는 시스코의 스위치와 라우터에서 사용되는 전용 운영체제입니다. 사용자는 주로 CLI(Command-Line Interface)라는 텍스트 기반의 명령줄 환경을 통해 IOS와 상호작용하며 라우터를 설정하고 관리합니다.

 

IOS에는 보안과 기능 구분을 위해 두 가지 주요 실행 모드가 있습니다.

  • 사용자 실행 모드 (User EXEC Mode) : 라우터에 처음 접속했을 때의 기본 모드입니다. 프롬프트가 Router> 형태로 표시되며, 라우터의 상태를 확인하는 등 제한적인 모니터링 기능만 수행할 수 있으며, 설정을 변경하는 것은 불가능합니다.
  • 특권 실행 모드 (Privileged EXEC Mode) : 라우터의 모든 설정을 변경하고 관리할 수 있는 관리자 모드입니다. 사용자 모드에서 enable 명령어를 입력하여 진입하며, 프롬프트가 Router# 형태로 바뀝니다. 보안을 위하여 이 모드로 진입할 때 암호를 설정하는 것이 일반적입니다.

부팅 과정

라우터의 전원을 켜면 다음과 같은 순서로 초기 시동 과정이 진행됩니다.

  1. POST (Power-On Self Test) 수행: 가장 먼저 하드웨어를 점검하여 CPU, 메모리 등의 이상 유무를 확인합니다.
  2. IOS 소프트웨어 로드: 플래시 메모리에서 운영체제인 IOS 이미지를 찾아 RAM으로 로드합니다.
  3. 설정 파일 적용: NVRAM에 저장된 시작 설정 파일(startup-config)을 찾아 RAM으로 가져와 현재 실행 설정(running-config)으로 적용합니다. 만약 NVRAM에 설정 파일이 없다면, 라우터는 최소한의 설정을 돕는 대화식 ‘셋업 모드(Setup Mode)’로 진입합니다.

기본 명령어와 기능

라우터를 관리하기 위한 몇 가지 필수적인 명령어입니다.

  • 도움말 기능 : IOS는 도움말 기능을 제공합니다. 명령어 입력 중 ? 키를 누르면 해당 위치에서 사용할 수 있는 명령어 목록이나 옵션을 보여줍니다.
  • 설정 파일 확인
    • show running-config : 현재 RAM에서 실행 중인 설정을 보여줍니다. 여기서 변경한 내용은 재부팅 시 사라집니다.
    • show startup-config : NVRAM에 저장된 다음 부팅 시 적용될 설정을 보여줍니다. running-config의 변경 사항을 영구적으로 저장하려면 이 startup-config에 덮어써야 합니다.
  • 기타 유용한 기능
    • 명령어 자동 완성 : 명령어의 일부만 입력하고 Tab 키를 누르면 나머지 부분이 자동으로 완성됩니다.
    • 명령어 히스토리 : 위/아래 방향키를 사용하여 이전에 입력했던 명령어를 다시 불러올 수 있습니다.

정리

라우터는 단순한 연결 장치가 아닌 자체적인 운영체제를 가진 컴퓨터입니다. 시스코 라우터와 IOS의 기본 구조, 실행 모드, 그리고 부팅 과정을 이해하는 것은 네트워크 관리에 도움이 됩니다. 사용자 모드와 특권 모드의 차이, 그리고 running-config startup-config의 개념은 라우터를 다루는 데 있어 가장 기초적이면서도 중요한 지식입니다.

 
728x90

'네트워크' 카테고리의 다른 글

시스템 로그 관리 (Syslog)  (0) 2025.10.30
시스코 라우터의 설정과 관리  (0) 2025.10.27
이더넷 LAN이란?  (0) 2025.09.29
컴퓨터 네트워크  (0) 2025.09.28

1. 스택이란?

스택은 데이터를 쌓아 올리는 형태의 자료구조입니다. 가장 중요한 특징은 LIFO (Last-In, First-Out), 우리말로 '후입선출'이라는 점입니다. 즉, "가장 나중에 들어온 데이터가 가장 먼저 나간다"는 규칙을 따릅니다.

 

이러한 특징으로 인해 스택의 모든 데이터 입출력은 꼭대기인 top에서만 이루어집니다.

  • push : 스택의 top에 새로운 데이터를 쌓는(삽입하는) 작업입니다.
  • pop : 스택의 top에서 데이터를 꺼내는(삭제하는) 작업입니다.

2. 스택의 구현

스택은 두 가지 방식으로 구현할 수 있으며 장단점이 뚜렷합니다.

  1. 배열을 이용한 구현 (순차 스택)
    배열을 사용하면 구현이 매우 간단하고 직관적입니다. top이라는 변수가 배열의 마지막 데이터 인덱스를 가리키도록 관리하면 됩니다. 하지만 처음에 정해놓은 배열의 크기를 넘어서면 데이터를 더 이상 저장할 수 없는 '오버플로우'가 발생한다는 한계가 있습니다.
  2. 연결 리스트를 이용한 구현 (연결 스택)
    연결 리스트로 구현하면 필요할 때마다 새로운 노드를 만들어 연결하므로, 메모리가 허용하는 한 계속해서 데이터를 저장할 수 있습니다. 크기 제한이 없는 '동적 스택'을 만들 수 있다는 것이 가장 큰 장점입니다.

3. 스택의 활용

스택의 LIFO 규칙은 컴퓨터 과학의 여러 문제를 해결하기 위해 사용됩니다.

  • 웹 브라우저의 뒤로 가기 : 우리가 방문한 페이지 주소를 순서대로 스택에 push합니다. '뒤로 가기' 버튼을 누르면 스택에서 pop하여 바로 이전 페이지로 돌아갈 수 있습니다.
  • 프로그램의 함수 호출 (시스템 스택) : main 함수가 A 함수를, A 함수가 B 함수를 호출하면, 컴퓨터는 main, A, B의 실행 정보를 순서대로 시스템 스택에 쌓습니다. B 함수가 끝나면 pop하여 A로, A가 끝나면 pop하여 main으로 돌아옵니다. LIFO 구조가 아니면 프로그램 실행 순서가 엉망이 될 것입니다.
  • 수식 계산 및 괄호 검사 : { ( [ ] ) } 와 같은 복잡한 수식의 괄호 짝이 맞는지 검사할 때 스택을 유용하게 사용할 수 있습니다. 여는 괄호를 만나면 push, 닫는 괄호를 만나면 pop해서 짝이 맞는지 확인하는 간단한 로직으로 해결할 수 있습니다. 또한, 컴퓨터가 수식을 계산하기 쉬운 '후위 표기법'으로 변환하고 계산하는 과정에서도 스택은 핵심적인 역할을 수행합니다.
728x90

'자료구조' 카테고리의 다른 글

연결 자료구조와 연결 리스트(2)  (0) 2025.10.22
연결 자료구조와 연결 리스트(1)  (0) 2025.10.21
순차 자료구조와 선형리스트  (0) 2025.10.20
C언어 문법  (0) 2025.09.26
알고리즘 기초  (0) 2025.09.26