유용한 네트워크 명령어와 툴

http://kr.blog.yahoo.com/hbs2588/915629.html


 

마이크로소프트웨어(임보혁-삼성SDS)에 올라온 내용을 조금 간추려봤습니다.
평소 알아두면 편리한 명령어들이고, 실무에서도 많이 사용하는 것들인 것 같습니다.
네트워크 명령어들은 사실 많은 분들이 알고 계실 겁니다. 하지만 조금 더 자세한 내용이라 올려봅니다. 조금 내용이 길어서 중간에 몇가지는 뺐습니다.
실제 기사 작성자분의 프리첼 커뮤니티에 가보니 유용한 네트워크 및 라우터 관련 자료도 많더군요.
-----------------------------------------------------------------------

유용한 네트워크 명령어와 툴

ping
상대방과 통신을 하는 장비인 라우터, 스위치, 서버, 컴퓨터에는 외부통신용 NIC 카드가 내장되어 있으며, IP 주소를 할당해서 사용하고 있다. ping(packet internet groper)은 상대방 컴퓨터, 네트워크 장비, 서버 장비까지 통신이 잘 되는지를 확인하는 명령이다.

ping 명령의 TTL(Time To Live) 값은 어떤 OS를 사용하는지도 알 수가 있다. 유닉스 계열은 255, 윈도우 계열은 128부터 TTL 값이 라우터를 지날 때마다 1씩 감소하므로 TTL이 200번대이면 유닉스이고, TTL이 100번대이면 윈도우 계열이라고 생각하면 된다. <화면 1>을 보면 야후는 TTL이 200번대로 유닉스 계열을 사용 중이고 msshop.co.kr 사이트는 TTL이 100번대로 윈도우 계열을 사용하고 있다고 추측할 수 있다.

2. tracert
인터넷은 접속하려는 상대편 컴퓨터(서버)와 직접적으로 연결되어 있지 않고 중간 중간에 네트워크 장비를 거쳐 접속이 된다. tracert(trace route)는 최종 목적지 컴퓨터(서버)까지 중간에 거치는 여러 개의 라우터에 대한 경로 및 응답속도를 표시해 준다.

갑자기 특정 사이트나 서버와 접속이 늦어진 경우에 tracert 명령으로 내부 네트워크가 느린지, 회선 구간이 느린지, 사이트 서버에서 느린지를 확인해 볼 수 있다. 또한 전용회선 관리나 장애 복구시에도 많이 사용한다. <화면 2>를 보면 외부망의 특정 구간에서 속도가 늦다는 것을 알 수 있다.

3. nbtstat
회사 내에 많은 컴퓨터가 있다 보면 IP 주소 충돌 경고 메시지가 발생한다. 보통 DHCP를 이용해 IP를 관리하는 곳에서는 잘 발생하지 않지만 고정으로 IP 주소를 설정하는 네트워크 환경에서 하나의 IP 주소를 두 대의 컴퓨터에 입력하게 되면 충돌 메시지가 발생을 하며 네트워크 통신이 안 된다.
이럴 때 충돌되는 컴퓨터를 찾을 때 유용한 명령이 nbtstat(NetBIOS over TCP/IP state) 명령어로 NetBIOS가 사용하는 통계 및 이름 정보를 표시한다. IP 주소 충돌 메시지가 발생하면 컴퓨터를 끄고 다른 컴퓨터에서 nbtstat 명령으로 중복된 IP 주소를 입력해 컴퓨터 이름을 확인한 후에 충돌되는 컴퓨터의 IP 주소를 바꿔주면 된다. <화면 3>은 충돌되는 IP 사용자 ‘SUMA-COM2’를 찾은 후 IP 주소를 변경토록 하면 된다.

