[RHEL6] 네트워크 명령어 6탄(rdate, route, tcpdump, traceroute, whois)
본문 바로가기
IT 이야기/Linux 명령어

[RHEL6] 네트워크 명령어 6탄(rdate, route, tcpdump, traceroute, whois)

by 찬찬이 아빠 2020. 1. 23.
반응형
  18. rdate(시스템 시간 설정)

 1) 경로 : /usr/bin/rdate

 2) 요약 : 원격 서버에서 시스템 시간을설정

 3) 사용 방법 : rdate [옵션] [호스트...]

 4) 옵션

 -4 : IPv4만 사용

 -6 : IPv6만 사용

 -o num : 지정한 포트로 연결

 -p : 호스트의 정보만 출력하고, 설정하지 않음

 -s : 설정만하고, 내용을 출력하지 않음

 -u : TCP 대신 UDP를 사용

 -v : 상세한 정보를 출력

 

 5) 추가 설명

rdate 명령어는 타임 서버의 시간 정보를 가져와 로컬 시스템의 시간을 변경합니다.

-p 옵션으로 time.nuri.net 서버의 시간 정보를 확인합니다.

# rdate -p time.nuri.net
[time.nuri.net] Thu Jun 23 09:30:30 2020

 

-s 옵션으로 로컬 시스템의 시간을 타임 서버의 시간으로 변경하고 date 명령어로 변경된 시간을 확인 합니다.

# rdate -s time.nuri.net

# date
2020. 01. 23. (Thu) 09:30:30 KST

 

<참고사항>

/etc/rc.local 파일에 rdate 명령어를 추가하면 자동적으로 부팅 시 명령이 수행됩니다. 위의 예에서 입력한 rdate -s time.nuri.net을 /etc/rc.local의 마지막에 추가합니다. 시스템을 시작할 때마다타임서버의 시간으로 맞출 수 있습니다.

 

 

 

  19. route(라우팅 테이블 보기)

 1) 경로 : /sbin/route

 2) 요약 : IP 라우팅 테이블을 출력하거나 제어

 3) 사용 방법 : route [옵션] [명령어]

 4) 옵션

 -A family : 지정한 주소의 정보를 출력

 -v, --verbose : 상세한 정보를 출력

 -n, --numeric : 대상 필드 값을 IP 주소 형태로 출력

 -e, --extend : 라우팅 테이블 정보를 확장된 형태로 출력

 -F, --fib : 기본적인 라우팅 정보를 출력

 -C, --cache : 라우팅 캐시 정보를 출력

 -h, --help : 사용법을 출력

 -V, --version : 버전 정보를 출력

 

 5) 명령어

 add [-net|-host] IP주소 [gw gateway] [netmask 넷마스크] [mss tcp-mss] [dev 장치]

 del IP주소

 

 6) 추가 설명

route 명령어는 네트워크 라우팅 테이블을 출력하거나 수동으로 제어할 수 있습니다.

 

아래는 route 명령을 실행할 예제입니다. eth0 네트워크 장치의 네트워크 주소는 192.168.10.10이고 넷마스크는 255.255.255.0 입니다. 게이트웨이는 192.168.10.1입니다.

# route
Kernel IP routing table
Destination   Gateway   Genmask   Flags   Metric   Ref   Use   Iface
192.168.10.10    *   255.255.255.0   U       1      0     0    eth0
default       192.168.10.1  0.0.0.0  UG      0      0     0    eth0

 

-n 옵션은 호스트명 대신 IP 주소 형태로 출력합니다.

# route -n
Kernel IP routing table
Destination   Gateway   Genmask   Flags   Metric   Ref   Use   Iface
192.168.10.10  0.0.0.0   255.255.255.0   U       1      0     0    eth0
0.0.0.0       192.168.10.1  0.0.0.0  UG      0      0     0    eth0

 

라우팅 테이블에서 확인한 기본 게이트웨이는 route del default 명령으로 삭제할 수 있습니다.

$ route del default
SIOCDELRT: Operation not permitted

$ sudo route del default gw 192.168.10.1
$ route
Kernel IP routing table
Destanation   Gateway   Genmask   Flags   Metric   Ref   Use   Iface
192.168.10.10    *     255.255.255.0  U     1       0     0     eth0

 

route add 명령으로 위에 예에서 삭제한 게이트웨이를 추가할 수 있습니다.

