Cisco 3850 Recovery in Rommon mode

boot 파라미터에는 보통 "flash:packages.conf"라는 파일을 참조하여 부팅되도록 설정되어 있다.

이번에 경험한 장애 내용은 스위치가 재 부팅되었는데

packages.conf의 파라미터 내용은 03.06.03E 버전으로 설정되어 있지만

실제 flash 안에 존재하는 pkg 파일 버전은 16.x 버전의 파일이 있어서 부팅이 안되는 상황이다.

정리해보자면

1. 장애상황
    a. packages.conf파일안에 파라미터값이 잘못되어 있음
    b. 스위치를 reload 하니 자동으로 rommon모드로 진입.
    c. 당연한 이야기지만 boot로 강제부팅해도 packages.conf파일을 참조하기 때문에 부팅이 계속 안됨

2. 해결방안
2-1. mgmt 인터페이스로 복구
mgmt포트는 100M 이더넷 포트이다. 이를 활성화 시키고 boot 경로를 TFTP로 하여 부팅 후 잘못된 파라미터를 정리한다
    a. Switch IP 설정
    switch: set IP_ADDR 192.168.0.1/255.255.255.0
    b. Default Gateway 설정
    switch: set DEFAULT_GATEWAY 192.168.0.1
    c. ping 테스트
    switch: ping 192.168.0.1 
    ping 192.168.0.1 with 32 bytes of data ...
    Host 192.168.0.1 is alive.
    d-1. TFTP를 이용하여 부팅
    switch: boot tftp://192.168.0.10/cat3k_caa-universalk9.SPA.03.02.02.SE.150-1.EX2.bin
    d-2. TFTP를 이용하여 응급 복구
    switch: emergency-install tftp://192.168.0.10/cat3k_caa-universalk9.SPA.03.02.02.SE.150-1.EX2.bin
    e. 복구후에 잘못된 boot 파라미터값을 수정해준다

2-2. usb를 이용하여 복구
기본적으로 TFTP와 동일하지만 USB를 직접 연결하여 복구하니 더 쉽고 빠르다
    a. usb연결 후 파일 확인
    switch: dir usbflash0:
    b. usb에 있는 bin 파일을 이용하여 부팅
    switch: boot usbflash0:cat3k_caa-universalk9.SPA.03.02.02.SE.150-1.EX2.bin

3. 총평
Rommon 모드에서 packages.conf 파일을 tftp 를 이용하여 교체할 수 있었으면 일이 간단했을 거다. 근데 flash 드라이브 권한이 Read-Only밖에 안되어서 어쩔 수 없이 이런 불편한 과정을 거쳐야 한다.
Rommon 모드에서 set 파라미터 값을 설정하는 패턴이 다양하게 있는데
예전에는 "IP_ADDR=192.168.0.1"이런 문법자체가 IOS-XE에서 바뀌는 바람에 Recovery과정에서 어려움을 겪었다.
Cisco는 왜 자꾸 와리가리하며 엔지니어들을 피곤하게 하는거지?
특별한 이유도 없는데 그냥 하던대로 하면 안되는 걸까?

댓글

이 블로그의 인기 게시물

ping 일반오류 (General failure)를 고쳐보자

Piolink TiFront Switch password recovery (파이오링크 스위치 비밀번호 초기화)

Windows 10. 공유폴더 쉽게 삭제하기 (feat. CMD)