4. netstat
웹으로 프로그램을 개발할 때 외부에서 통신이 안 되면 사용 포트를 확인할 때가 있다. 또한 내 컴퓨터에 트로이 목마가 설치되어 정보를 빼낼 수가 있는지를 확인하는 유용한 명령이 ‘Netstat -an | more(Netstat - network stats)’로, 현재 서비스를 대기하고 있는 ‘LISTENING’된 정보들과 TCP 통신을 하는 서비스의 연결상태를 도메인 정보 없이 보여준다. ESTABLISHED는 다른 컴퓨터와 서로 연결된 상태이고, CLOSED는 연결이 완전히 종료된 것을 나타내며 TIME-WAIT은 연결은 종료되었지만 당분간 소켓을 열어놓은 상태이다
내 컴퓨터의 사용 포트를 확인해 불필요한 포트를 사용하고 있다면 외부 해킹이나 트로이 목마로 의심할 필요가 있다. 윈도우 NetBIOS는 TCP 포트 139를 통해 다양한 정보를 넘겨주는 API를 갖고 있는데, 보안에 취약해 인증되지 않은 사용자가 아이디/패스워드 인증 없이 원격지 서버의 정보를 가져갈 수 있다.
또한 웜 바이러스, 케이블 불량, 스위치 허브 포트 불량으로 인해 데이터 송수신 속도가 늦거나 할 때 ‘Netstat -e 10’ 명령으로 10초의 주기로 이더넷 인터페이스의 데이터 송수신을 계속 보여주게 함으로써 웜 바이러스로 트래픽이 증가하는지 확인할 수가 있다.

5. route
방화벽 장비나 서버 장비에 NIC 카드를 여러 개 설치할 경우에는 route 명령을 이용해 패킷이 전달되는 경로를 확인하거나 지정할 수 있다. 192.168.1.0 네트워크의 트래픽을 192.168.0.10으로 전달하고자 한다면 ‘route add’ 명령을 사용하며, ‘route print’ 명령으로 라우팅 테이블을 확인한다.
c:> route add 192.168.1.0 mask 255.255.255.0 192.168.0.10
c:> route print
(Usage : ROUTE [add | delete | print] [MASK netmask] [gateway] [METRIC metric])

6. 이더리얼
회사 내의 유해 트래픽(웜 바이러스, 불법 P2P 자료)로 인해서 속도가 늦어진다면 어떤 P2P에 누가 접속을 하는지 알아야 차단할 수가 있다. 또한 특정 서버의 애플리케이션을 사용하다가 사용자가 접속이 느리다고 장애신고가 들어오면 프로그램 개발자와 서버 관리자와 네트워크 관리자가 모여서 어디에서 문제가 있는지 파악을 해보지만 마땅한 조치를 못하는 수가 많다.
나중에는 제조업체에 연락하고 많은 시간을 소모해 찾아보면 네트워크에서 패킷 손실이 발생하거나, SQL 쿼리가 잘못되거나, 서버의 부하 증가란 사실을 알 수 있다. 이런 원인을 쉽게 찾을 수 있는 유용한 툴이 패킷분석기로 ‘서버에서 패킷을 늦게 보내는지’ 아니면 ‘서버에서 패킷을 보냈는데 회선불량으로 패킷을 몇 번씩 재전송하면서 늦어지는 것인지’ 혹은 ‘클라이언트 PC에서 NIC카드 불량으로 응답을 못해서 늦는 것인지’ 등의 원인파악을 그래픽 환경에서 보여준다. 이더리얼(Ethereal)은 무료이고 설치가 쉬운 장점이 있다.
설치를 위해서는 WinPcap과 이더리얼 두 개의 프로그램이 필요하며, 먼저 winpcap.polito.it에 가서 WinPcap를 다운받은 후 설치를 한다. 그 후 ethereal.com에서 이더리얼을 다운받은 후 설치하면 된다. 설치가 쉬우나 주의할 점은 WinPcap를 먼저 설치한 후에 이더리얼을 설치해야 한다.

