자격증/CCNA

[IP 라우팅] - 1. Cisco IOS 명령어

arsenic-dev 2025. 9. 3. 21:24

▶ Router

  • Fa: Fast Ethernet, (e.g., Fa0/0: Fast Ethernet 0번 슬롯의 0번 포트) -> Ethernet 프로토콜 지원 장치
  • S: Serial (e.g., S1/3: Serial 1번 슬롯의 3번 포트) -> HDLC, PPP, Frame-Relay 프로토콜 지원 장치
  • CONSOLE: PC에서 라우터를 접속할 때 쓰는 포트로, 네트워크 통신 용도가 아닌 관리용 포트이다.
    • 네트워크 연결 전 라우터 최초 설정시 주로 사용한다.

 

S 1/1과 같은 포트, 즉 인터페이스마다 IP를 설정해야 하기에 네트워크 장비들을 볼 때 인터페이스의 이름을 볼 수 있어야 한다.

위 그림에선 Fa0/0, Fa0/1, S1/0, S1/1, S1/2, S/3 이렇게 6개의 인터페이스가 존재한다.

 

라우터의 전원을 껐다키면 Cisco 운영체제를 메모리에 로딩한다.

이때 로딩이란 보조 기억장치에 있는 프로그램이나 데이터를 메모리(DRAM)로 불러와 실행될 수 있게 하는 과정을 말한다.

 

※ ETHERNET에서 10/100은 요즘엔 거의 볼 일이 없지만, 10 메가/100 메가를 지원한다는 의미이다. 즉, 10 메가끼리 연결하면 10 메가로 동작하고 100 메가끼리 연결하면 100 메가로 동작한다는 의미이다. 이때, 10 메가와 100 메가를 연결하면 10 메가로 다운그레이드되어 동작하며, 10/100은 100 메가까지 지원되기에 Fast Ethernet Interface 라고 한다.

 

1. 명령 프롬프트 모드

Router>                     User Mode: 라우터 접속 초기 프롬프트(명령어가 제한되어 있음)
                            - privilege level is 1

Router>enable

Router#                     Privilege Exec Mode: 관리자 실행 모드(모든 명령어 가능함)
                            - privilege level is 15 

                            - show: 정적 정보 확인 (결과)
                            - debug: 동적 정보 확인 (과정)
                            - copy: 저장, 복사
                            - erase, delete: 삭제
                            - reload: 재부팅
                            - ping: ping 테스트
                            - telnet: 텔넷 접속
                            
Router#conf t
                                
Router(config)#            Global Configration Mode: 전체 설정 모드(라우터 환경 설정이 가능함)
                            - conf t = configure terminal

 

 

이때, privilege level 범위는 0 ~ 15이며, "show privilege" 명령어로 현재 privilege level을 확인할 수 있다.

"show user" 명령어를 통해선 현재 라우터에 누가, 어떤 방법으로 접속했는지 실시간으로 확인이 가능하다.

 

※ 라우터는 명령어 대소문자를 구별하지 않는다.

 

▶ 라우터 명령어 사용시, 전부 입력하지는 않아도 됨

 

앞글자만 기억나면 기억나는 문자까지 입력 후 '?'를 입력해주면 해당 문자로 시작하는 명령어들이, 특정 명령어 뒤에 '?'를 입력해주면 해당 명령어 뒤에 나올 수 있는 명령어들 나온다. 혹은 앞글자만 작성 후 "Tab"을 누르면 명령어가 자동 완성됨을 확인할 수 있다. 예를 들어, "en + Tab"을 해주면 "enable"로 명령어가 자동 완성됨을 확인 할 수 있다.

 

그리고 그냥 '?' 입력시, 바로 도움말이 나온다. 이때, enter하면 한 줄씩 더 볼 수 있고, 스페이스바를 누르면 한 페이지씩, esc를 누르면 도움말에서 빠져나올 수 있다.

 

▶ <cr>: carriage return, 뒤에 명령어 더이상 오지 않고 enter 해도 된다는 의미

 

▶ show ip interface brief: ip가 설정되는 인터페이스의 정보를 간략하게 보여달라는 의미

 

▶ 대표적인 3종 에러 메시지(오타, 명령어 축약 넘 심함, 완성되지 않은 명령어)

 

 
 

단축키 메뉴얼

 

커서 맨 앞으로 이동: ctrl + a

커서 맨 뒤로 이동: ctrl + e

커서 앞에 있는 거 싹 지움: ctrl + x

 

관리자 모드로 나가기: ctrl + z, end 명령어

