소개
이 문서에서는 Cisco IOS AP(액세스 포인트)에서 보고된 플래시 손상 문제를 처리하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
Cisco에서는 다음에 대한 기본 지식을 갖춘 것을 권장합니다.
- AireOS WLC(Wireless LAN Controller)
- 경량형 AP
- Python 2.7(이상 없음)
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- Cisco Aironet 1040, 1140, 1250, 1260, 1600, 1700, 2600, 2700, 3500, 3600, 3700, 700, AP801 및 AP802 Series 실내 액세스 포인트
- Cisco Aironet 1520(1522, 1524), 1530, 1550(1552), 1570 및 Industrial Wireless 3700 Series 옥외 및 산업용 무선 액세스 포인트
참고: 플래시 HW 유형으로 인해 다른 AP 유형에 비해 1700/2700/3700 및 2600/3600과 같은 Wave1 AP 모델의 보급률이 훨씬 높습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
FN70330 - 플래시 손상 문제로 인해 Cisco IOS AP가 좌초되었으며, 정상 작동 중인 AP의 여러 소프트웨어 버그로 인해 일부 Cisco IOS AP의 플래시 파일 시스템이 시간이 지남에 따라 손상될 수 있습니다. 이는 특히 WLC로 업그레이드한 후에 확인되지만 반드시 이 시나리오에 국한되지는 않습니다.
AP가 작동하며 이 문제 상태에서 클라이언트를 서비스하며, 이는 쉽게 탐지할 수 없습니다.
솔루션
WLC 업그레이드 전 수정
네트워크에서 영향을 받는 AP를 식별하고 업그레이드 전에 문제를 해결하기 위해 WLAN 폴러를 실행해야 합니다.
주의: 업그레이드하기 전에 이 문서 전체를 읽으십시오.
WLAN 폴러 로직
스크립트가 실행될 때마다 AP 플래시에 액세스할 수 있는지 여부를 확인합니다.
액세스 가능한 경우 fsck flash 명령을 실행합니다.
모두 정상인 경우 다음 AP로 이동합니다.
- 그렇지 않으면 명령을 최대 4번 반복할 수 있습니다. 오류가 발생할 경우 스크립트는 이를 최종 보고서에 보고할 수 있으며 이 AP는 복구할 수 있습니다.
액세스할 수 없는 경우
- 이 스크립트는 최종 보고서에 AP에 플래그를 지정하며 이 AP는 복구할 수 있습니다.
액세스 가능한 경우 AP는 MD5 값에서 중요한 파일을 확인할 수 있습니다.
모든 값이 양호한 경우 다음 AP로 이동합니다.
- 그렇지 않으면 스크립트에서 최종 보고서에 이를 보고할 수 있으며 이 AP는 복구할 수 있습니다.
스크립트를 세 번 실행해야 합니다.
- 실행
- 스크립트는 AP의 모든 파일에 대한 MD5 체크섬 값을 기반으로 MD5 데이터베이스를 구축합니다. 특정 파일에 대한 최종 MD5 값은 WLC의 동일한 AP 제품군에 더 많은 히트가 발생한 값입니다.
- 실행
- 스크립트는 MD5 체크섬 값을 데이터베이스와 비교합니다. 값이 일치하면 파일이 정상이고, 일치하지 않으면 세 번째 실행에서 복구하기 위해 AP에 플래그가 지정됩니다.
- 실행
- 스크립트는 이전 두 단계 동안 플래그가 지정된 AP에 대해서만 명령 테스트 capwap 이미지 capwap을 트리거합니다.
참고: 이 복구 방법을 사용하면 이미지가 다운로드되고 설치되면 AP가 다시 로드됩니다. 유지 관리 창에서 실행해야 합니다.
WLAN 폴러 설치/준비
1. WLAN Poller 툴을 다운로드합니다.
참고: 이전 링크에서 WLAN Poller 툴의 최신 버전을 다운로드하는 경우 2단계와 3단계를 건너뛸 수 있습니다. 이 버전에서는 WLAN Poller 툴에 필요한 모든 구성 요소를 자동으로 설치할 수 있습니다. WLAN Poller의 이전 버전(.rar)이 있는 경우 다음 단계 2 및 3을 수행합니다.
2. WLAN Poller 파일을 저장할 특정 폴더로 파일을 이동합니다.
3. 스크립트 설치 방법에 대한 지침은 다음 링크를 참조하십시오.
Windows 10 시스템에 대한 단계별 가이드를 보려면 여기를 클릭하십시오.
MAC OS의 단계별 가이드를 보려면 여기를 클릭하십시오.
4. config.ini 파일을 준비합니다.
설치가 완료되고 파일이 생성되면 config.ini 파일을 편집해야 합니다.
WLC/AP 연결 모드 지정:
; config global mode for WLC and AP connection: "ssh" or "telnet"
mode: ssh
ap_mode: ssh
WLC/AP 자격 증명을 지정합니다.
; set global WLC credentials
wlc_user: <wlc_user>
wlc_pasw: <wlc_pasw>
; set global AP credentials
ap_user: <ap_user>
ap_pasw: <ap_pasw>
ap_enable: <ap_enable>
플래시 검사/복구의 경우 다음과 같은 옵션이 있습니다.
영향을 받는 AP 사용을 식별하려면
; ap file system checks (WARNING: recover can force Cisco IOS image download and AP reload)
ap_fs_check: True
ap_fs_recover: False
AP를 복구하려면 다음을 사용하십시오.
; ap file system checks (WARNING: recover can force Cisco IOS image download and AP reload)
ap_fs_check: True
ap_fs_recover: True
WLC 정보 지정
이 예에서 WLC 이름은 2504-WLC입니다. WLC 모니터 페이지에서 이 정보를 찾을 수 있습니다.
; WLC sections must be named as [WLC-<wlcname>]
[WLC-2504-Rafis]
active: True
ipaddr: <wlc-ip-addr>
여러 WLC를 추가할 수 있습니다. 이렇게 하려면 이전 구문을 새 WLC 정보와 함께 복사/붙여넣습니다.
참고: AP 목록을 지정할 필요가 없습니다. 스크립트는 WLC에서 AP를 선택합니다.
WLAN 폴러 실행
컨피그레이션 파일이 생성된 디렉토리에서(이전 섹션, 3단계). 다음 명령을 사용합니다wlanpoller --cli-logging.
스크립트가 완료되면 다음 요약이 제공됩니다.
============================================================
Summary
============================================================
Total APs : 1
Processed APs : 1
Failed APs : 0
============================================================
Errors
============================================================
AP MD5 checksum mismatch : 2
AP FSCK recover : 1
============================================================
참고: 영향을 받는 AP 수에 대한 정확한 정보를 얻으려면 스크립트를 2번 실행해야 합니다.
WLAN 폴러 출력
스크립트가 실행된 경로입니다. 이러한 파일이 생성됩니다.
- ap_md5_db.json: MD5 데이터베이스
- 폴더 로그
- WLAN Poller에 의한 모든 출력 표시를 터미널에 저장합니다.
- 폴더 데이터
- 보고서는 <year> / <month> / <day>와 같은 경로로 나뉩니다.
파일: <timestamp>_ap_fs.csv - AP에서 실행된 검사 및 그 결과의 요약
열 설명
- ap_name: AP의 이름입니다.
- ap_type: AP 모델.
- ap_uptime: AP의 가동 시간(일).
- ap_ios_ver: Cisco IOS 버전.
- fs_free_bytes: 플래시 파일 시스템의 사용 가능한 바이트 수입니다.
- flash_issue: 플래시 손상이 관찰된 경우 True입니다.
- fs_zero_size: 플래시 정지가 "-" - (show file system - command)를 표시하는 파일 시스템을 탐지한 경우 True입니다.
- fsck_fail: 파일 시스템 검사가 실패한 경우 True입니다. -(fsck 플래시: - 명령).
- fsck_busy: 가 플래시 fsck를 수행하는 경우 실제 디바이스 또는 리소스가 사용 중입니다.
- fsck_recovered: fsck에서 오류가 발생했지만 다음 fsck에서 수정되는 경우 True입니다.
- fsck_attempts: fsck의 AP 복구 시도 횟수(최대 4회).
- md5_fail: md5 하나 이상의 파일이 데이터베이스에 저장된 파일과 다른 경우 true입니다.
- rcv_trigger: 문제가 감지되고 복구가 활성화된 경우 AP가 WLC에서 이미지를 다운로드하려고 할 때 True입니다.
파일: <timestamp>_ap_md5.csv 모든 파일(모든 AP)의 MD5 체크섬 값에 대한 세부 정보입니다.
열 설명
- ap_name: AP의 이름입니다.
- ap_type: AP 모델.
- ap_uptime: AP의 가동 시간(일).
- filename: Cisco IOS 이미지 파일 이름.
- md5_hash: 파일 이름에 대한 md5 값입니다.
- is_good: true md5 값이 db에 저장된 값과 일치합니다. 이 파일에 대해 잘못된 md5 불일치가 관찰되었습니다.
- is_zero_bytes: 파일 이름에 md5checksum을 기준으로 0바이트가 있어 파일이 잘못된 경우 True입니다.
- md5_error: 파일 이름에 대한 md5를 가져올 수 없는 경우 md5 값을 검색하는 동안 오류가 발생했습니다.
참고: WLAN Poller 복구 스크립트에서 특정 AP를 복구할 수 없고 해당 AP가 보고서에서 실패한 것으로 플래그가 지정된 상태로 남아 있는 경우가 있습니다. 이러한 시나리오에서는 텔넷/SSH/콘솔을 통해 AP CLI로 수동 AP 복구를 수행하는 것이 좋습니다. 이 프로세스에 도움이 필요한 경우 TAC SR을 여십시오. WLAN Poller에서 생성된 모든 출력을 케이스에 연결합니다.
고립된 AP
SSH/텔넷 연결인 경우
다음 단계를 수행하여 AP를 복구할 수 있습니다.
AP# debug capwap console cli
AP# debug capwap client no-reload
- 성공하면 flash를 포맷한 다음 다른 단계를 계속할 수 있습니다.
AP# format flash:
- 복구 이미지를 로드합니다. 여기서 복구 이미지를 찾을 수 있습니다.
archive download-sw /overwrite tftp://<IP address>/<file name>
- 다음 단계로 진행하려면 로드된 복구 이미지에서 MD5를 확인합니다.
AP# verify /md5 flash:/<image directory>/<image file>
CLI 값과 Cisco 웹 페이지의 값을 비교할 수 있습니다.
- 새로 다운로드한 복구 이미지로 부팅 변수를 설정합니다.
AP#show boot
AP(config)#boot system flash:/RCV/RCV-image
AP Rommon 상태인 경우
부트 명령에서 이전 명령과 동일한 시도를 할 수 있습니다. 사용할 수 있는 명령은 다음과 같습니다.
ap: tftp_init
ap: ether_init
ap: flash_init
ap: format flash:
ap: set IP_ADDR <IP Address>
ap: set NETMASK <mask>
ap: set DEFAULT_ROUTER < default router >
ap: tar -xtract tftp://<IP address>/<file name> flash:
ap: set BOOT flash:/<file name>
ap: boot
SSH/텔넷을 사용할 수 없음
바운스 스위치 포트는 몇 번, 도움이 되는지 확인합니다.
Windows 10에 WLAN 폴러를 설치하는 단계별 가이드
참고: 최신 버전의 WLAN Poller 툴을 다운로드하는 경우 이 섹션을 건너뛸 수 있습니다.
- 이 링크에서 Python 2.7.14를 다운로드하여 설치합니다.
- 이 링크에서 Windows 클라이언트용 Python용 C++ 컴파일러를 다운로드하여 설치합니다.
- 설치가 완료되면 제어판의 시스템 설정으로 이동하여 고급 시스템 설정을 선택합니다(모든 Windows 터미널이 닫혀 있는지 확인).
- 팝업되는 창에서 환경 변수를 선택합니다.
- 여기서 시스템 변수에서 Path 변수를 선택하고 Edit를 클릭합니다.
- 이 창에서 랩톱의 명령줄에서 python 명령을 인식하도록 Python 2.7.14.0을 설치한 기본 디렉토리와 C:\<Base directory>\Scripts에 경로를 추가합니다. New(새로 만들기)를 클릭하고 경로를 수동으로 추가합니다.
모든 설정 창을 닫고 터미널(명령 프롬프트)이 열려 있으면 닫습니다.
- pip가 설치되어 있는지 확인하고 새 터미널을 열고 pip —version을 입력합니다.
다른 옵션은 C:\Python27\Scripts 폴더에 pip 또는 pip2 또는 pip2.7이라는 파일이 있는지 확인하는 것입니다.
- 모든 것이 정상인 경우 8단계의 업그레이드 pip 섹션으로 이동합니다.
- 오류가 발생하거나 폴더/파일이 계속 읽혀지지 않는 경우
pip 설치
- 터미널을 닫고 다음 링크에서 pip를 설치합니다.
- get-pip.py 파일을 다운로드하고 저장합니다. 웹 사이트에서 다음을 찾아보십시오.
- get-pip-py 파일을 C:\Python27 폴더에 복사합니다.
참고: 웹 사이트에서 내용을 복사하여 붙여 넣으면 해당 웹 사이트의 확장명이 py.txt가 아닌지 확인하고 C:\Python27 폴더에 dir을 입력합니다. 이 경우 터미널에서 파일 이름을 바꿉니다.
다음 명령을 사용하여 파일 이름을 바꿉니다.
- 동일한 폴더 C:\Python27에서 python get-pip.py를 실행합니다.
- 다음 명령을 사용하여 PIP를 최신 버전으로 업그레이드합니다. pip install —upgrade pip.
- 이전 단계에서는 필요한 모든 패킷을 설치할 수 있습니다. 이제 Windows용 명령줄을 열고 .tar.gz WLAN Poller 파일을 저장한 디렉토리로 이동합니다(사용: cd <Path to directory>).
- pip install wlanpoller-0.7.1.dev90_md5rcv.tar.gz 명령을 사용하여 스크립트를 설치합니다.
- 모든 WLAN 폴러 정보를 저장할 새 디렉토리를 만듭니다.
- 명령줄에서 해당 디렉토리로 이동한 다음 wlanpoller —generate-configs 명령을 실행하여 스크립트가 실행되는 데 필요한 설정 변수 및 구성 파일을 생성합니다.
config.ini 파일을 계속 사용하려면 여기를 클릭하십시오.
MacBook에 WLAN Poller를 설치하는 단계별 가이드
참고: 최신 버전의 WLAN Poller 툴을 다운로드하는 경우 이 섹션을 건너뛸 수 있습니다.
MAC OS에 파이썬이 이미 설치되어 있습니다. 나머지 패킷을 설치하려면 다음 단계를 수행합니다.
- WLAN Poller file: cd <path>가 있는 폴더로 이동합니다.
- 이 명령을 실행하면 sudo pip install wlanpoller-<version>.tar.gz가 실행됩니다. 이를 위해 sudo 비밀번호(MACBook 관리자 비밀번호)가 필요합니다.
- 새 디렉토리를 만들어 스크립트에서 만들 수 있는 모든 파일을 구성합니다.
- mkdir <디렉터리 이름>
- cd <디렉터리 이름>
- 스크립트가 스크립트를 실행하는 데 필요한 모든 디렉토리/파일을 준비하도록 다음 명령을 실행합니다. wlanpoller —generate-configs.
config.ini 파일을 계속 사용하려면 여기를 클릭하십시오.
WLAN 폴러 제한 사항
- WLAN 폴러는 Windows 10 64비트 시스템과 Apple MacBook 버전 10.11 이상에서만 지원을 테스트합니다.
- 최신 버전의 WLANPoller 도구를 사용하지 않는 경우, 이전 버전에서는 Python 2.7 버전만 지원됩니다.
- AP 이름에 다음 오류와 같은 특수 문자가 있을 경우 스크립트를 실행하는 동안 다음 오류가 표시됩니다.
- 문제를 해결하려면 사용자가 수동으로 AP 이름에서 특수 문자를 제거해야 합니다.
관련 정보