이더리얼의 설정에서 ‘CAPTURE’ 옵션이 가장 중요하다. 먼저 NIC 카드의 종류를 선택한다. ‘Capture Filter’는 캡처된 파일을 별도의 파일로 저장할 때 사용하며, ‘Name Resolution’은 패킷을 분석할 때 하드웨어 어드레스, IP 주소, 포트 번호에 대해서 이름 해석을 할지를 선택한다. ‘Display Option’은 캡처된 파일을 실시 간으로 보여줄지 아니면 캡처가 끝난 다음 보여줄지를 선택한다.

이더리얼의 주 화면을 보면 3개의 구분 화면으로 나뉜다. 상위 화면은 캡처된 패킷들이 보이고, 중간 화면은 상위 화면에서 선택된 패킷 내용에 대해서 사용자가 알아볼 수 있도록 계층 구조로 표현했고, 하단 화면은 패킷의 실제 데이터 내용을 16진수로 표시한다. 웹 서버 접속시의 ID 및 패스워드 등 패킷 정보가 보여서 해킹도 가능하니 나쁜 목적으로 사용하기 말기를 바란다.

웜 바이러스, 불법 P2P 자료 업 다운 등으로 특정 컴퓨터에서 많은 트래픽을 발생할 때 ‘Endpoint’ 옵션을 이용하면 어떤 IP 주소에서 송신 및 수신 트래픽량을 표시하므로 쉽게 찾을 수 있다(<화면 8> 참조).

7. MRTG
인터넷 속도가 늦어서 회선 증설이 필요할 때 어느 시간대에 어느 정도나 사용하고 있는지에 대한 트래픽 현황과 그래프가 나오면 제안서를 작성할 때도 좋고 설득하기도 쉬울 것이다. 이때 필요한 툴이 MRTG(Mutli Router Traffic Grapher)이다. MRTG는 펄(Perl)과 C 언어로 구성되어 있고, 유닉스와 윈도우에서 동작한다. 트래픽 체크를 일, 주, 월, 년간으로 그래픽으로 보여주므로 시간대별 트래픽 분석을 할 수 있는 좋은 분석 도구이다. 네트워크 장비 인터페이스별 트래픽 분석, CPU나 메모리 사용률 분석 등에 사용되고 있다.



<화면 9> 일자별 트래픽 분석


MRTG 구성과 동작 원리를 보면 모니터링 대상인 장비에 에이전트(Agent)가 구동되어야 하며, MRTG가 설치된 서버에서는 MRTG 프로그램과 웹 서버를 설정해 에이전트에서 오는 로그파일을 수치화하고 HTML 형태로 만들게 된다. 환경 설정에 따라 몇 분 주기로 정보를 주고받아 일주일, 한달치의 트래픽이나 CPU 사용율이 그래프 형식으로 만들어지게 된다.

MRTG는 펄과 C를 기본으로 동작하므로 리눅스는 필요한 perl이 설치가 되어 있으나, 윈도우에서는 펄 설치가 안 된 경우가 많다. 그래서 윈도우 사용자 설치방법은 www.ActiveState.com에서 active perl을 다운받아 설치한 후에 www.mrtg.org에서 MRTG를 설치해야 한다(MRTG의 자세한 활용은 www.mrtg.co.kr을 참조하기 바란다).

MRTG 환경 설정을 위해서는 cfgmaker, mrtg, indexmaker의 3개의 실행파일이 필요하다. cfgmaker는 mrtg가 구동되기 위한 config 파일을 만든다. MRTG는 5분마다 config 파일을 참조해 필요한 SNMP을 요청해 그래프나 로그를 만듭니다. 5분마다 MRTG가 실행되면서 트래픽을 그리고 싶다면 MRTG.CFG 파일에 ‘RunAsDaemon: yes’ ‘Interval: 5M’을 입력하면 된다.

댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
제목 작성자 날짜
공대여자
공대여자
mins01
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자