1. arp(ARP 캐싱) |
1) 경로 : /sbin/arp
2) 요약 : 연결하려는 시스템의 MAC 주소 확인
3) 사용 방법 : arp [옵션]
4) 옵션
-v : ARP 상태를 출력
-t type : ARP 캐시에 올라와 있는 타입을 검색, ether(Ethernet), ax25(AX.25 packet radio) 등이 있으며 ether가 기본 타입
-a [hosts] : 등록된 호스트 중 지정한 호스트의 내용을 보여줌, 호스트를 지정하지 않으면 등록된 모든 호스트를 출력
-d [host] : 지정한 호스트를 목록에서 삭제
-s host hardware-address : 호스트의 하드웨어 주소 즉 호슽 MAC 주소를 추가, 이더넷 카드의 경우 6자리의 16진수로 되어 있음
-f file : 파일에 있는 목록을 추가
5) 추가 설명
시스템 사이의 통신에는 상대방의 MAC 주소가 필요합니다. 이때 arp 명령어는 ARP를 이용하여 상대 시스템 IP에 신호를 보내 MAC 주소를 받아 옵니다. 서브넷의 ARP 정보는 연결 효율을 높이기 위해 /proc/net/arp에 저장됩니다. 캐시에 저장된 정보는 추가/삭제할 수 있습니다.
※ ARP(Address Resolution Protocal) : 네트워크 상에서 IP 주소와 MAC 주소의 연관성을 만들기 위해 사용하는 프로토콜입니다.
예를 들어 호스트 A가 호스트 B에게 IP 패킷을 전송하려고 하는데, A가 B의 MAC 주소를 모르는 경우, ARP 프로토콜을 사용하여 목적지 B의 IP 주소와 브로드캐스팅된 MAC 주소 0xFFFFFFFFFFFF를 가지는 ARP 패킷을 네트워크 상에 전송합니다. B는 ARP 패킷에서 자신의 IP 주소를 발견하면 자신의 MAC 주소를 A에게 돌려보냅니다. 이와같은 방식으로 수집된 IP주소와 이에 해당하는 MAC 주소 정보는 각 호스트의 ARP 캐시라 불리는 메모리에 테이블 형태로 저장되어 다음 패킷을 전송할 때 다시 사용합니다.
ARP와는 역으로, 호스트가 자신의 물리 네트워크 주소는 알지만 IP 주소를 모르는 경우, 서버로부터 IP주소를 요청하기 위해서는 R(Reverse)ARP를 사용합니다.
시스템에서 이더넷 카드를 교체했을 때 내부 네트워크 연결이 잘 안되는 경우가 있습니다. ARP 캐시가 기존 이더넷 카드의 MAC 주소를 저장하고 있어서 같은 IP를 사용하더라도 인식하지 못하는 것입니다. 이 경우에는 -d 옵션을 사용하여 정보를 삭제한 뒤 다시 시도합니다.
예) arp 캐시 내용 보기
# arp -v
Address HWtype HWaddress Flags Mask Iface
xxx.xxx.xxx.xxx ether 00:1a:4a:e1:87:33 C eth0
xxx.xxx.xxx.xxx ether 31:22:1a:11:e4:65 C eth1
Entries: 2 Skipped: 0 Found: 2
예) chanchan.com 이라는 호스트 정보 확인
# arp -a chanchan
chanchan.com(xxx.xxx.xxx.xxx) at
00:01:45:e1:3d:3a [ether] on eth0
예) 호스트명이 park인 정보를 삭제
# arp -d park
2. arping(네트워크 연결 확인) |
1) 경로 : /sbin/arping
2) 요약 : ARP 요청을 이용한 네트워크 연결 확인
3) 사용 방법 : arping [옵션]
4) 옵션
-c count : arping의 개수를 지정
-w timeout : w 옵션 뒤 시간(초)을 지정하여 그 시간(초)까지만 arping을 실행
-I(대문자 i) device : 이더넷 장치를 지정
-s source : 소스(source) IP를 지정
5) 추가 설명
ping의 변경으로 ICMP 패킷 대신 ARP 요청과 응답을 이용하여 해당 IP 주소의 MAC 주소를 찾거나, MAC 주소가 있을 때 IP 주소를 찾습니다. 또한 ICMP 패킷을 차단한 호스트라도 단지 연결성만을 검사하고 싶은 경우 arping를 쓰면 됩니다.
※ ICMP(Internet Control Message Protocol의 약자로 호스트 서버와 인터넷 게이트웨이 사이에서 메시지를 제어하고 에러를 알려주는 프로토콜입니다. 라우터가 네트워크 경로를 설정할 수 없거나 데이터를 전달할 수없을 때, 네트워크 상의 문제를 해결하도록 정보를 보내는데 이용하는 프로토콜입니다. ping 명령어도 이 프로토콜을 사용합니다.
※ TCP(Transmission Control Protocol의 약자로 인터넷 상의 컴퓨터 사이에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용되는 프로토콜로 OSI 통신 모델에서 TCP는 4번째 층인 트랜스포트 계층에 속합니다. TCP는 메시지가 각 단의 응용 프로그램 사이에서 교환되는 동안 연결이 유지되기 때문에 연결 지향 프로토콜이며 데이터 패킷을 순서를 제공합니다.
※ UDP(User Datagram Protocol)의 약자로 IP를 사용하는 네트워크 내에서 컴퓨터 간에 메시지가 교환될 때 제한된 서비스만을 제공하는 통신 프로토콜입니다. TCP와는 달리 도착하는 데이터 패킷의 순서를 제공하지 않습니다. 대신, 처리 속도가 빠르므로 교환해야 할 데이터가 매우 적은 경우 유용합니다.
예) 자신의 시스템으로 arping을 3번 보내서 확인
# arping -c 3 localhost
ARPING 127.0.0.1 from xxx.xxx.xxx.xxx eth0
Unicast reply from 127.0.0.1 [00:01:43:e3:32:a2] 2.101ms
Unicast reply from 127.0.0.1 [00:01:43:e3:32:a2] 2.001ms
Unicast reply from 127.0.0.1 [00:01:43:e3:32:a2] 2.122ms
Sent 3 probes (1 brodcast(s))
Received 3 response(s)
예) 여러 네트워크 디바이스의 연결성 확인
# arping -I eth1 -c 3 chanchan.com
ARPING xxx.xxx.xxx.xxx from xxx.xxx.xxx.xxx eth0
Unicast reply from xxx.xxx.xxx.xxx [1a:3d:4f:44:32:67] 2.321ms
Unicast reply from xxx.xxx.xxx.xxx [1a:3d:4f:44:32:67] 2.101ms
Unicast reply from xxx.xxx.xxx.xxx [1a:3d:4f:44:32:67] 2.211ms
Sent 3 probes (1 broadcast(s))
Received 3 response(s)
'IT 이야기 > Linux 명령어' 카테고리의 다른 글
[RHEL6] 네트워크 명령어 3탄(ftp, host, hostid, hostname) (0) | 2020.01.22 |
---|---|
[RHEL6] 네트워크 명령어 2탄(dig, dnsdomainname, ethtool) (0) | 2020.01.22 |
[RHEL6] 계정관리 명령어들 9탄(users, w, who, whoami) (0) | 2020.01.02 |
[RHEL6] 계정관리 명령어들 8탄(pwconv, su, useradd, userdel) (0) | 2020.01.02 |
[RHEL6] 계정관리 명령어들 7탄(newgrp, newusers, passwd, pwck) (0) | 2019.12.31 |
댓글