한 단계 전으로 나가기: exit 명령어

명령 입력 취소: ctrl + c

 

▶ show version: 현재 라우터 제품 사양 볼 수 있음

  • Cisco 운영체제: Cisco IOS
  • 라우터 시리얼 번호(제품 번호, 메인 보드 시리얼 넘버)는 어떻게 되는가? JAD05190MTZ
  • DRAM(메모리)의 용량은 얼마인가요? 253,952 KB + 8192 KB = 262,144 KB = 256 MB (1 MB = 1024 KB)

 

※ 1 KB = 1024 B, 1 MB = 1024 KB, 1 GB = 1024 MB, 1 TB = 1024 GB

 

▶ show flash: flash memory 볼 수 있음

  • c2600-i-mz.122-28.bin: Cisco IOS 이미지 파일

 

라우터 부팅시, flash memory에 있는 Cisco IOS 이미지 파일을 압축 해제하여 memory에 올린다.

 

※ show version -> show flash -> show ip int bri: 제품 사양, 모양새 이 세 가지 정보 확인을 먼저 해야 좋다.

 

2. 라우터 호스트 네임 설정

Router(config)#hostname ABC
ABC(config)#
ABC(config)#no hostname ABC // "no" 명령어로 설정을 삭제할 수 있음 (삭제시 기본값인 Router로 설정)
Router(config)#
Router(config)#hostname HQ
HQ(config)#
HQ(config)#hostname R1      // 덮어쓰기로 이름을 변경할 수 있음
R1(config)#end
R1#
R1#show run

 

※ 기존에 실행했던 명령어들은 cashing 되어있기 때문에, 방향키 '↑'를 누르면 이전에 실행했던 명령어들이 나온다.

 

3. RAM & NVRAM

1) RAM

  • 라우터가 동작하기 위해서 사용하는 메모리로, 라우터 설정 내용이 "running-config" 파일에 저장됨
  • RAM에 저장된 내용들은 라우터가 재부팅되면 초기화되기 때문에 "running-config" 내용도 초기화됨
  • 정보 확인 명령어: show running-confing = show run

 

show run: 지금 메모리(RAM, 휘발성 메모리)에 올라와서 장비가 실제로 동작 중인 설정을 보여준다.

 

2) NVRAM

  • RAM의 "running-config" 파일을 "startup-config" 파일로 저장하여 보관하는 메모리
  • 라우터가 부팅될 때 NVRAM을 확인하여 "startup-config" 설정 내용을 RAM "runing-config"로 복원시킴
  • NVRAM에 저장된 파일들은 라우터가 재부팅되어도 유지됨
  • 정보 확인 명령어: show startup-config = show start

 

show start: NVRAM(비휘발성 메모리)에 저장된, 다음번 부팅 때 불러올 시작 설정을 보여준다.

 

3) RAM "running-config"를 NVRAM "startup-config"로 저장하는 명령어

: copy running-config startup-config = copy run start

 

running-config는 startup-config에서 불러오거나, 없으면 IOS가 기본값으로 자동 초기화하기에 RAM에 항상 존재한다.

이때, startup-config 파일은 running-config 파일과 달리, 자동으로 생성되지 않고, 명령어를 통해 직접 생성해야 한다.

 

4) NVRAM "startup-config" 삭제 명령어

: erase startup-config = erase start

 

라우터를 초기화하려면, NVRAM에 저장된 "startup-config" 파일을 삭제하고 재부팅(reload)해야 한다.

 

4. 라우터 설정 환경 구성

Router>enable
Router#conf t
Router(config)#hostname R1
R1(config)#
R1(config)#no ip domain-lookup     //관리자 모드에서 문자 입력시 DNS 요청 실시 X
R1(config)#
R1(config)#line con 0              // 라우터의 console 포트 0번으로 접속
R1(config-line)#exec-timeout 30 30 //30분 30초 동안 입력이 없으면, 콘솔 종료 (idle timeout)
R1(config)#
R1(config-line)#exec-timeout 0 0   //0분 0초로 설정하면, 자동으로 콘솔 종료 X (보안상 위험)
R1(config-line)#
R1(config-line)#logg syn           //콘솔 작업시 명령어 및 출력 내용에 대한 라인 정리
R1(config-line)#end
R1#
R1#show run

 

▶ 관리자 모드에서 오타 입력시, 브로드캐스트하여 DNS 서버를 찾는 동작을 하기에 1분 동안 대기 발생

 

