계속되는 ARP 메시지…

 이상한 일이었다.

 과제를 위해 네트워크의 트래픽 사용량을 찍어내던 중….이상한 현상을 발견하였다.

 나의 노트북에서 계속해서 ARP 메시지를 보내고 있었던 것이다.

 다른 일반적인 TCP나 UDP 패킷과는 달리, ARP메시지는 브로드 캐스트로 뿌려주는 메시지이기 때문에 이 메시지가 계속해서 네트워크에 뿌려지게 된다면 부하가 심할것이었다.

사용자 삽입 이미지

 원인을 계속 찾아보았지만 알수가 없었다.

 심지어는 KLDP에 이 문제를 올려보기도 했다.

 http://kldp.org/node/99349

 하지만 아무도 답을 달아주지 않았다.(관심점…ㅠㅠ)

 그래도 꿋꿋하게 원인분석에 들어갔다. 답이 나왔는데…어이없게도..

 얼마전…과제를 위해 설치했던 OpenVPN이 문제였다.

 OpenVPN이 리눅스 부팅과 동시에 자동으로 실행되어 매번 원격 서버에 접속을 위해 자동으로 ARP메시지를 뿌리고 있었던것…

 VPN이라 위부망으로 보내는 것이 아닌 내부망으로 보내는 것이었기에 나는 전혀 눈치채지 못하고 있었다.

 하긴…어디서 많이 보던 내부 IP 라고 생각했었다…;;;

 잠시간의 흥미로웠던 현상은 여기에서 끝이 났다.

네임서버 start….

 네임서버는 named 스크립트를 이용하여 사용하는 경우와 Bind 제어프로그램인 ndc를 이용하는 경우가 있다.

 named 스크립트를 사용하는 경우.

 
# /etc/init.d/named start

 bind 제어 프로그램을 사용하는 경우 다음의 두가지를 참고한다.

 # /etc/init.d/bind start
 혹은
 # ndc start

 

dns 명령어 패키지

 네임서버를 이용한 여러가지 유용한 프로그램들이 있다.

 보통 dig, host 등이 있는데 대부분은 기본적으로 사용가능하게 되어있다.

 하지만 리눅스 설치시, 최소 설치나 기타 다른 옵션들을 이용하여 설치를 하였을 경우 위의 명령어들이 작동되지 않는 경우가 있는데, 다음의 패키지를 설치하면 된다.

 dnsutils

 우분투나 데비안 시스템 사용자인 경우, 다음의 명령어를 입력하면 쉽고 간편하게 설치가 가능하다.

 # apt-get install dnsutils

arp (arp 캐싱)

 연결하고자 하는 시스템의 MAC 주소 확인

arp [옵션] (Language : text)
-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 : 파일에 있는 목록을 추가한다.

 TCP/IP 명령어이다. 시스템 사이의 통신에는 상대방의 MAC 주소가 필요하다. 이때 arp는 ARP(Address Resolution Protocol)을 이용하여 연결하고자 하는 시스템 IP 에 신호를 보내 MAC 주소를 받아온다.

 서브넷의 arp 정보는 연결 효율을 높이기 위해 /proc/net/arp 에 저장된다. 캐시에 저장된 정보는 추가/삭제할 수 있다. 이와 같이 저장된 arp 캐시의 내용을 자세히 보고 싶을 경우에는 다음과 같이 실행한다.

사용자 삽입 이미지

 seclab.kongju.ac.kr 라는 호스트에 대한 정보만 알고 싶다면 다음과 같이 한다.

사용자 삽입 이미지

 경우에 따라서, 시스템에서 기존의 이더넷 카드 대신 새 이더넷 카드를 설치했을 때 내부 네트워크 연결이 잘 되지 않는 경우가 있다. 이것은 arp 캐시가 기존 이더넷 카드의 MAC 주소를 저장하고 있어, 같은 IP 를 사용하더라도 인식하지 못하는 경우이다. 이 경우에는 arp -d 명령을 사용하여 정보를 삭제한 뒤 다시 시도한다.

 # arp -d seclab.kongju.ac.kr : 호스트명이 seclab.kongju.ac.kr 인 정보 삭제

사용자 삽입 이미지

 관련 명령어
 
 arping : 대상 주소에 ARP 패킷을 날린다.
 
 arpwatch : Ethernet/IP 주소의 진로를 추적한다.

 arpsnmp : Ethernet/IP 주소의 진로를 추적한다.

 tcpdump : 네트워크 인터페이스에서의 패킷 헤더들을 출력한다.