본문 바로가기
네트워크 (LAN,WAN)

네트워크 트러블슈팅 도구

by 날으는물고기 2009. 6. 1.

네트워크 트러블슈팅 도구

1. 호스트 설정

    a. ps
        개별 프로세스를 빠르게 보여주지만 시스템 상태의 모든 것을 정확하게 보여주는 것은 아니다.
        ps가 보여주지 않는다고 해서 그런 서비스가 가동되지 않고 있다는 의미가 아니다.
        단지 지금 동작 중인 프로세스가 없다는 것 뿐이다.

        * 같은 PPID를 가지는 프로세스를 지켜봄으로써 프로세스를 지나치게 많이 생성해내는
           불량 프로세스를 구분해 낼 수도 있다.

   
 b. top
        CPU 사용량이 많은 순서대로 정렬된 프로세스 목록을 주기적으로 갱신하면서 보여준다.

        * top의 장점은 CPU 자원을 많이 소모하는 프로세스를 집중적으로 볼수 있게 해준다.

    c. netstat
        한 호스트에서의 연결 내역과 제공되는 서비스의 목록을 보여준다.
    
        * Recv-Q, Send-Q가 0 이거나 0에 가까워야 한다. 그렇지 않으면 특정 서비스에 문제가 있는 것이다.
        [ TCP 연결 상태 ]
            - SYN_RECEIVED : '서비스 거부 공격'을 받고 있는 증거일 수 있다.
            - TIME_WAIT : 최근에 연결이 종료된 것이다.
            - ESTABLISHED : 현재 사용되고 있는 것이다.
            - LISTEN :  연결 요청을 기다리고 있는 것이다.


        [ 옵션 ]
            -r : 라우팅 테이블을 보여준다.

    d. lsof
        유닉스 시스템에서 열린 파일을 나열해 준다.
        특정 프로세스에 의해서 열린 파일을 나열할 수도 있다.

        [ 옵션 ]
            -i : 네트워크에서 열린 모든 소켓 파일을 보여준다.

    
e. ifconfig
        네트워크 인터페이스의 설정을 변경하기 휘한 목적에 주로 사용한다.

====================

2. 연결성 시험
    
    a. ping
        두 가지 특정한 ICMP 메시지인 ECHO_REQUEST, ECHO_REPLY를 사용한다.
    
   
 b. fping
        여러 개의 호스트에 병렬로 ping을 하도록 확장되었다.

   
 c. echoping
        ECHO, DISCARD, CHARGEN, HTTP, TCP, UDP로 제공되는 서비중의 하나로 패킷을 보내는 방식으로 동작한다.

  
  d. arping
        ICMP 패킷 대신 ARP  요청과 응답을 사용한다.

====================

