항상 좋은 정보 남겨주시는 넷매니아즈에 감사드리며, Proxy ARP 관련 문의글 남깁니다.
잘아시다시피 Proxy ARP란 ARP Request를 수신했을때 자신의 IP가 아니더라도 자신의 라우팅 테이블에 등록되어 있어 도달
가능하다고 판단되는 목적지에 대해서는 라우터가 자신의 MAC 주소로 대신 응답해 주는 기능인데요.
웹에서 찾아본 결과 [라우터에 Proxy ARP가 동작하면 Host에서 Default GW를 설정하지 않아도 외부 네트웍과 통신이
가능하다]고 나와있는데 제가 테스트한 바로는 이 말은 틀린것 같습니다.
예를위해 아래와 같이 간단한 구성도를 만들었습니다.
중간의 라우터에는 Proxy ARP가 enable 되어있고,
왼쪽에 있는 Host A에서 Default GW를 설정하지 않은 상태에서 ping 20.1.1.10 을 했을 경우 ping이 성공할까요?
일반적으로 웹에 기재되어 있는 말을 인용하면 Host A에서는 Default GW가 설정되어 있지 않으므로 20.1.1.10 으로 향하는
ARP Packet을 Broadcast 하여 라우터가 자신의 MAC 주소로 대신 응답하여 통신이 가능하다 라고 나와있는데요.
이는 잘못된 정보입니다.
Host A 에서 목적지 IP 20.1.1.10 인 ARP Request 를 만들어 Broadcast를 뿌린다는 말 자체에 오류가 있는데요.
Host A 는 목적지 IP를 보고 자신과 다른 외부 네트웍이라고 판단되면 Default GW에게 패킷을 전송하는데 이때 Default GW의
IP 정보가 없으므로 해당 패킷은 아예 Host 단에서 Drop 되고, ICMP로 Destination host unreachable을 찍어줍니다.
그런데 이런 경우에는 가능하기도 합니다.
윈도우 OS 계열이라면 도스창에서 route ADD 명령어로 직접 스태틱으로 라우팅을 입력시킬수 있는데요.
Host A에서 [route ADD 20.1.1.0 MASK 255.255.255.0 10.1.1.1] 이라고 입력하면 당연히 ping이 성공하며,
심지어 [route ADD 20.1.1.0 MASK 255.255.255.0 20.1.1.1] 이라고 입력해도 ping이 됩니다.
GW의 IP를 20.1.1.1로 잘못 입력했더라도 ARP Request는 라우터까지 도달하기 때문에 라우터에서 Proxy ARP 기능을
이용해서 자신의 MAC 어드레스로 대신 알려주게 되는거죠.
요약하자면 Proxy ARP가 enable 된 상태에서 Host에서 Default GW가 설정되어 있지 않더라도 외부 네트웍과 통신이
가능하다는 것은 틀렸다는 것을 말씀드리고자 써본 글입니다.
말이 참 길었는데요. 혹시 제가 설명한 부분 중 잘못된 부분이 있으면 말씀해 주세요.
지금 구성하신 환경이 잘 못 된 것 같네요.
Host A의 IP가 10.1.1.10/24이고 ping을 보낼려고 하는 대상이 20.1.1.110/24이면 Gateway가 필요합니다.
IP 대역이 틀리기에 Broadcast되지 않지요.
만약 대상을 10.1.2.110/24로 설정 후 위의 실험을 하시면 정상 동작할 것 같습니다.
라우터 우측 인터페이스의 IP 대역을 10.1.2..x/24 로 설정해서 테스트 하라는 말씀이신가요?
테스트 결과는 동일한데요. 10.1.2.x/24으로 하든 20.1.1.x/24 하든 어차피 10.1.1.x/24 대역과 틀린 네트웍이기
때문에 Gateway가 필요한건 마찬가지 아닌가요?
위의 환경을 보면 맨 앞자리가 IP 대역이 틀리기때문에 ARP로 상대방 MAC을 묻지않고 G/W로 패킷을 던지겠죠.
제가 작성한 글의 요지는 Host에서 Default GW의 IP를 설정하지 않은 상태에서 외부 네트웍과 통신이 가능한지
를 확인하자는 내용이구요. 웹에서 검색시에는 Proxy ARP 기능을 사용하면 가능하다고 적혀있으나 제가 테스트
해본 바로는 불가능하다는 글이였습니다.
왼쪽의 Host(A)의 IP를 10.1.1.10/16으로 설정한 후 우측의 Host(B)인 10.1.2.100/24로 설정해주면...
Host A가 B로 PING을 시도 시 10.1.x.x는 모두 direct로 연결될 수 있다고 판단하고 ARP를 던지게 됩니다.
Host A가 10.1.1.10/24로 설정되어 있으면 우측을 10.1.2.100/24로 수정하더라도 Host A는 Subnet이 다른 네트워크로 판단하니 ARP를 던지지 않고 Gateway에게 요청할 것 같네요.
첨에 제가 답변을 드릴 때 Host A나 Host B 모두 IP 설정을 좀 바꿨어야 하는대요.
요점은 Host A가 Host B와 direct로 연결 가능하다고 판단할 수 있도록 IP subnet을 주신 후 시험하시면 될 것같습니다.
proxy arp는 요즘에 사용되지 않는걸로 아는데 혹시 그러면 그 기능을 대체하기 위한 기술로는 무엇이 있나요.?
제가 예전에 올린 글이네요.
김성섭님. proxy arp가 요새 사용되지 않는다는건 어디서 들으신 내용인가요?
아직도 활발히 사용중이며, 시스코 IOS에서는 Default로 ON 되어 있습니다.
proxy arp라는 기능을 잘 사용하고 있는데 이 기능을 대체할 다른 기술이 필요할것 같지는 않습니다.
문제 가정이 잘못된거같습니다.,
지나가다 적어 봅니다. gw가 두개 있는 데 한곳에서 끌어당겨서 쓰려 할때 유용하게 사용하고 있습니다. 기본gateway는 다른 모든 packet 처리 특정 대역대간 연결을 하려할때 사용하니 편리하네요.
하,,,,,,,,, 그러니까 프록시 arp는 프록시 arp입니다 ㅇㅈ