강좌
클라우드/리눅스에 관한 강좌입니다.
네트워크 분류

네트워크 ping 테스트의 정석

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

네트워크 ping 테스트의 정석

 

 

 

 

이번에는 시스템을 한번이상 관리해본 사람이라면 누구나 알고있는 ping에 대해서 공부할 것이다.

 

 

 

 , ping은 현재 서버가 외부와 통신이 가능한가를 확인하는 가장 간단한 방법으로서 ICMP(Internet Control Message Protocol)라는 프로토콜을 이용하여 현재 호스트(서버)가 외부와 통신이 가능한가를 테스트하기 위하여 사용하는 네트워크 명령어이다.

 

 

 

  

 

 

우리는 ping으로 무엇을 알 수 있나?

 

 

 

ping은 시스템관리자뿐아니라 인터넷에 연결되어 있는 PC사용자들도 대부분 너무나 잘 알고있는 명령어이다.

 

 

 

 , 사용하는 서버나 PC가 통신이 되지 않을 경우에 외부와의 통신이 가능한가를 확인하기 위하여 가장 많이, 그리고 가장 흔하게 사용하는 명령어이다.

 

 

 

 또한 특정 IP나 도메인을 가진 네트워크장비(서버,PC,라우터,스위치등)가 인터넷상에서 살아있는가(통신이 가능한가)를 확인하는 용도로 흔히 사용한다.

 

 

 

 


ping
테스트를 할 때에 별도의 옵션이 사용되지 않는다면 1회 테스트할 때에 사용되는 패킷(packet) 크기(size) 56byte(실제로는 8byte ICMP 헤드를 포함하여 164byte를 보냄)로 정의되어 있다.

 

 

 

 ping테스트는 ICMP패킷을 이용하므로 모든 테스트 패킷에 ICMP헤드정보 8tyte를 포함하여 보내고 있다.

 

 

 

 별도의 옵션이 없다면 ping테스트는 강제 종료명령(^C)을 만날때까지 계속될 것이다.

 

 

 

 그리고 ping테스트가 종료되고 나면 테스트한 결과의 통계값을 보여준다.

 

 

 

 , ping테스트의 통계값에는 다음과 같은 결과값들이 있다.

 

 

 

 

 

ping테스트하기 위해 보내기 한 전체 패킷(packet) (packets transmitted)
② 보낸 패킷(packet)수 중에서 받은 전체 패킷(packet) (received)
 보내고 받은 패킷 중 유실된 패킷수(packet loss)
④ 테스트결과 응답속도의 최소, 평균, 최대값

 

 

 

 이제 ping을 사용한 실제예를 보도록 하자.

 

 


ping의 결과를 읽고 이해하기

 

 

 

 

 

뭔가를 배우기 위해 가장 빠른 방법은 일단 한번 해보는 것이다.

 

 

 

 따라서 ping을 한번 실행해 보도록 하겠다.

 

 

 

 , 다음 예는 192.168.0.1서버로 ping을 실행한 것이다.

 

 

 

 

 

[root@sulinux ~]#ping 192.168.0.1

PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.

64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=4.94 ms

64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=1.92 ms

 

--- 192.168.0.1 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1000ms

rtt min/avg/max/mdev = 1.923/3.434/4.946/1.512 ms

[root@sulinux ~]#

 

 

 

 

 

일단 위와 같이 정상적으로 ping테스트가 수행된다면 “192.168.0.1시스템이 살아있다. ”라는 의미이다.

 

 

 

 , 현재 서버와 192.168.0.1서버와 통신이 가능한 상태임을 나타낸다.

 

 

 

 이것이 가장 기본적인 의미이며 위와 같이 별도의 옵션을 사용하지 않았다면 ^C를 입력 할 때까지 ping테스트는 계속 될 것이다.

 

 

 

 따라서 ping테스트를 종료하고자 한다면 ^C를 입력해야 한다.

 

 

 

 

 

