본문으로 바로가기

TIL 2021-11-15 ICMP 2, Proxy ARP

category TIL 3년 전

 

RS, RA

Multicast Link에서의 사용을 위한 Router Advertisement, Router Solicitations

 

호스트가 Router Solicitation을 보내면 라우터들이 Advertisement를 보내줌

 

각각의 라우터는 주기적으로 각각 멀티캐스트 인터페이스들에게 그 인터페이스의 IP 주소를 알려주는 RA를 Broadcast한다

 

default rate은 7~10분, lifetime은 30분

 

링크에 연결된 호스트가 시작되면 즉시 advertisement를 요청하는 RS를 broadcast할수 있음

 

Router discovery message는 라우팅 프로토콜을 구성하지 않음. 이웃된 라우터의 존재를 호스트에게 알려주지만 어떤 것이 제일 좋은지는 알려주지 않음

 

만약 호스트가 특정 목적지를 위해 성능이 나쁜 first-hop router를 고르면 그 라우터로부터 ICMP Redirect를 받아 더 좋은 것을 인식할수 있음.

 

 

 

 

Proxy ARP

Address Resolution Protocols

 

Proxy ARP는 다른 머신에 의도된 ARP request를 답변하는 것이다. identity를 위조함으로써 라우터는 올바른 목적지로 패킷을 라우팅할 책임이 생긴다.

 

Proxy ARP는 default gateway나 라우팅 설정할 필요 없이 서브넷의 machine이 remote subnet에 도달하게 도와줌

 

1. 서브넷 A의 호스트 A(172.16.10.100)는 서브넷 B의 호스트D(172.16.20.1200)에 패킷 보내야함

 

2. 호스트 A가 directly connnected되었다고 믿는 기기와 통신하기 위해서는 목적지에 ARP request를 보내야함.

 

3. 따라서 호스트 A가 D에 패킷을 보낼때, A는 D가 direct connected되어있다고 믿고, 호스트 D에 ARP Request 보냄.

 

4. D에 도달하기 위해서는 D의 맥 주소를 알아야하므로, 서브넷 a에 ARP request를 보냄.

 

5. ARP 요청이 broadcast이므로 서브넷 A의 모든 노드에 도착하지만 라우터는 default로는 broadcast를 forward하지 않으므로 D에는 도달하지 못함.

 

6. 한 라우터가 해당 주소가 다른 서브넷에 있고 D에 도달할수 있다면 호스트 A에게 자신의 맥 주소를 응답함

 

이것이 호스트 A에게 라우터가 보내는 Proxy ARP다. ARP Request는 항상 최초 request에게 유니캐스트임.

 

 

서브넷 A의 호스트들의 ARP cache는 서브넷 B의 모든 호스트에 대해서 라우터의 맥 주소로 채워짐. 따라서 서브넷 B로 향하는 모든 패킷들은 그 라우터에게로 보내짐. 그 라우터는 패킷들을 서브넷 B로 forward함.

 

Proxy ARP의 장단점

 

각 네트워크마다 라우터를 가지지 않고도 하나의 라우터만을 가진 네트워크를 설정하는게 가능하다.

 

호스트는 네트워크의 physical detail을 하나도 모르고 목적지에 단순히 ARP 요청만을 보내서 도달할수 있는 flat network라고 추측함-> 이것은 해당 세그먼트에 ARP 트래픽량을 증가시킴.

 

호스트가 모든 ip의 ARP 테이블을 가지고 있어야하므로 많은 entries를 소비함.

 

ARP 요청에 다른 맥주소를 전송하는 ARP Spoofing attack과 본질적으로 똑같으니, 정상 작동인지 스푸핑인지 알 방법이 없음.