Cisco 장비들은 관리자 모드에서 IP 입력시, 해당 IP 주소로 Telnet을 접속하는 동작을 한다.

 

때문에 오타 입력시, 오타를 어떤 IP에 대한 domain 이름으로 생각하고 DNS 서버를 찾기 위해 브로드캐스트로 DNS 요청을 보내고,  이렇게 오타 입력시 시간이 소요되는 불필요한 동작을 하지 않기 위해 "no ip domain-lookup" 명령어를 입력할 수 있다.

 

※ R1#123.120.2.12 // telnet 123.120.2.12

 

※ idle timeout: 5분, 10분 등 특정 시간 동안 콘솔 입력 없으면 자동으로 로그아웃 됨

 

5. 라우터 패스워드 설정 및 패스워드 문자 암호화 실시

R1#conf t
R1(config)#
R1(config)#enable secret cisco -> User 모드에서 관리자 모드로 전환할 때 패스워드 요구 (R1# 들어갈 때)
R1(config)#
R1(config)#line con 0
R1(config-line)#password ciscocon -> 콘솔을 접속할 때 패스워드 요구 (R1> 들어갈 때)
R1(config-line)#login
R1(config-line)#
R1(config-line)#line vty 0 4 -> Telnet, SSH와 같은 원격 터미널로 접속할 때 패스워드 요구 (가상 터미널 라인 0 ~ 4번 -> 총 5개 세션 동시에 원격 접속할 수 있다는 의미)
R1(config-line)#password ciscovty
R1(config-line)#login
R1(config-line)#end
R1#
R1#show run //"enable secret cisco"를 통해 설정한 비번인 "cisco"는 해시 알고리즘으로 암호화되어 출력 (해시값), 다른 패스워드는 평문 그대로 출력
R1#conf t
R1(config)#service password-encryption // show run시, 다른 패스워스들도 암호화되어 출력 (but, 해시값이 아닌, 단순 치환 암호)

 

이때, line vty 0 4인 이유는 Cisco IOS 초창기 버전이 최대 5개여서 현재 기본값이 5개이기 때문이다.

 

※ 치환 암호 복호화는 매우 쉽다.

 

https://lastbit.com/pswcalc.asp: 비밀번호를 길이, 특수문자 삽입 등에 따라 대입 공격으로 알아내는 데 걸리는 시간 계산

https://www.security.org/how-secure-is-my-password/: 비밀번호를 대입 공격으로 알아내는 데 걸리는 시간 계산

 

7. FastEthernet 0/0 인터페이스 설정

▶ R1# show ip int brief

  • Status: Layer 1계층 상태로, 전기 신호 교환 가능 여부를 나타낸다.
  • Protocol: Layer 2계층 상태로, Ethernet Protocol로 데이터 전송 가능 여부를 나타낸다.

 

이때, "status"가 "administratively down"이라는 것은 인터페이스가 닫혀 있다는 의미이다. (shutdown)

 

R1#conf t
R1(config)#int fa0/0 
R1(config-if)#ip address 13.13.10.1 255.255.255.0 //장치마다 다르지만 현재 장치에선 prefix 마스크가 아닌 서브넷 마스크로 설정
R1(config-if)#no shutdown
R1(config-if)#end
R1#
R1#show run
R1#show ip int brief

 

 

이때, Method가 manual이라는 것은 ip 설정을 수동으로 직접 했다는 의미이다.

 

기타 명령어

  • ip address 잘못 설정 시, "no ip address" 명령어를 통해 삭제 가능
  • show int fa0/0: fa0/0에 대해 더 자세히 볼 수 있음

 

▶ R1 F0/0, S1/0 "no shutdown" 결과

 

스위치 포트는 Layer 1계층에서 기본적으로 열려 있기에 케이블 꽂으면 바로 링크 업되지만,

라우터 포트는 기본적으로 "shutdown"이라 "no shutdown" 해야 열린다.

 

때문에, F0/0 "no shutdown" 결과 스위치와 바로 연결되지만, 

S1/0의 경우, R2의 S1/1이 "no shutdown"이 되지 않았기 때문에 불이 안 들어오는 것이다.

 

 

위와 같이 Layer 2계층까지 up되면, 라우터는  설정된 ip와 마스크를 보고 라우팅 테이블 connected(C)라는 경로를 자동 등록시켜 준다. 그래서 위 명령어를 해석하면 목적지가 13.13.10.0이면 Fa0/0 쪽 네트워크다라는 뜻이다.

 

PC에도 라우팅 테이블이 존재하여 "netstat -r" 명령어를 통해 Route Table 확인이 가능하다.

 