$ sudo route add default gw 192.168.10.1

 

아래 예제는 루프백(lo) 장치를 추가합니다.

$ sudo route add -net 127.0.0 netmask 255.0.0.0 dev lo
$ route
Kernel IP routing table
Destination   Gateway   Genmask   Flags   Metric   Ref   Use   Iface
192.168.10.10    *   255.255.255.0   U       1      0     0    eth0
127.0.0.0        *   255.0.0.0       U       0      0     0    lo
default       192.168.10.1  0.0.0.0  UG      0      0     0    eth0

 

eth0 이더넷 장치에서 사용자가 네트워크 정보를 추가할 수도 있습니다.

$ sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
$ route
Kernel IP routing table
Destination   Gateway   Genmask   Flags   Metric   Ref   Use   Iface
192.168.10.10    *   255.255.255.0   U       1      0     0    eth0
127.0.0.0        *   255.0.0.0       U       0      0     0    lo
224.0.0.0        *   240.0.0.0       U       0      0     0    eth0
default       192.168.10.1  0.0.0.0  UG      0      0     0    eth0

 

 <참고사항>

1. router

라우터는 동일한 전송 프로토콜을 사용하여 분리되어 있는 네트워크 계층을 서로 연결합니다. 라우터는 기본적으로 브리지의 기능을 가지며 경로 배정표에 따라 다른 네트워크 또는 자신의 네트워크 내의 노드를 결정합니다. 그리고 여러 경로 중 가장 효율적인 경로를 선택하여 패킷을 보냅니다. 라우터는 흐름제어를 하며 네트워크 내부에서 여러 서브 네트워크를 구성하고, 다양한 네트워크 관리 기능을 수행합니다. 브리지와 라우터의 차이점은 라우터는 네트워크 계층가지의 기능을 담당하고 있으면서 경로 설정을 해주는 반면, 브리지는 데이터링크 계층까지의 기능만으로 목적지 주소를 구별하고 간단한 경로 결정을 합니다.

 

2. gateway

게이트웨이는 다른 네트워크로 들어가는 입구 역할을 하는 네트워크 포인트입니다. 라우팅의 관점에서 보면 인터넷은 많은 게이트웨이 노드와 호스트 노드로 구성된 네트워크라 할 수 있는데 네트워크 사용자들의 컴퓨터들과 웹페이지와 같은 컨텐츠를 제공하는 컴퓨터들이 바로 호스트 노드이며, 일반 회사의 네트워크 내에서 트래픽을 통제하는 컴퓨터나 인터넷 서비스 제공자들의 컴퓨터가 바로 게이트웨이 노드입니다.

 

 

 

  20. tcpdump(네트워크 패킷 출력)

 1) 경로 : /usr/sbin/tcpdump

 2) 요약 : 네트워크 패킷의 내용을 출력

 3) 사용 방법 : tcpdump [-aAdDefILnNOpqRStuUvxX] [-B szie] [-c count] [-C file_size] [-E algo:secret] [-F file] [-G seconds] [-i interface] [-M secret] [-r file] [-s snaplen] [-T type] [-w file] [-W filecount] [-y datalinktype] [-z command] [-Z user] [expression]

 

 4) 옵션

 -A : 각 패킷을 아스키 형식으로 출력

 -B size : OS의 캡쳐 버퍼 크기(size)를 지정

 -c count : 수신할 패킷 수(count)를 지정

 -d : 읽기 쉬운 형식으로 일치하는 패킷의 덤프를 출력

 -dd : C 프로그램 프레그먼트로서 일치하는 패킷을 덤프

 -ddd : 일치하는 패킷을 10진수 형식으로 출력

 -e : 각 덤프의 행에 링크의 레벨 헤더를 출력

 -f : 숫자 형식의 IPv4 주소를 출력

 -F file : 필터 표현식의 파일(file)을 지정

 -i interface : 네트워크 인터페이스를 지정

 -I : 인터페이스를 모니터 모드로 설정

 -n : 주소(호스트 주소, 포트 넘버)를 이름으로 변경하지 않음

 -N : 호스트의 돔ㅔ인명을 출력하지 않음(예) 'nic.ddn.go.kr' 중 nic만 출력)

 -O : 일치하는 패킷 코드의 옵티마이저를 실행하지 않음. 이 옵션을 옵티마이저의 버그를 찾을 때 사용

 -p : 인터페이스를 무차별 모드로 설정하지 않음

 -q : 퀵 모드로 출력. 출력 정보가 적음

 -r file : 지정한 파일(file)에서 패킷을 읽음(지정하는 파일은 -w 옵션으로 생성됨)

 -s snaplen : 패킷의 데이터 길이(snaplen)를 지정. 기본값은 68byte

 -T type : 지정한 형식으로 패킷들을 출력

 -t : 각 덤프에 타임스탬프를 출력하지 않음

 -tt : 각 덤프에 형식이 없는 타임스탬프를 출력

 -ttt : 각 덤프 행에 현재와 이전 라인사이의 델타(마이크로 초)를 출력

 -tttt : 각 덤프 행에 날짜 기본 형식으로 타임스탬프를 출력

 -ttttt :  각 덤프 행에 현재와 첫 번째 행사이에 델타(마이크로 초)를 출력

 -v : 상세한 정보를 출력

 -vv : -v 옵션보다 상세한 정보를 출력. NFS reply 패킷과 SMB 패킷을 모두 디코딩함

 -vvv : -vv 옵션보다 상세한 정보를 출력

 -w file : 출력한 패킷을 저장할 파일(file)을 지정

 -x : 각각의 패킷을 헥사 코드로 출력

 -X : 헥사 코드와 아스키 형태를 모두 출력

 

 5) 표현식

 방향 : src, dst, src 또는 dst, src와 dst

 프로토콜 : ether, fddi, tr, wlan, ip, lp6,arp, rarp, decnet, tcp, udp

 형식 : host, net, port

 

 6) 추가 설명

