1. telnet : 원격서버접속
(1) telnet이란?
원격의 텔넷 서버에 접속하기 위한 시스템 기본 텔넷 클라이언트 프로그램이다.
(2) 사용법
telnet [hostname or IP_Address ] (port)
=> 포트를 입력하지 않으면 기본적으로 23번 포트로 연결된다. 왜냐하면 텔넷의 기본포트가 23번이기 때문이다. (참고로 ftp의 포트는 21번이고, 전체 포트의 확인은 /etc/services에서 한다.)
(3) 사용예
1) telnet 192.168.1.100
=> 192.168.1.100 서버로 텔넷서비스를 시도한다.
2) telnet mybestone.com
=> mybestone.com 이라는 도메인으로 텔넷서비스를 시도한다.
(4) 관련파일
1) /etc/hosts
ㄱ. 설명: 인터넷을 이용하기 위해서는 DNS서버를 이용한다. 이 DNS서버보다 먼저 참조하는 파일이 /etc/hosts파일이다. 이 파일에 해당 IP주소와 간단한 이름을 붙이면 그 간단한 이름만으로도 텔넷접속이 가능하다. 즉 /etc/hosts 파일에는 주로 DNS를 거치지 않고 연결될 수 있는 컴퓨터의 리스트를 나열한다. 어떻게 보면 윈도우의 단축아이
콘과 비슷하다.
ㄴ. 사용예
[root@www root]# cat /etc/hosts
192.168.3.137 posein
=> telnet posein 이라고 입력하면 해당 IP주소(192.168.3.137)로 telnet 접속된다.
ㄷ. 참고
/etc/hosts파일을 열어보면 기본값으로 127.0.0.1 localhost.localdomain localhost라는 설정이 있는데 이것은 그냥 나눈다. 127.0.0.1은 자기 자신을 가리키는 내부 IP 주소대역이고 localhost라는 것은 내부네트워크 테스트등에 유용하게 쓰인다.
2) /etc/issue, /etc/issue.net
사용자가 로그인 할 때 ‘login : ‘ 이라는 메시지를 보여주기 전에 출력되는 내용을 적는 파일이다. /etc/issue는 로컬에서 로그인할 때 보여주는 메시지이고, /etc/issue.net은 telnet을 통해 네트웍으로 접근해 올 때 보여주는 파일이다.
3) /etc/motd
성공적으로 로그인되었을 때 접속된 사용자에게 메시지를 화면에 보여주는 파일이다. 이 파일에 전달하고자하는 메시지의 내용을 적어넣으면 된다.
2. ftp
(1) 설명 : file transfer protocol의 약자로 원격의 FTP서버에 접속하여 파일을 전송하고 내려받도록 해주는 기본 클라이언트 프로그램이다.
(2) 사용법
ftp [hostname or IP_Address]
(3) 사용예
ftp 211.36.134.233
(참고) ftp는 파일을 다운받거나 업할때 쓰이는 프로그램이다. 대부분의 사이트에서 ftp는 계정없이도 가능하도록 되어있다. 로그인시 ID와 password를 anonymous(익명이라는 뜻)로 입력하면 된다. 물론 계정이 있는 경우에는 해당 ID와 패스워드를 입력하면 자신의 홈디렉토리로접속한다.
(4) ftp 명령어 : ftp접속후 help 또는 ? 라 입력하면 리스트를 볼 수 있다.
ls [dir_name] : 디렉토리의 리스트를 보여준다. ‘dir’명령과 동일하다.
put [File_name] : 로컬 시스템에 있는 파일을 원격의 FTP서버로 전송한다. send [file_name]과
같다.
get [file_name] : 원격의 ftp서버에 있는 파일을 자신의 로컬시스템으로 가져온다.
recv [file_name]과 같다.
size [File_name] : 원격의 ftp서버에 있는 파일의 크기를 출력한다.
mkdir [dir_name] : 원격의 ftp서버에 새로운 디렉토리를 생성한다.
rmdir [dir_name] : 원격의 ftp서버에 있는 디렉토리를 제거한다.
status : 현재의 상태를 출력한다.
exit : 현재의 ftp서버에서 빠져 나온다. quit명령과 동일하다.
mput [file1 file2 ..] : 로컬시스템에 있는 여러개의 파일을 동시에 보낼때 사용한다.
cd [dir_name] : 디렉토리를 이동한다.
rename [file1 file2] : 원격의 ftp서버에 있는 file1의 이름을 file2로 바꾼다.
chmod : 원격의 ftp서버에 있는 파일이나 디렉토리의 퍼미션을 조정한다.
delete [file_name] : 파일을 삭제한다.
mdetete [file1 file2 …] : 여러개의 파일을 동시에 삭제한다.
close : 현재 연결을 끊는다.
open IP주소 또는 호스트네임 : 새로운 서버로 연결을 시도한다.
lcd [dir_name] : 로컬 호스트의 작업디렉토리를 변경한다. 윈도우계열에서는 지원되지 않는다.
(5) 기타명령어
hash : 파일전송 및 다운시 진행상태를 ‘#’으로 나타낸다.
bi : 바이너리모드로 파일을 전송하거나 다운받는다.
3.ping(Packet Internet Groper)
(1) 개요 : 네트워크 연결을 확인할 수 있는 명령어로 원격의 호스트(로컬 호스트 포함)와 서로 연결이 되어 있는지의 확인여부와 패킷을 보내고 받는 시간이 출력되므로 어느 정도의
네트워크 장애가 있는지 미루어 짐작할 수 있다.
(2) 사용법
ping [option] IP_Address or Host_name
(3) option
-c 개수 : 몇 개의 패킷을 보낼 것인지를 정한다. 이 옵션이 없으면 무한대로 보낸다. 멈추고자할 경우에는 [CTRL]+[C]를 누른다.
-i 초 : 몇 초 간격으로 패킷을 보낼 것인지를 결정한다. 이 옵션이 없으면 기본값인 1초 간격으로 보낸다.
-s 패킷크기 : 보내고자 하는 패킷 크기를 bytes 단위로 설정한다. 이 옵션이 없으면 기본값은56bytes이다. 즉 기본 56bytes와 ICMP 헤더데이터인 8bytes를 합쳐서 총 64bytes패킷을 원격지 호스트로 보낸다. 만일 1024bytes의 패킷을 보내려고 한다면 ‘-s 1016’으로 설정한다. 최대 값은 헤더데이터인 8bytes를 뺀 65,507bytes이다.
-w 초 : 패킷을 보내고 몇 초 후에 실행을 멈출 것인지를 설정한다. 만약 -c 옵션과 동시에 사용했을 경우 둘 중 먼저 끝나는 값을 반영한다.
-n : IP 주소만으로 체크한다. DNS서버가 다운되었거나 사용할 수 없을 때 쓴다.
(4) 참고
1) 원리: ping은 ICMP echo packet을 보내어 상대방에게 응답 패킷을 받아 네트워크의 연결 상태를 체크한다. 응답시간, 유실된 패킷 등의 상태를 알 수 있다.
2) ping에 응답하지 않기
ㄱ. 설명: /proc/sys/net/ipv4/icmp_echo_ignore_all 의 파일을 vi편집기로 열어보면 0이라는 값으로 되어있다. 0값은 ping에 응답을 하고 1로 수정하면 ping에 응답하지 않는다.
ㄴ. 사용예
[root@mybestone /root]# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
3) 주의점: ping 명령어를 잘못 사용하면 원격지 호스트에 대한 공격(attack)이 될 수 있으므로 주의해야 한다.
(5) 사용예
[posein@www posein]$ ping -c 4 www.yahoo.com
PING www.yahoo.akadns.net (66.218.71.86) from 210.123.193.194 : 56(84) bytes of data.
64 bytes from w7.scd.yahoo.com (66.218.71.86): icmp_seq=0 ttl=55 time=167.032 msec
64 bytes from w7.scd.yahoo.com (66.218.71.86): icmp_seq=1 ttl=55 time=359.955 msec
64 bytes from w7.scd.yahoo.com (66.218.71.86): icmp_seq=2 ttl=55 time=129.962 msec
64 bytes from w7.scd.yahoo.com (66.218.71.86): icmp_seq=3 ttl=55 time=169.950 msec
— www.yahoo.akadns.net ping statistics —
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/mdev = 129.962/206.724/359.955/89.862 ms
=> ping은 ICMP 패킷에 64Bytes 메시지를 실어서 보낸다. icmp_seq는 패킷의 순서를 나타내고 time은 밀리세컨드(1/1000초) 단위로 이 값은 적게 나올 수록 상대편과 가깝거나 네트워크 부하가 적다는 것을 의미한다.
(6) 특징 : ping이 사용하는 프로토콜은 ICMP(Internet Control Message Protocol)이며, 결과값중 TTL(Time To Live)은 패킷이 살아서 갈 수 있는 라우팅 최대값이다.
4.ifconfig
(1) 개요 : ifconfig는 interface config의 약자로 네트워크 인터페이스 관련 명령어로 설정하거나 직접확인하는 명령어이다.
(2) 사용법
ifconfig [interface] [address] [up/down] [option]
=> (설명)
interface : NIC(Network Interface Card)를 말하며, 보통 랜(LAN)카드 또는 이더넷(Ethernet) 카드라 한다. 리눅스에서는 랜카드가 하나인 경우 eth0으로 설정되며, 만약 두개를 장착하면 두번째 랜카드는 eth1이 된다.
address : 보통 IP가 부여된다.
up/down : 네트워크를 활성화/비활성화 시킨다.
option : netmask, broadcast등을 설정할 수 있다.
(3) 사용예
1) ethernet카드에 부여된 IP확인
ifconfig [인터페이스이름]
=> 현재 네트워크 인터페이스에 설정되어 있는 값을 알 수 있다. 만약 인터페이스 이름을 입력하지 않으면 모든 인터페이스의 값을 출력한다. ifconfig -a 한것과 같다.
예) ifconfig
=> 현재 설정된 모든 이더넷카드의 IP설정을 보여준다.
ifconfig eth0
=> 첫번째 이더넷카드인 eth0의 IP설정을 보여준다.
2) ethernet카드의 작동을 중지시키거나 활성화시킨다.
ifconfig [인터페이스 이름] [up | down]
=> 특정 네트워크 인터페이스를 활성화(up)하거나 비활성화(down)시킨다.
예) ifconfig eth0 down
=> eth0카드의 작동을 중지시킨다. ifdown eth0과 같다.
ifconfig eth0 up
=> eth0카드의 작동을 활성화한다. ifup eth0과 같다.
3) ethernet카드에 IP주소, 넷마스크값, 브로드캐스트값을 부여한다.
ifconfig [인터페이스이름] [IP주소] [기타설정] [up | down] : 네트워크의 설정
예) ifconfig eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255 up
=> 첫번째 랜카드인 eth0에 IP주소를 192.168.0.2를 부여하고 Netmask는 255.255.255.0
Broadcast는 192.168.0.255를 부여하고 활성화시킨다.
ifconfig eth0 192.168.0.2 up
=> 첫번째 랜카드인 eth0에 192.168.0.2를 부여하고 활성화시킨다. 보통 IP주소만 부여하면 Netmask등은 자동설정된다. 하지만 기본 클래스인 A,B,C 클래스가 아닌 다른 서브넷를 사용할 경우에는 꼭 부여해야 한다.
ifconfig eth0 192.168.3.1 netmask 255.255.255.128 up
(4) ifconfig의 항목 설명
1) Link encap : Ehternet => 장치에 사용중인 프로토콜이 Ethernet임을 나타낸다.
2) Hwaddr : 이더넷 카드에 있는 고유 하드웨어 주소로, 48비트로 되어 있다. 보통 MAC(Media Address Control)주소라고도 한다.
3) inet addr : IP주소를 나타낸다.
4) Bcast : 브로드 캐스트 주소를 나타낸다.
5) Mask : 넷마스크(Netmask)값을 나타낸다.
6) UP : 인터페이스가 활성화되어 있음을 나타낸다.
7) BROADCAST : 브로드 캐스트를 사용한다.
8) RUNNING : 동작중임을 뜻한다.
9) MULTICAST : 멀티 캐스트를 사용한다.
10) MTU : Maximum Transmission Unit의 약자로 한번에 전송할 수 있는 최대 패킷의 크기를 말한다.
11) Metric : 라우팅할 때 참조되는 거리로 로컬인 경우 값이 1이 된다.
12) RX/TX : 받은 패킷/전송한 패킷의 총 개수(packets), 그 중 에러가 발생한 패킷의 수는 errors에, 그냥 버린 패킷의 수는 dropped, 손실된 패킷의 개수는 overruns에 표시된다.
13) collisions : 충돌이 발생한 패킷의 수
14) Interrupt : Ethernet 카드가 현재 사용중인 IRQ
15) Base address : Ethernet 카드가 현재 사용중인 주소
(5) IP Alias 사용하기
1) 설명: Ethernet카드에 IP를 하나만 부여하는 것이 아니라 여러 개의 IP를 부여할 수 있다. 이
러한 기능을 IP Alias라고 한다. 첫번째 Ethernet카드에 추가로 IP를 부여할 경우에는
eth0:0, eth0:1 등으로 표기하여 부여하면 된다.
2) 방법
[root@www root]# ifconfig eth0:0 203.247.xxx.xxx
(6) 참고
1) ifconfig명령으로 설정한 것은 시스템을 재부팅하면 그 정보가 사라진다. 따라서, 지속적으로 유지하려면 /etc/rc.d/rc.local파일에 위의 설정을 입력해 놓거나 /etc/sysconfig/network-scripts/ifcfg-eth0파일에 설정해 놓아야 한다.
2) ifconfig 명령으로 스니핑상태를 알 수 있다.
ㄱ. 정상적인 상태
[root@www /root]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:C1:26:03:65:08
inet addr:203.247.40.252 Bcast:203.247.40.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:250100 errors:2 dropped:0 overruns:0 frame:0
TX packets:7404 errors:0 dropped:0 overruns:0 carrier:0
collisions:394 txqueuelen:100
Interrupt:5 Base address:0xf000
ㄴ. 스니핑상태
[root@www /root]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:C1:26:03:65:08
inet addr:203.247.40.252 Bcast:203.247.40.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 // PROMISC상태
RX packets:250100 errors:2 dropped:0 overruns:0 frame:0
TX packets:7404 errors:0 dropped:0 overruns:0 carrier:0
collisions:394 txqueuelen:100
Interrupt:5 Base address:0xf000
5.라우팅과 route 명령어
(1) 라우팅의 개요
TCP/IP 프로토콜에서는 패킷들이 어디서부터 어디로 보내져야 하는지 결정이 되어야 하는데 이 경로를 결정하는 것이 라우팅이다. 이러한 경로를 적어놓은 것을 라우팅 테이블이라고 한다.
(2) 라우팅의 종류
1) 정적라우팅(Static Routing): 라우팅 경로를 시스템 관리자가 직접 적어주는 방식으로 일반적으로 사용하는 방법이다.
2) 동적라우팅(Dynamic Routing)
ㄱ. 설명: 라우팅 경로를 수동으로 작성하는 것이 아니라 라우팅 프로토콜을 사용해서 경로를 동적으로 변화시키는 방법이다. 이것은 주로 라우터와 라우터 사이에 사용된다. 리눅스 시스템을 라우터로 사용하지 않는다면 동적라우팅을 설정할 필요는 없다.
ㄴ. 동적라우팅을 사용하는 프로그램의 종류
a. routed: RIP(Routing Information Protocol)을 사용하는 동적 라우팅 데몬프로그램이다.
b. gated: OSPF(Open Short Path First)프로토콜을 사용하는 동적 라우팅 데몬프로그램이다.
(3) 라우팅관련 명령어: route
1) 설명: route 명령어는 현재 사용하고 있는 리눅스 시스템의 라우팅 테이블이 어떻게 구성되어 있는지 알 수 있다. 또한, 라우팅 정보를 추가,삭제할 수 있다.
2) 사용법
route [add/del] [-destination] [netmask 넷마스트값] [gw 게이트웨이값] [[dev] [NIC]]
=> 설명
add/del : 라우팅 테이블에 추가(add)하거나 삭제(del)한다.
-destination : 호스트주소(-host), 네트워크 주소(-net), default를 지정한다.
netmask : 넷마스크값을 지정한다. 일반적으로 ifconfig명령으로 가능하므로 생략한다.
gw : 호스트가 사용할 게이트웨이주소를 지정한다.
(4) 사용예
1) 라우팅 테이블 확인
[root@mybestone ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
203.247.40.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 203.247.40.1 0.0.0.0 UG 0 0 0 eth0
=> 현재 설정되어 있는 라우팅 테이블을 보여준다. netstat -r 명령과 같다.
(항목설명)
– Destination: 목적지 네트워크 주소를 나타낸다. default로 표시되는 것은 목적지 네트워크로 등록되지 않은 다른 모든 네트워크 주소를 처리하는 곳이다. 네트워크 주소는 IP주소할당법을 따른다. 시스템의 주소가 192.168.1.1이고 넷마스크가 255.255.255.0이면 C클래스이므로 네트워크 주소는 192.168.1.0 이 된다.
– Gateway: 목적지 주소로 보내기 위한 게이트웨이 주소를 가리킨다. 보통 목적지가 자신의 네트워크 인터페이스와 직접 연결되어 있는 것이면 ‘*’로 표시되고 그러지 않으면 게이트웨이의 IP주소가 입력된다.
– Genmask: 목적지의 네트워크 주소를 알아내기 위한 넷마스크이다. IP주소에 Netmask를 AND연산자로 계산하면 목적지의 네트워크 주소를 알 수 있다.
– Flags: 목적지 네트워크와의 연결 상태를 보여준다. 상태로 표시되는 기호는 다음과 같
다.
U: 인터페이스가 사용되고 있음을 나타낸다.
G: 라우트가 게이트웨이로 사용되고 있음을 나타낸다.
H: 오직 단독 호스트만이 라우트를 거쳐서 접근할 수 있다. 이러한 경우의 루프백 엔트리는 127.0.0.1이 된다.
D: 테이블 엔트리가 설정된 경우, ICMP 리다이렉트 메시지로 운영된다.
M: 테이블 엔트리가 설정된 경우, ICMP 리다이렉트 메시지에 의해 수정되고 있음을 나타낸다.
– Metric: 목적지 네트워크와의 거리(Hop count)를 나타낸다. 직접 연결되어 있으면 0이고 라우터를 하나 거칠때마다 1씩 증가한다.
– Ref/Use: 다른 라우터가 목적지로 가기 위해 참조한 횟수와 사용한 횟수를 나타낸다.
– Iface: 목적지 네트워크와 연결된 인터페이스를 가리킨다.
2) 라우팅 정보 삭제
route del -net [IP_Address] netmask [netmask값] dev [Net_interface]
예) route del -net 192.168.3.0 netmask 255.255.255.0
3) 라우팅 정보 추가
route add -net [IP_Address] netmask [netmask값] dev [Net_interface]
예) route add -net 192.168.3.128 netmask 255.255.255.192 dev eth0
4) 기본 게이트웨이 삭제
route del default gw [IP_Address] dev [Net_interface]
예) route del default gw 192.168.3.1
5) 기본 게이트웨이 추가
route add default gw [IP_Address] dev [Net_interface]
예) route add default gw 192.168.3.254 eth0
(주의) route명령도 시스템이 재부팅되면 그 정보는 모두 사라진다. 따라서 /etc/sysconfig/network와 /etc/sysconfig/network-scripts/ifcfg-eth0 파일을 직접수정해야 한다.
6. netstat
(1) 개요 : 네트워크의 연결 상태를 확인하는 명령
(2) 사용법
netstat [option] [address family options]
(3) option
-a : 연결된 모든 소켓을 출력
-n : 기호화된 호스트나 포트이름, 유저이름 대신에 숫자로 표시한다. 예를 들면 www은 80으로 표기한다.
-p : 소켓에 대한 PID/프로그램을 출력
-r : 라우팅 테이블을 출력
-i : 인터페이스 테이블을 출력
-s : SNMP(Simple Network Managemanet Protocol)와 같은 네트워크 통계를 출력
-c : 계속되는 리스트를 출력
-t : tcp를 이용하여 접속한 리스트를 출력한다.
-u : udp를 이용하여 접속한 리스트를 출력한다.
(4)address family options
1) 형태 : –protocol (inet, unix, ipx, ax25등)
2) 사용법
netstat –inet
(5)사용예
1) netstat -anp
=> 연결된 모든 소켓의 PID및 프로그램을 출력하되 호스트, 포트이름등을 숫자로 출력한다.
2) netstat -r
=> 라우팅 테이블에 대한 정보를 출력한다. route 명령의 결과와 유사하다.
3) netstat -t
=> tcp로 접속한 리스트를 출력한다.
4) netstat -inet -p
=> 인터넷으로 접속한 상태를 보여주고 프로그램과 PID를 출력한다.
(6) netstat명령의 결과에서 state부분에 나타나는 연결상태
LISTEN : 서버의 데몬이 떠서 접속 요청을 기다리는 상태
SYS-SENT : 로컬의 클라이언트 어플리케이션이 원격 호스트에 연결을 요청한 상태
SYN_RECEIVED : 서버의 원격 클라이언트로부터 접속 요구를 받아 클라이언트에게 응답을 하였지만, 아직 클라이언트에게 확인 메시지는 받지 않는 상태
ESTABLISHED : 3Way-Handshaking이 완료된 후 서로 연결된 상태
FIN-WAIT1, CLOSE-WAIT, FIN-WAIT2 : 서버에서 연결을 종료하기 위해 클라이언트에게 종결을 요청하고 회신을 받아 종료하는 과정의 상태
CLOSING : 흔하지 않지만 주로 확인 메시지가 전송도중 분실된 상태
TIME-WAIT : 연결은 종료되었지만 분실되었을지 모를 느린 세그멘트 위해 당분간 소켓을 열어놓은 상태
CLOSED : 완전히 종료된 상태
7. traceroute
(1) 개요 : 특정 호스트 또는 연결된 노드를 알아보는 명령어로 특히 라우팅에 어떤 장애가 있을경우 그 위치를 파악할 수 있다. 윈도우계열의 tracert 명령과 유사하다. 루트권한자만 사용가능한 명령이다.
(2) 사용법
traceroute [Host_name or IP_Address]
(3) 사용예
[root@www root]# traceroute www.yahoo.co.kr
traceroute to yahoo.co.kr (211.32.119.151), 30 hops max, 38 byte packets
1 203.247.40.1 (203.247.40.1) 1.692 ms 1.688 ms 1.663 ms
2 203.247.37.2 (203.247.37.2) 0.656 ms 0.493 ms 0.456 ms
3 yahoo.co.kr (211.32.119.151) 0.593 ms 0.854 ms 0.592 ms
=> 각 3개의 TTL값을 전달하여 시간을 보여준다.
(4) 참고
1) traceroute 동작원리
ㄱ. 1.1.1.1에서 목적지 10.10.10.10에 대한 TTL=1인 ICMP echo request를 생성하고 전달한다.
ㄴ. 첫번째 ip네트워크장비가 TTL을 1로 감소시키고 TTL=0이 되므로 TTL이 모자라 더이상 packet 전달할 수 없다는 ICMP time exceed를 1.1.1.1에게 전달하여 delay를 알아낸다.
ㄷ. 1.1.1.1에서는 TTL=2인 ICMP echo request를 보낸다. 목적지까지 가는 경로상의 두번째 장비가 ICMP time exceed를 발생시키고 1.1.1.1에서는 이것으로 두번째 장비까지의 delay를 알아낸다.
ㄹ. 이 같은 방법을 연속적으로 하여 해당 목적지까지 계속 보낸다.
2) traceroute time out : *
ㄱ. 종종 목적지 중간경로에 있는 장비에서 timeout현상(*로 표기됨)이 발생하는데 이것이 source와 destination간의 네트웍상태를 정확히 나타내는 것은 아니다.
ㄴ. 몇몇 IP네트워크 장비에서 ICMP packet이 아닌 다른 일반적인 packet에 보다 많은 시간을 할애하도록 설계된 경우가 있는데, 해당 IP네트워크장비가 매우 바쁠경우에 TTL=0인 packet에 대해서 ICMP time exceed등을 생성하고 전달하는 작업을 하지 않는 경우가 많다.
ㄷ. 다른 경우는 중간경로에 있는 IP네트워크 장비가 아예 ICMP echo reply 혹은 ICMP time exceed를 발생하지 않는 경우인데 주로 이러한 장비들은 Firewall인 경우가 많다. 그러나 Firewall이라고 해서 ICMP echo reply, ICMP time exceed를 생성하지 않는 것이 아니며, 관리자의 설정에 따라 좌우된다.
ㄹ. *의 결과는 traceroute수행시 중간경로상의 timeout현상에 대해서는 무시해도 좋으며, 최종목적지와 ping상태가 좋은지를 파악하는 것이 보다 중요하다.
8. hostname
(1) 개요 : 호스트네임을 화면에 출력한다. 명령어는 /bin/hostname에 있다.
(2) 사용법
1) hostname 출력
hostname [option]
*option
-v : 호스트네임을 출력한다.
-d : DNS 도메인 네임을 출력한다.
예)eles.co.kr로 등록했으면 eles.co.kr로 값이 나타난다.
-f : 완전한 호스트네임(FQDN)을 출력한다.
예)www.eles.co.kr
-a : 호스트 네임에 대한 Alias이름을 출력한다.
-i : 호스트 네임에 대한 IP주소를 출력한다.
2) hostname 바꾸기
예) hostname new_hostname
(3) 사용예
1) [posein@www posein]$ hostname
www
2) [posein@www posein]$ hostname -i
203.247.xxx.xxx
(4) 참고
1) 설명: hostname 명령어를 이용하여 hostname을 변경한 경우 재부팅을 하면 변경전의 값으로 돌아간다. 그러므로, 완전한 변경을 하려면 다음과 같은 절차를 거쳐야 한다.
2) 방법
ㄱ. /etc/sysconfig/network 파일에서 ‘HOSTNAME’이라는 항목의 값을 변경한다.
ㄴ. /etc/rc.d/init.d/network restart하거나 재부팅한다.
9. host
(1) 개요 : 원격의 호스트에 대한 정보를 출력
(2) 사용법
host [option] 호스트명
(3) option
-a: -a: 원격호스트에 모든정보(A, MX, NS 등)를 보여준다.
-v: 좀 더 자세히 출력한다.
(4) 사용예
1) [root@www root]# host kr.yahoo.com
=> 기본 IP주소에 대한 정보를 보여준다.
2) [root@www root]# host -a daum.net
=> 모든 정보를 보여준다.
10. nslookup
(1) 개요 : DNS를 조회하는 명령이다. 바로 값을 DNS서버를 조회할 수도 있고, 여러 도메인을 조회할 경우에는 대화형으로 조회할 수도 있다.
(2) 사용법
nslookup [option] [hostname]
(3) option
-type=mx : mx설정관련 부분을 출력한다.
(4) 사용예
1) nslookup => 현재서버의 DNS이름과 IP를 출력하고, ‘>’와 함께 대화형모드로 접속한다.
2) nslookup yahoo.co.kr => 현재서버의 DNS이름과 IP출력과 함께 yahoo.co.kr의 사이트의 정보도 함께 출력한다.
3) nslookup -type=mx yahoo.co.kr => yahoo.co.kr의 mx(메일설정관련)에 대한 정보도 출력한다.
4) 대화형모드의 사용 : 아무 옵션이나 도메인 없이 그냥 nslookup이라는 명령만 내리면 ‘>’와 함께 대화형 모드로 접속한다. 여기에서는 여러 도메인의 정보를 조회할 경우에 편리하다. 조회후에는 exit를 치면 셀프롬프트상태로 빠져나온다.
ㄱ. > server yahoo.co.kr => 대화형모드 접속후에는 ‘server’라는 입력한 후 도메인네임을 적어주면 정보가 나타난다.
ㄴ. > set type=mx
> mybestone.com
Server: 203.247.40.252
Address: 203.247.40.252#53
mybestone.com mail exchanger = 10 mybestone.com.
=> 특정도메인의 메일서버를 확인한다.
ㄷ. > set type=ns
> mybestone.com
Server: 203.247.40.252
Address: 203.247.40.252#53
mybestone.com nameserver = ns.mybestone.com.
=> 특정도메인의 네임서버를 확인한다.
ㄹ. > exit
=> nslookup 대화형모드를 중단한다.
11. dig
(1) 설명: 도메인명(FQDN:Fully Qualified Domain Name)으로 정보를 알아볼 수 있는 명령이다.
(2) 사용법
dig 도메인명 [type]
=> [type] 에는 MX, A, ANY 등 DNS 서버설정에 사용하는 값을 지정할 수 있다.
(3) 사용예
1) [posein@www posein]$ dig www.daum.net
; <<>> DiG 9.2.1 <<>> www.daum.net
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47916
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 2, ADDITIONAL: 0
;; QUESTION SECTION:
;www.daum.net. IN A
;; ANSWER SECTION:
www.daum.net. 86400 IN A 211.233.28.114
www.daum.net. 86400 IN A 211.233.28.115
www.daum.net. 86400 IN A 211.233.28.116
www.daum.net. 86400 IN A 211.32.117.21
www.daum.net. 86400 IN A 211.233.28.112
www.daum.net. 86400 IN A 211.233.28.113
;; AUTHORITY SECTION:
daum.net. 86400 IN NS ns2.daum.net.
daum.net. 86400 IN NS ns.daum.net.
;; Query time: 159 msec
;; SERVER: 203.247.40.252#53(203.247.40.252)
;; WHEN: Wed Jan 29 09:40:20 2003
;; MSG SIZE rcvd: 161
2) [posein@www posein]$ dig www.daum.net mx
=> 메일서버 세팅인 MX 설정관련 부분만 보여준다.
(참고) ARP(Address Resolution Protocol)
(1) 주소결정 프로토콜이라고 한다.
(2) 하드웨어주소(NIC 주소, MAC 주소라고도 함)를 IP주소(논리주소)와 연계시키기 위한 프로토콜.
(3) 48bit인 하드웨어 주소를 32bit인 IP주소와 매핑시킨다.
(4) 목적 호스트의 IP주소를 알고 있는데, 물리주소(MAC address)를 모르는 경우에 사용한다.
12. arp
(1) 개요 : ARP(Address Resolution Protocol)캐쉬를 설정하는 것으로 ARP캐쉬는 현재 접속되어 있는 32비트 IP주소를 하드웨어주소(MAC address)로 바꾸어서 기억하는 곳이다. 이 ARP캐쉬를 보면 현재 들어와 있는 호스트를 알아낼 수 있다.약 15분정도 쓰이지 않은 MAC주소는 ARP캐쉬에서 제거된다.
(2) 사용법
arp [option]
(3) option
-a : ARP캐쉬에 기록되어 있는 것 중 특정한 호스트의 정보를 보여준다.
-d : ARP캐쉬에서 해당 호스트를 제거한다.
-n : 결과를 도메인 주소대신에 32bit IP주소로 출력한다.
(4) 사용예
1) [root@www /root]# arp
AddressHWtypeHWaddress Flags Mask Iface Flags Mask Iface
cslee.hannam.ac.kr ether 00:A0:C9:8E:8C:4C C eth0
192.168.0.3 ether 00:60:97:AA:FF:71 C eth1
203.247.40.1 ether 00:E0:16:7C:63:8C C eth0
2) [root@www /root]# arp -n
Address HWtype HWaddress Flags Mask Iface
203.247.40.164 ether 00:A0:C9:8E:8C:4C C eth0
192.168.0.3 ether 00:60:97:AA:FF:71 C eth1
203.247.40.1 ether 00:E0:16:7C:63:8C C eth0
13. 네트워크 설정관련 유틸리티
(1) 개요
ifconfig, route, netstat, ping, traceroute 등은 리눅스를 포함한 모든 유닉스계열에서 공통적으로 사용되는 명령어이다. linuxconf(레드햇리눅스 7.1 이전에 사용)는 리눅스에서만 실행되며, netconfig는 레드햇리눅스에서 text(콘솔)모드에서 사용되고, netcfg와 netconf는 레드햇리눅스의 X-window에서 실행된다. 물론 netconf명령은 콘솔모드에서도 실행되지만 X-window만큼 원할하지 못하다.
(2) 관련유틸리티
1) netcofig
ㄱ. 설명: 콘솔에서 손쉽게 IP주소, 넷마스크, 게이트웨이, 네임서버 주소를 입력할 수 있다. 리눅스를 텍스트모드로 설치할 때 나타나는 설정유틸리티로 kudzu라는 데몬이 부팅시에 이용하는 유틸리티이기도 하다.
ㄴ. 사용법
netconfig [option] [Network_interface]
ㄷ. option
–device : 이더넷카드 디바이스명을 지정한다.
ㄹ. 사용예
a. [root@www root]# netconfig
=> 기본 eth0의 네트웍을 설정한다.
b. [root@www root]# netconfig –device eth1
=> eth1의 네트웍을 설정한다.
2) netconf : linuxconf에 포함되어 있는 모듈로 네트워크에 관련된 모든 설정을 할 수 있다. (레드햇 7.x버전이하만 가능하고 레드햇 8 버전 이후에서는 지원하지 않는다.)
3) netcfg : X-window에서 지원하는 네트워크 유틸리티이다. 이 유틸리티를 사용하면 /etc/sysconfig/network파일과 /etc/sysconfig/network-scripts/ifcfg-eth#파일에기록되고, 네임서버는 /etc/resolv.conf에 기록된다. (레드햇 7.x버전이하만 가능하고 레드햇 8 이후버전에서는 지원하지 않는다.)
4) redhat-config-network
ㄱ. 설명: X-window인 GNOME 기반 네트워크 유틸리티로 레드햇 8 버전에서 지원한다. neat라고
입력해도 된다.
ㄴ. 사용법
redhat-config-network
neat
ㄷ. 참고
이 툴을 사용하면 /etc/sysconfig/networking이라는 디렉토리안에 설정과 관련된 디렉토리 및파일들이 생성된다. 또한 /etc/sysconfig/network-scripts 디렉토리안의 설정과 같은 파일들이 /etc/sysconfig/networking/profiles 디렉토리안에 같이 생성된다.
14. 기타 네트워크관련 유틸리티
(1) mii-tool
1) 설명: Media Independent Interface(MII) Tool의 약자로 보통 네트워크 인터페이스의 상태를 체크하고 설정하는 유틸리티이다.
2) 사용법
mii-tool [option] [Network_interface]
3) option
-v : 상태정보를 더 자세히 보여준다. (–verbose)
-r : 자동인식을 위해 재시작한다. (–restart)
-F : 강제로 설정한다. (–force)
4) 사용예
ㄱ. [root@www root]# mii-tool
eth0: autonegotiation failed, link ok
eth1: negotiated 100baseTx-FD, link ok
=> 현재 설정된 이더넷카드의 정보를 보여준다.
ㄴ. [root@www root]# mii-tool -v
eth0: autonegotiation failed, link ok
product info: vendor 00:00:00, model 0 rev 0
basic mode: autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
eth1: negotiated 100baseTx-FD, link ok
product info: vendor 00:00:00, model 0 rev 0
basic mode: autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
=> 이더넷카드의 정보를 좀 더 자세히 보여준다.
ㄷ. [root@www root]# mii-tool -v –force 100baseTx-FD eth1
=> 자동인식한 설정을 없애고, 강제적으로 설정을 한다.
ㄹ. [root@www root]# mii-tool -r
=> 자동으로 인식하도록 한다.
(2) mtr
1) 설명: 네트워크 진단 도구로 traceroute 명령과 유사하며 각각의 라우터에 패킷을 보내 확인한다.
2) 사용법
mtr 도메인명
3) 사용예
mtr www.yahoo.co.kr