3. 경로 특성

    네트워크 연결이 적절하게 동작하고 있는지를 검사한다.

  
  a. traceroute
        
        [ 작동 원리 ]
            - 세 개의 패킷의 TTL 필드를 1로 설정하여 발송한다.
            - 첫번째 라우터가 이 패킷을 버리면서 ICMP TIME_EXCEEDED 메시지를 보낸다.
            - 그 다음 세개의 패킷은 TTL 값을 2로 설정하여 보낸다.
            - 두번째 라우터가 패킷을 버린다.
            - 패킷이 목적지에 도착하면 ICMP PORT_UNREACHABLE 메시지가 되돌아온다.
              ( 이것은 traceroute 가 사용되지 않는 포트 번호를 향해 패킷을 보내기 때문이다. )
              ( 포트 번호는 33434번에서 시작하여 패킷을 보낼때마다 1씩 증가한 번호를 사용한다. )

        중간에 패킷 손실이 발생하면 * 가 표시된다.
        * 세 개의 시간이 모두 * 로 표시되기도 한다.
          이것은 몇가지 이유 때문에 발생한다.
          첫째, 해당 홉의 라우터가 ICMP TIME_EXCEEDED 메세지를 되돌려 주시 않을 수 있다.
          둘째, 몇몇 오래된 라우터는 TTL 값이 0임에도 불구하고 패킷을 계속 전달한다.
          셋째, ICMP 메시지의 우선 순위가 매우 낮아서 적절한 시간 내에 되돌아오지 않는 경우이다.
          넷째, 경로의 어떤 지점에서 ICMP 패킷이 막히는 것이다.

        [ 옵션 ]
            -n : 주소 찾기 끔
            -v : 더 많은 정보 표시

    b. 경로 성능
        경로 성능을 평가하기 위해 세 종류의 측정을 실시한다.
        - 대역폭 측정 : 네트워크의 하드웨어 능력을 측정
        - 처리 성능 측정 : 최대 어느 정도 사용 가능한 용량을 제공하는지 측정
        - 트래픽 측정 : 얼마나 많은 용량이 사용되는지 측정

        ㄱ. 대역폭 측정
         
   1) pathchar
                경로를 구성하는 각 링크의 대역폭을 알아낼 수 있다.

          
  2) bing
                지점간 대역폭을 측정한다.

        ㄴ. 처리 성능 측정
            처리 성능은 보통 많은 양의 데이터를 전송하고 시간을 재는 방법으로 측정된다.
            ttcp, netperf, iperf

            
1) ttcp
                가장 오래된 대용량 측정 도구이다.

        ㄷ. 트래픽 측정

            1) netstat -i
                송신 에러와 수신 에러의 비율은 매우 낮아야 한다.
                전체 패킷의 0.1% 보다 훨씬 더 적어야 한다.
                충돌비율은 트래픽의 10%보다 작아야 한다.
                충돌횟수가 높으면 네트워크에 지나치게 부하가 걸려 있다는 표시이며
                이 경우 네트워크 세그먼트 분리를 고려하는 것이 좋다.


    * MS의 tracert와 유닉스의 traceroute의 근본적인 차이는
      tracert는 ICMP를 사용하지만, traceroute는 UDP 패킷을 사용한다는 점이다.


====================

4. 성능 측정 도구

    성능을 측정하는 첫 단계는 트래픽을 측정하는 것이다.
    트래픽 측정 도구를 어느 곳에 사용하는지에 따라 대략 세 가지로 분류된다.
    - 호스트 감시 도구 : 한 기계로 들어가고 나가는 트래픽을 캡쳐할 수 있는 도구
    - 포인트 감시 도구 : 인터페이스를 무차별 모드로 전환하여 모든 패킷을 캡쳐하는 도구
    - 네트워크 감시 도구 : 다른 호스트를 검사하여 네트워크 트래픽의 전체적인 그림을 구성하여 주는 도구

    == 호스트 감시 도구와 포인트 감시 도구는 네트워크 트래픽에 거의 영향을 주지 않는다.


    a. 호스트 감시 도구
    b. 포인트 감시 도구
        순수한 포인트 감시 도구는 네트워크 스니퍼이다.
        tcp-reduce, tcptrace, xplot, ntop

        
ㄱ. ntop
        대화형 모드와 웹 모드를 제공한다.

    c. 네트워크 감시 도구
            
mrtg,  cricket

====================

5. 연결 프로토콜 시험

    프로토콜에 따라 특정 동작을 조사한다.

    a. 패킷 분사 도구
    b. 커스텀 패킷 생성기
        hping, nemesis, ipfilter

        ㄱ. hping
            포트 0번으로 TCP 패킷을 보낸다.
            이 포트는 거의 사용되지 않기 때문에 대부분의 시스템이 RESET 메시지로 응답한다.
            이런 식으로 hping은 ping 패킷을 가로막는 시스템으로부터도 응답을 받는다.
            한편 , 이 프로그램은 침입 탐지 시스템의 작동을 유발할 수도 있다.

728x90

댓글