UniFi - 유용한 디버깅 정보를 확인하기 위한 방법

download at 2017-03-26T00:01:46Z origin

Overview


이 문서는 유용한 디버깅 정보를 확인하는 몇가지 방법에 대하여 서술합니다.

미리 고지하면, 문제가 있을 경우, 그리고 이 방법을 사용하는 경우는 커뮤니티의 스레드부터 시작하는 것을 권장하며, 또한 기존의 스레드에 코멘트를 입력해주십시오. 원격 로깅을 구성하려고 한다면, UBNT-Cody, UBNT-BenBuckley, UBNT-jeff, UBNT-Brandon 를 멘션해주십시오.

원격 로깅

동기


디버깅을 위해 가장 먼저 요구되는 것중 하나는 'cat /var/log/messages` 또는 'dmesg' 의 결과입니다. 일부의 경우에는 모든 메시지가 SSH 세션을 통해서 사용자에게 전달되지 않을수도 있습니다. 다른 일반적인 경우는 문제가 발생하였을 때 적절히 로깅이 이루어지지 않은 것입니다. 그러므로, 결과를 확인할 수 없고, AP가 재부팅하면서 메시지를 소실하게 됩니다. 가장 쉬운 방법은 원격 로그 서버를 사용하는 것입니다.

추가적으로 리부팅으로 인한 정보를 확인하고 싶다면, 원격 서버에서 로그파일을 공유하는 과정을 통해 간단히 수행할 수 있습니다.

환경설정 단계


*UAP 펌웨어 버전 3.7.18 이후:* SSH로 장비에 접근하여 다음 명령어를 수행합니다:

setup-netconsole

*UAP 펌웨어 버전 3.7.17 이후:* netconsole로 접근하여 다음 명령어를 수행합니다:

insmod netconsole netconsole=1234@<IP addr of AP>/eth0,514@96.86.206.114/<MAC addr of your router>
NOTE: 1234는 더미 포트번호이고, 번호는 어떤 것이든 될 수 있습니다.
NOTE: MAC 주소는 콜론 문자를 다음과 같이 포함해야합니다. XX:XX:XX:XX:XX:XX

netconsole을 재부팅 이후에도 유지하고 싶다면, 다음을 수행합니다:

touch /etc/persistent/profile
echo "<netconsole command from above" > /etc/persistent/profile
syswrapper.sh save-config

명령어를 수행하여 원격 로거를 유지하더라도, SSH로 AP에 접근하여 초기화하는 과정이 필요합니다. 그러므로 모든 재부팅 이후 SSH로 AP에 접근하여 로깅을 다시 시작할 수 있도록 해야합니다.

netconsole을 활성화하고, 유지하려면 다음을 수행합니다:

rm /etc/persistent/profile
syswrapper.sh save-config

일러두기


netconsole을 활성화 한 이후에는, 이 사실을 주시할 수 있도록 로그를 개방할 수 있습니다. 퍼블릭 IP 주소를 기억하여 로그 메시지가 어디서 도착하는지 알아야합니다. 이는 로그 파일이 서버에서 어떤 파일인지 구별할 수 있도록 해야하기 때문입니다.

이 과정은 이제 퍼블릭하게 공개되었기때문에 많은량의 로그가 쌓이게 됩니다. 이 기능을 분별력 있게 사용하여 무언가를 디버깅하거나 의사소통 할 때 유용하도록 하십시오.

최소 지원 펌웨어 버전


Netconsole 은 최신의 펌웨어 버전에서만 지원하고 있습니다. 아래의 최소 지원 버전을 확인하십시오.

  • Version 3.7.9 은 netconsole을 지원하며, UAP-In Wall은 지원하지 않습니다.
  • Version 3.7.10 에서부터 UAP-In Wall 에 기능이 추가되었습니다.

AP에서 네트워크 트래픽 캡쳐하기

동기


무선에서 무슨일이 일어나는지 와이어샤크를 통해서 캡쳐하는것은 매우 도움이 됩니다. 그렇지만 종종 무선에서 수행되고 난 이후의 트래픽을 확인하는 작업도 필요합니다. 데이터를 캡쳐하는 것은 고통스러운 일이지만, 이 방법을 통해서 많은 도움을 얻을 수 있을것입니다.

트래픽 캡쳐를 위해서 tcpdump를 사용하기


AP의 아무 인터페이스에서 트래픽을 캡쳐할 수 있습니다:

tcpdump -i <iface i.e. br0 or athX> -w /tmp/<descriptivefilename.pcapng>

athX는 AP에서 브로드캐스트 되는 SSID를 의미하며, SSH를 통해 AP에 접근하여 iwconfig를 수행할 수 있습니다.

이 방법은 눈에 띄는 단점이 존재하며 파일이 AP에 저장된다는 점입니다. 이는 오래 구동할 경우, 많은 량의 메모리를 소모하고 또한 파일을 필요할 때마다 전송해야한다는 불편한 점이 있습니다. 위의 명령어를 SSH 세션을 통해서 AP 내부가 아니라 여러분의 컴퓨터에 저장할 수 있도록 할 수 있습니다:

ssh <user>@<ip of AP> 'tcpdump -i <iface> src not <ip of computer> and dst not <ip of computer> -w -' > <descriptivefilename.pcapng>

src not과 dst not 조건은 중요합니다. 왜냐하면 이 둘은 SSH 트래픽이 컴퓨터와 AP 사이에서 너무 과부하 되지 않도록 하기 때문입니다.

이 명령어를 수행하여 많은 인터페이스에서 도착하는 트래픽을 캡쳐할 수 있습니다.

관련 문서


맨위로 가기

SSH를 사용하여 커넥션을 생성하는 방법

UniFi - UAP에서의 간헐적인 연결 이슈 디버깅하기