그리고 위의 결과값들 가운데 주의깊게 보아야 할 것은 각 행의 time값이다.

 

 

 

  time값이 낮을수록 현재서버와 ping테스트한 대상서버 사이의 통신이 빠르다는 것을 의미한다.

 

 

 

 , 쉽게 표현하자면 time수치가 낮을수록 회선(네트워크)상태가 좋다고 볼 수 있다.

 

 

 

 그리고 ^C를 입력하면 ping테스트가 종료되고 그때까지의 ping테스트 통계값을 보여준다.

 

 

 

 , 위의 결과 가운데 다음 부분에서 우리는 ping테스트의 결과 통계값을 알 수 있다.

 

 

 

 

 

--- 192.168.0.1 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1000ms

rtt min/avg/max/mdev = 1.923/3.434/4.946/1.512 ms

 

위의 결과에서는 2개의 패킷을 보내고, 2개의 패킷을 응답으로 받았으며, 유실된 패킷은 없다.

 

 

 

 그리고 응답결과의 최소시간은 1.923 ms이며, 평균시간은 3.434ms이며, 최대시간은 4.946ms라는 것을 알 수 있다.

 

 

 

 이것은 ping테스트 결과의 마지막행에서 알 수 있다.

 

 

 

 

 

앞의 예에서는 특정 IP주소로 ping테스트를 수행해 보았다.

 

 

 

 이번에는 IP주소가 아닌 인터넷 도메인(DOMAIN)명으로 ping테스트를 해보겠다.

 

 

 

 이 방법 또한 흔히 사용하는 방법으로서 특정 홈페이지(웹사이트)가 통신이 가능한 상태인가를 확인하는 아주 일반적인 방법이다.

 

 

 

 여기서 확인하고자하는 홈페이지의 도메인명은 www.yahoo.co.kr이다.

 

 

 

 따라서 IP주소 대신에 www.yahoo.co.kr을 테스트한 것으로서 IP주소를 몰라도 도메인명만 알고있다면 간단히 테스트해 볼 수있는 일반적인 방법이다.

 

 

 

 

 

[root@sulinux ~]#ping www.yahoo.co.kr

PING yahoo.co.kr (119.161.11.206) 56(84) bytes of data.

64 bytes from web.rc.vip.kr3.yahoo.com (119.161.11.206): icmp_seq=1 ttl=51 time=6.24 ms

64 bytes from web.rc.vip.kr3.yahoo.com (119.161.11.206): icmp_seq=2 ttl=51 time=6.01 ms

64 bytes from web.rc.vip.kr3.yahoo.com (119.161.11.206): icmp_seq=3 ttl=51 time=6.40 ms

 

--- yahoo.co.kr ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2001ms

rtt min/avg/max/mdev = 6.014/6.222/6.405/0.160 ms

[root@sulinux ~]#

 

 

 

 

위의 결과는 앞의 IP주소로 ping테스트했던 결과와 별 차이가 없으므로 결과설명은 앞의 설명을 참고하기 바란다.

 

 

 

 위의 예와 같이 특정 도메인으로 ping테스트를 하여 특정 웹사이트(도메인)가 어떤 IP주소를 가지고 있는가를 확인하는 방법으로도 사용되고 있다.

 

 

 

 

 


테스트횟수를 지정하여 ping테스트하기

 

 

 

 

 

리눅스의 다른 명령어나 유틸리티들과 마찬가지로 ping에도 여러가지 유용한 옵션들이 있다.

 

 

 

 , 다음은 ping실행시에 사용할 수 있는 유용한 옵션들에 대한 간략한 설명이다.

 

 

 

 

 

-s 옵션

 

 

ping테스트시에 사용할 패킷사이즈 크기 설정하는 옵션이며 byte단위로 지정한다.

 

 

 

 그리고 이 옵션이 주어지지 않는다면 기본 값으로 56byte를 사용한다.

 

(64byte=8byte+56byte)

 

 

 

-q 옵션

 

 

ping테스트 과정을 보여주지 않고 ping수행 종합 결과만을 보여주는 옵션이다.

 

 

 

 

 

-i 옵션

 

 