▶ 라우터에서 응답 받으면 '!'로 표시 '.'은 요청 실패라는 표시 (기본적으로 요청은 5개 보냄)

 

위를 보면, 첫 번째 요청시 요청을 실패하지만, 두 번째 ping 요청부턴 실패가 없다.

 

첫 번째 요청 시 맨 처음에 요청 실패되는 이유는 Ethernet 환경에선 MAC address 가지고 데이터 전송을 하는데,

처음엔 MAC 주소 모르니 ARP 브로드캐스트 요청해서 응답을 받는다. 그래서 처음엔 실패하는 것이다.

 

 

즉, 목적지 mac 어드레스 설정 불가하기에 실패한 것이고,

그 후엔 ARP 테이블(IP <-> MAC 주소 매핑 정보)에 학습했으니 실패 하지 않는 것이다.

 

▶ A PC에서 R1으로 원격 접속한 모습 (네트워크로 연결)

 

▶ show user 명령어를 통해 R1 라우터에 con 0번과 vty 0번을 통해 현재 접속되어 있음을 알 수 있음.

 

※ '*' 표시는 현재 나를 지칭한다.

 

8. Serial 1/0 인터페이스 설정

R1#conf t
R1(config)#int s1/0 //R2(config)#int s1/1
R1(config-if)#ip address 13.13.12.1 255.255.255.0 // R2(config-if)#ip address 13.13.12.2 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#end
R1#
R1#show run
R1#show ip int brief
R1#show ip route
R1#ping 13.13.12.2 // R2#ping13.13.12.1

 

▶ 5개의 네트워크를 각각 연결 성공

 

▶ A PC에서 F PC로 ping을 보낸 결과 gateway로부터 도달 불가 메시지 받음

 

그 이유는 13.13.30.3에 대한 경로가 라우팅 테이블에 없기 때문이다.

 

▶ R1 라우터에 13.13.30.3으로 패킷을 보내기 위한 경로가 없음

L2 문제인가 L3문제인가?

 

gateway에서 도달 불가하다는 메시지를 정상적으로 받았기 때문에 같은 네트워크 상에서는 문제가 없다. (L2 문제 X)

즉, 같은 네트워크끼린 통신이 가능하나, 다른 네트워크론 아직 전송이 불가한 것이다. (L3 문제 O)

 

en 
conf t
no ip domain-lookup
enable secre cisco
!
line con 0
  exec-timeout 0 0
  logg syn
  password ciscocon
  login
!
line vty 0 4
  password ciscovty
  login
!
int fa0/0
  ip address 13.13.10.1 255.255.255.0
  no shutdown
!
int s1/0
  ip address 13.13.12.1 255.255.255.0
  no shutdown
  end
!

 

네트워크 장비 설정은 편집기로 configuration 만들고 붙여넣기 하는 방식으로 이루어지며,

붙여넣기도 직접 하러 가기 귀찮으니, SDN이나 Ansible 같은 자동화 도구를 이용해 코드로 작성한 설정이 장비에 들어가도록 한다.

 

이러한 방식을 Infra Structure as Code(IaC)라고 하며, 코드를 사용하여 인프라를 만든다는 의미이다.

 

※ Cisco에서는 '!'를 엔터처리 및 비슷한 명령어끼리 묶고, 구분하는 용도로 사용한다.

 

※ 명령어 형식에서 붙여넣기 할 때는 ctrl+v가 아닌 shift+Insert 사용

 

▶ 2021년 10월 KT 인터넷 장애 사건: 한 대의 장비에서 한 개의 명령어가 enter 처리가 되지 않아 발생한 사건

  • -> '!' 매우 중요

 


참고자료

https://namu.wiki/w/2021년%2010월%20KT%20인터넷%20장애%20사건

 

2021년 10월 KT 인터넷 장애 사건

MBC NEWS 보도 2021년 10월 25일 오전 11시 16분경부터 오후 12시 45분까지 KT 통신

namu.wiki

'자격증 > CCNA' 카테고리의 다른 글

[TCP/IP] - 7. 서브넷팅&주소 요약  (2) 2025.08.27
[TCP/IP] - 6. IP 주소 특징  (6) 2025.08.04
[TCP/IP] - 5. 와이어샤크 필터  (3) 2025.07.29
[TCP/IP] - 4. 데이터 전송 프로토콜  (6) 2025.07.24
[TCP/IP] - 3. TCP&UDP 서비스  (0) 2025.07.16