Arp Table의 이해(네트워크가 잘 안잡힐때)

얼마전 IDC에서 서버작업을 하는데 할당된 IP가 부족한 일이 발생하였다.

기존에 IP를 두개 사용하던 서버에서 한개로 전환하고 남는 IP를 새로운 서버에 적용하였다.
그런데 뭔가 이상한 증상이 생긴다.

1. 외부서버 -> 새로운서버로 접속을 시도시 맨 처음 접속이 되자마자 끊겨버린다. 그뒤 접속이 되지 않는다.
2. 새로운서버 -> 외부서버로 접속시도시 접속 되고나서 콘솔창이 먹통이 된다.

새로운 서버의 방화벽은 전부 꺼져있는데 왜 이런 증상이 생길까.
해답은 ARP에 있었다.

ARP(Address Resolution Protocol) : IP->MAC Address로 전환

내가 겪었던 상황을 보자.

==================================================================
서버 A, B가 있고 이 두개의 서버는 같은 게이트웨이를 이용한다.

A: 192.168.10.100(00:0A:0B:52:23:32)

||                                   -> Router – 192.168.10.1
V                                           (3A:3F:4C:52:18:1A)
B: 192.168.10.101(10:2A:3C:42:32:17)
==================================================================

A에서 B로 가는 패킷에서는 다음과 같은 과정을 거친다.
1. A -> B로 발송하기 위한 IP주소(이는 통신하기위해서 1차적으로 연결대상인 상대방의 아이피를 입력받는다)
2. A의 ARP 모듈에서 B의 IP를 입력받아 MAC주소를 반환.

즉 A와B의 통신에서는 IP뿐만이 아닌 MAC주소까지 얻어야 되는 상황.
그런데 이와 같은 치명적인 문제가 발생하였다.

B의 기존 IP 192.168.10.101은 또 다른 서버 C의 eth1에서 쓰고 있었으며,
현재 C서버는 다음과 같이 동작하고 있었다.
eth0 : 192.168.10.103
eth1 : 켜졌으나 아이피 할당안됨
즉 ifdown eth1등의 동작이 없어 아이피는 할당되지 않았으나
실제로 선의 연결/네트워크 카드는 동작중이다.

ifdown eth1로 C의 eth1을 완전 죽이고 내부에서 테스트를 한다.
(switch에서는 다른 MAC을 가진 NIC에서 동일한 IP가 올라오니 헛갈릴수가 있다.)

버그등으로 잘 되지 않을때는 ifconfig eth1 down 등으로 device를 내리고
A 서버에서도 모든 디바이스를 죽인후 새로 아이피를 먹일 eth0만 활성화를 시킨후
Gateway까지 핑이 가면 다음과 같이 테스트를 한다.

arping -c 30 -l eth0 -s IPAddress Gateway_IP
(-c는 시도 회수)

보통의 경우 자동으로 갱신되지만 특별한 경우 ARP Table을
강제적으로 갱신해줘서 해결볼수 있다.

도큐멘트 에 올린 글 태그됨: ,

댓글 남기기