ping테스트시 사용할 interval을 설정하는 옵션 즉, 지연시간을 의미한다.

 

 

 

 초간격으로 지정하며 이 옵션이 지정되지 않으면 기본 1초를 사용한다.

 

 

 

 

 

-b 옵션

 

 

ping테스트하는 서버와 동일한 네트워크에 있는 모든 호스트로 패킷을 보낸다.

 

 

 

 , broadcasting을 의미한다.

 

 

 

 

 

-c 옵션

 

 

ping테스트시 보낼 패킷 수를 지정해주는 옵션이다.

 

 

 

 , ping테스트할 횟수를 의미하며 테스트 횟수제한을 두고자 할 때 사용한다.

 

 

 

 만약 이 옵션이 없다면 ^C를 누를때까지 ping테스트를 계속 수행한다.

 

 

 

 

 

-w 옵션

 

 

ping테스트를 몇초후에 멈출것인지 지정하는 옵션이다.

 

 

 

 , ping테스트의 시간제한을 두고자할 때 사용한다.

 

 

 

 -c옵션과 함께 사용하지 못한다.

 

 

 

 

 

위의 옵션들을 사용하면 ping테스트를 매우 유용하게 할 수 있다.

 

 

 

 그런 차원에서 이번에는 ping테스트의 여러가지 옵션을 사용한 예를 보도록 하자.

 

 

앞에서 -c옵션을 사용하면 테스트 할 ICMP패킷의 수를 지정할 수 있다고 하였다.

 

 

 

 , 다음 예는 3번의 ping테스트를 하기 위하여 "-c 3"이라는 옵션을 지정하여 ping을 실행한 것이다.

 

 

 

 

 

[root@sulinux ~]#ping -c 3 www.yahoo.co.kr

PING yahoo.co.kr (203.212.171.217) 56(84) bytes of data.

64 bytes from rc.vip.kr1.yahoo.com (203.212.171.217): icmp_seq=1 ttl=52 time=6.51 ms

64 bytes from rc.vip.kr1.yahoo.com (203.212.171.217): icmp_seq=2 ttl=52 time=7.73 ms

64 bytes from rc.vip.kr1.yahoo.com (203.212.171.217): icmp_seq=3 ttl=52 time=10.9 ms

 

--- yahoo.co.kr ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2000ms

rtt min/avg/max/mdev = 6.510/8.384/10.904/1.852 ms

[root@sulinux ~]#

 

위의 결과를 보면 정확하게 3번의 ping테스트를 하고 자동종료되었다.

 

 

 

 이어지는 설명에 다른 옵션들의 사용예를 설명하고 있다.

 

 

 

 모두 확인해 보도록 하자.

 

 

 



1 ping테스트시에 사용할 패킷사이즈를 지정하기

 

 

 

 

이번에는 -s옵션을 사용하여 1 ping테스트시에 사용하는 패킷(packet) 크기(size)를 지정하여 테스트해 보도록 하자.

 

 

앞서 설명하였듯이 ping테스트시에 사용하는 패킷의 기본 크기는 56byte이지만 ICMP헤드정보를 가진 8byte를 포함하여 1 ping테스트시에 모두 64byte를 사용한다.

 

 

 

 이 크기를 임의로 지정하여 테스트를 할 수가 있으며 이때 사용하는 옵션이 -s이다.

 

 

 

 

 

다음 예는 패킷사이즈를 100byte로 지정한 것이다.

 

 

 

 하지만 아래에 보시면 108byte씩 사용하여 테스트한 것을 알 수 있다.

 

 

 

 , 이것은 "100byte(보낼 패킷수) + 8byte(ICMP헤드정보)"하여 108byte 1회 패킷전체크기로 구성된 것이다.

 

 

 

 그리고 테스트횟수를 3회로 지정하였다.

 

 

 

 

 

[root@sulinux ~]#ping -s 100 -c 3 192.168.0.150

PING 192.168.0.150 (192.168.0.150) 100(128) bytes of data.

108 bytes from 192.168.0.150: icmp_seq=1 ttl=64 time=0.860 ms

108 bytes from 192.168.0.150: icmp_seq=2 ttl=64 time=0.247 ms