tcpdump 명령어는 네트워크 인터페이스를 통과하는 패킷들의 정보를 확인할 수 있습니다. 아래는 지정한 80 포트를 사용하는 패킷 정보를 출력합니다.

# tcpdump port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:22;34.543121 IP 192.168.180.100.45440 > hx-inf100.1e100.net.www: Flags [S], seq 3234234, win 4564, options [mss 1455, sackOK, TS val 484843 ecr 0, nop, wscale 6], length 0
14:22:34.243423 IP hx-in-f100.1e100.net.www > 192.168.180.100.45440: Flags [S.], seq 2342341, ack 234340, win 5674, options [mss 1430, sackOK, TS val 234234 ecr 34242, nop, wscale 6], length 0

 

eth0 네트워크 인터페이스의 80번 포트의 패킷 정보를 tcpdump.test 파일에 저장할 수 있습니다.

# tcpdump -i eht0 -w tcpdump.test port 80
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
^C20 packets capture
20 packets received by filter
0 packets dropped by kernel

# cat tcpdump.test

 

 

 

  21. traceroute(패킷 이동 경로)

 1) 경로 : /usr/sbin/traceroute

 2) 요약 : 네트워크 경로를 출력

 3) 사용 방법 : traceroute [옵션] 호스트명[패킷크기]

 4) 옵션

 -m : 홉(hop)을 지정함(기본값은 3이고, 최대값은 255까지 지정 가능)

 -n : 주소 찾기를 비활성화

 -p : 시작 포트 번호를 지정

 -q : 패킷 수를 지정

 -v : 상세한 정보를 출력

 -w : 타임아웃 시간을 지정

 

 5) 추가 설명

ping 명령어는 호스트가 네트워크에 연결되어 있는지 확인할 때 사용합니다. 하지만 ping은 서버가 ICMP 패킷을 무시하도록 설정되어 있을 때는 정확한 연결 테스트를 할 수 없습니다. traceroute 명령어는 패킷이 거쳐가는 경로를 추적하여 네트워크 연결을 확인하고, 호스트로 가는 경로 중에 특정 네트워크 벼옴ㄱ 구간을 파악할 수 있습니다.

 

아래는 kldp.org의 호스트와의 네트워크 경로 및 상태를 살펴 볼 수 있습니다.

