검색 엔진의 방문이 늘어나고 있군...

Posted
Filed under 네트워크
1. 부팅 제어
  시스코 라우터는 아래의 4단계를 거쳐 부팅이 진행됩니다.
  1. POST(Power-On Self-Test)를 수행하여 하드웨어 점검.
  2. ROM 내의 부트스트랩 프로그램을 RAM으로 복사 후 실행.
  3. 부트스트랩 프로그램에서 로드할 IOS 이미지(또는 OS)를 결정 후 로드.
  4. IOS는 부트스트랩 프로그램으로부터 하드웨어 제어권을 받은 후 NVRAM에 있는 설정 파일을 RAM에 로드하여 running-config로 사용.
  1, 2단계는 관리자가 할 수 있는 것이 아무것도 없지만 3, 4단계는 설정 레지스터(Configuration Register)라는 16비트의 값을 변경하여 제어할 수 있으며 특히 4단계 과정을 바꾸는 것은 패스워드를 복구하는 과정과 관련이 있습니다. 설정 레지스터 값은 전역 설정 모드에서 config-register 명령어로 설정할 수 있습니다. 이 설정 값은 startup-config나 running-config 영역에 저장되는 것이 아니며 별도로 저장 명령어를 사용할 필요는 없습니다. show version 명령어를 사용하면 마지막 줄에서 현재 레지스터 값을 볼 수 있으며 다음 부팅 때 적용될 레지스터 값이 현재 값과 다르다면 그 값도 볼 수 있습니다.

  만약 부팅 시 3단계에서 IOS 이미지를 찾지 못하면 ROM에 저장된 OS를 로드합니다. 예전 시스코 라우터에는 RxBoot와 ROMMON이라는 2개의 OS가 같이 들어 있었지만 요즘 출시되는 라우터에는 두 기능이 통합되어 ROMMON만이 존재하므로 그에 맞춰 설명하겠습니다.

  먼저 3단계에서 IOS 이미지를 찾는 순서부터 알아보겠습니다. 시스코 라우터는 부팅 시 설정 레지스터의 마지막 4비트(=부트 필드)와 전역 설정 모드에서 실행하는 boot system 명령어를 통해 로드할 OS를 결정합니다. boot system 명령어로 플래시 메모리에 있는 IOS 이미지 파일명이나 파일명과 함께 IOS 이미지 파일이 있는 곳의 IP 주소를 지정할 수 있으며 여러 번 사용하여 여러 IOS 이미지 파일을 지정할 수 있습니다. 아래는 boot system 명령어의 사용법입니다.

boot system 명령어

  로드할 IOS 이미지를 결정하는 과정은 아래와 같습니다.
  1. 부트 필드가 0이면 ROMMON OS 로드.
  2. 부트 필드가 1이면 플래시 메모리에 있는 가장 낮은 번호의 IOS 이미지 파일 로드. 각 파일의 번호는 show flash 명령어를 통해 확인 가능.
  3. 부트 필드가 2~F면 startup-config 파일에 설정한 boot system 명령어를 순서대로 실행하여 지정한 IOS 이미지 파일들에 대한 로드를 차례대로 시도. 만약 전부 실패하면 플래시 메모리에 있는 가장 낮은 번호의 IOS 이미지 파일 로드.
  4. IOS 이미지 파일 로드에 실패하면 브로드캐스트를 보내 TFTP 서버를 찾아 IOS 이미지 파일명을 추측하고 로드. 그것도 실패하면 ROMMON OS 로드.
  대부분의 라우터는 3번 마지막 부분에 와서 IOS 이미지 파일을 찾는데 그 이유는 공장 출하 시 플래시 메모리에 하나의 IOS 이미지 파일이 있고 설정 레지스터는 0x2102로 되어 있으며 boot system 명령어는 설정되어 있지 않기 때문입니다.

2. 패스워드 복구
  중고 장비 구입, 인수인계 누락, 관리 소홀로 인해 라우터의 패스워드를 모르는 경우가 있을 수 있습니다. 이때는 각 라우터에 맞는 방법을 사용하여 패스워드를 초기화해야 합니다. 여기서는 ROMMON을 사용하여 복구하는 방법을 알아보겠습니다.

  먼저 ROMMON OS로 들어가야 하는데 그러기 위해서는 전원을 다시 올린 후 부팅 시 Ctrl+Break를 눌러야 합니다. ROMMON으로 진입했으면 패스워드 인증을 건너뛰기 위해 설정 레지스터 값을 바꿔야 하는데 이때 config-register가 아닌 confreg 명령어를 사용하여 레지스터 값을 '0x2142'로 변경합니다. 여기서 3번째 값인 '4'가 중요한데 이것은 부팅 시 NVRAM에 있는 설정을 읽지 않도록 만드는 값입니다. 이렇게 하면 부팅 시 설정을 읽어오지 않기 때문에 마치 새로 구입한 라우터처럼 패스워드 없이 Privileged Mode로 넘어갈 수 있습니다. 리부팅은 전원을 내릴 필요 없이 reset 명령어로 할 수 있습니다. 여기까지의 과정을 실제로 해보겠습니다.
ForgottenPassword>enable
Password:
Password:
Password:
% Bad secrets

ForgottenPassword>
-------------리부팅-------------
ForgottenPassword>System Bootstrap, Version 12.1(3r)T2, RELEASE SOFTWARE (fc1)
Copyright (c) 2000 by cisco Systems, Inc.
cisco 2811 (MPC860) processor (revision 0x200) with 60416K/5120K bytes of memory

Self decompressing the image :
###########
monitor: command "boot" aborted due to user interrupt
rommon 1 > confreg 0x2142
rommon 2 > reset
-------------리부팅-------------
         --- System Configuration Dialog ---

Continue with configuration dialog? [yes/no]: no


Press RETURN to get started!



Router>              <- 라우터 이름이 디폴트 이름으로 바꼈다.
  이제 Privileged Mode로 들어가서 패스워드를 원하는 것으로 재설정할 수 있는데 중요한 것은 그 전에 기존의 설정을 NVRAM에서 RAM으로 불러와야 한다는 겁니다. 만약 그러지 않고 패스워드만 설정한 후 NVRAM에 저장해버리면 라우터의 기존 설정들이 모두 덮어씌워질 겁니다. 그러므로 반드시 copy startup-config running-config 명령어로 NVRAM의 설정을 RAM으로 불러와 패스워드를 변경하도록 합니다. 그리고 config-register 명령어로 설정 레지스터의 값을 원래 값인 '2102'로 돌려줍니다. 패스워드 변경이 끝나면 copy running-config startup-config 명령어나 write 명령어로 설정을 NVRAM에 저장하고 reload 명령어로 리부팅을 합니다.
Router>enable
Router#copy startup-config running-config
ForgottenPassword#configure terminal
ForgottenPassword(config)#enable secret foobar
ForgottenPassword(config)#config-register 0x2102
ForgottenPassword(config)#exit
ForgottenPassword#copy running-config startup-config
Destination filename [startup-config]?
Building configuration...
[OK]
ForgottenPassword#reload


참고 도서: CCENT / CCNA ICND1 Official Exam Certification Guide
참고 자료 제공: 강사 김기태
2010/08/25 23:59 2010/08/25 23:59