108 bytes from 192.168.0.150: icmp_seq=3 ttl=64 time=0.250 ms

 

--- 192.168.0.150 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2003ms

rtt min/avg/max/mdev = 0.247/0.452/0.860/0.288 ms

[root@sulinux ~]#

 

 

 

 

 

아래는 패킷사이즈를 2000byte로 지정하여 보낸 것이다.

 

 

 

  이 또한 실제로 보내는 패킷사이즈는 ICMP 헤드정보를 포함한 8byte를 더하여 전체 2008 byte를 보냈음을 알 수 있다.

 

 

 

 

 

[root@sulinux ~]#ping -s 2000 192.168.0.100

PING 192.168.0.100 (192.168.0.100) 2000(2028) bytes of data.

2008 bytes from 192.168.0.100: icmp_seq=1 ttl=64 time=6.83 ms

2008 bytes from 192.168.0.100: icmp_seq=2 ttl=64 time=4.76 ms

2008 bytes from 192.168.0.100: icmp_seq=3 ttl=64 time=3.83 ms

 

--- 192.168.0.100 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2000ms

rtt min/avg/max/mdev = 3.830/5.142/6.831/1.255 ms

[root@sulinux ~]#

 

 

 

 

이번 예에서 사용한 -s옵션을 사용할 때에는 너무 큰 패킷사이즈를 지정하여 테스트함으로서 악의적인 공격의 한 방법이 되는 DOS공격(또는 DDOS)으로 오인 받지 않도록 주의하기 바란다.

 

 

 

 



ping테스트 과정생략하고 결과만을 확인하기

 

 

 

앞서 ping테스트에서 사용할 수 있는 유용한 옵션들에 대해서 설명하였다.

 

 

 

 그 가운데 -q라는 옵션이 있는데 이 옵션은 ping테스트 결과만을 확인하고자 할 때에 사용하는 옵션이다.

 

 

 

 -q옵션을 사용하면 ^C ping테스트를 종료할 때까지의 결과만을 보여준다.

 

 

 

 

 

[root@sulinux ~]#ping -q www.yahoo.co.kr

PING yahoo.co.kr (119.161.11.206) 56(84) bytes of data.

 

--- yahoo.co.kr ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2002ms

rtt min/avg/max/mdev = 7.709/11.214/17.941/4.758 ms

[root@sulinux ~]#

 

 

 

 

위의 예는 ^C를 입력할 때까지 테스트한 결과만을 보여준 것이다.

 

 

 

 -q옵션은 다음과 같이 -c -s옵션을 함께 사용할 수도 있다.

 

 

 

 아래 예는 3 ping을 수행한 후에 자동종료한 것이다.

 

 

 

 

 

[root@sulinux ~]#ping -q -c 3 -s 1000 192.168.0.100

PING 192.168.0.100 (192.168.0.100) 1000(1028) bytes of data.

 

--- 192.168.0.100 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2002ms

rtt min/avg/max/mdev = 2.624/4.385/5.629/1.280 ms

[root@sulinux ~]#

 

 

 

 

위의 예에서 전체 패킷사이즈를 1000으로하여(-s 1000) 3번의 ping테스트(-c 3)를 한 결과(-q)만을 보여준 것이다.

 

 

 

  , ping테스트시에 여러가지 옵션을 동시에 사용하는 것이 가능하다는 것을 알 수가 있다.

 

 

 

 

 

, 이제 ping에 대한 설명을 마무리하는 차원에서 다음과 같은 것을 명심하도록 하자.

 

 

우리가 방금 배운 ping은 특정호스트나 네트워크장비 또는 특정서버등이 어떤 상태로 살아있을까라는 것을 확인하는 용도라고 설명하였다.

 

 

 

 그렇다.

 

 

 

 만약 이 용도 이외의 용도로 ping을 무분별하게 많이 사용하게되면 어느날 사이버수사대에서 연락이 올지도 모른다.

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,034 명
  • 현재 강좌수 :  35,789 개
  • 현재 접속자 :  252 명