# traceroute kldp.org
traceroute to kldp.org (211.169.242.48), 30 hops max, 38 byte packets
1 61.40.233.1 (61.40.233.1) 0.239 ms 0.185 ms 0.171 ms
2 10.0.0.1 (10.0.0.1) 1.872 ms 1.921 ms 1.961 ms
3 211.170.7.81 (211.170.7.81) 3.789 ms 8.005 ms 3.866 ms
4 anybdr3-fe4-1-0.rt.bora.net (210.120.252.169) 3.997 ms 4.096 ms 3.955 ms
5 any160bb2re0--1-0-1-0.rt.bora.net (210.120.193.145) 4.402 ms 4.244 ms 4.119 ms
6 210.120.61.32 (210.120.61.34) 4.509 ms 6.596 ms 4.865 ms
7 210.92.194.214 (210.92.194.214) 4.468 ms 4.449 ms 4.600 ms
8 211.174.48.86 (211.174.48.86) 4.380 ms 4.439 ms 4.456 ms
9 211.119.133.234 (211.119.133.234) 5.140 ms 4.596 ms 5.406 ms
10 211.159.242.48 (211.169.242.48) 11.169ms 11.674 ms 4.830 ms

 

 

 

  22. whois(디렉터리 서비스 클라이언트)

 1) 경로 : /usr/bin/whois

 2) 요약 : 디렉터리 서비스를 위한 클라이언트 명령어

 3) 사용 방법 : whois [옵션] ... OBJECT...

 4) 옵션

 -a : 디렉터리 서비스의 모든 데이터베이스를 찾음

 -h HOST : 지정한 서버(HOST)에 접속

 -p PORT : 지정한 포트(PORT)로 접속

 --verbose : 상세한 정보를 출력

 --help : 사용법을 출력

 --version : 버전 정보를 출력

 

 5) 추가 설명

whois 명령어는 도메인 주소를 DNS 데이터베이스에서 IP 정보를 확인할 때 사용하는데 호스트명을 제외하고 도메인 주소를 지정합니다. 아래 예제는 네이버의 도메인 주소 정보를 확인합니다.

 

$ whois naver.com
Whois Server Version 2.0
Domainn names in the .com and .net domains can now be registered with many different competing registrars. Go to http://www.internic.net for detailed information.
   Server Name: NAVER.COM.SANGUINE.PE.KR
   Registrar: TODAY AND TOMORROW CO. LTD.
   Whois Server: whois.ttpia.com
   Referral URL: http://www.ttpia.com
   ... 이하 생략 ...

 

-h 옵션은 후이즈 DNS 서버에서 정보를 출력합니다. 참고로 whois.nic.or.kr에서는 kr로 끝나는 도메인에 대한 정보를 가지고 있습니다. 이는 .com, .net, .org로 끝나는 서버 정보는 검색하지 못합니다.

$ whois -h whois.nic.or.kr kisa.or.kr
--- 중간 생략 ---
# ENGLISH
Domain Name                 : kisa.or.kr
Registrant                  : KISA
Registrant Address          : , Garakbon-dong, Songpa-gu, Garakbon-dong, Songpa-gu Seoul, KR
Registrant Zip Code         : 138803
Administrative Contact(AC)  : KISA
AC E-Mail                   : webmaster@kisa.or.kr
AC Phone Number             : 02-405-5572
Registered Date             : 1996. 08. 20.
Last updated Date           : 2009. 09. 09.
Expiration Date             : 2010. 10. 15.
Publishes                   : Y
Authorized Agency           : Inames Co., Ltd.(http://www.inames.co.kr)
--- 이하 생략 ---

 

<참고 사항>

RPC(Remote Procedure Call, 원격 절차 호출)는 하나의 프로그램이 네트워크 상의 또 다른 컴퓨터에 있는 프로그램에 서비스를 요청할 때 사용하는 프로토콜입니다.이 때 서비스를 요청하는 프로그램은 네트워크에 대한 상세 내용을 알 필요는 없습니다(절차 호출이란 때로 함수 또는 서브 루틴 호출의 의미로도 사용함). RPC는 클라이언트/서버 모델을 사용할 때 서비스를 요청하는 프로그램이 클라이언트이고, 서비스를 제공하는 프로그램이 서버입니다. 다른 정상적인 또는 자체적인 프로시저의 호출과 마찬가지로 RPC도 요청하는 프로그램이 RPC의 처리 결과가 반환할 때까지 일시 정지합니다. 그러나 가벼운 형태의 프로세스나 같은 주소 공간을 공유하는 스레드 등은 여러 RPC를 동시에 수행할 수 있도록 허용합니다.

반응형

댓글