초기 부팅시 ARP 프로토콜 전송에 대한 질문
글쓴이: mc99 / 작성시간: 월, 2003/09/08 - 4:32오후
먼저 저는 컨트롤러의 펌웨어 개발자 입니다.
궁금한 점은
1. 컨트롤러의 MAC 어드레스를 사용하고 있다가 변경하는 경우에 발생하는
것입니다.
2. 게이트웨이 에서는 이전의 MAC 어드레스를 ARP 테이블에 가지고 있습니다.
3. 일반 PC의 OS나 uC OS-ll 같은 경우는 초기에 부팅할때 자신의 IP에 대한
ARP 패킷을 전송하여 게이트웨이의 ARP 테이블에 대한 이전 정보를 갱신
할 수 있게 하고 있습니다.
4. 이것이 표준 규격인지 권고 사항인지 아직 자료는 찾지 못했습니다.
이것에 대한 자료나 내용을 아시면 답변을 부탁드립니다.
Forums:
이책을 참조해 보시면..
이책을 참조해 보시면 될 것같습니다.
정확한 ARP protocol의 상태 흐름도는 ITU-T 문서나 RFC 문서를 참고 하시면 될거 같구요.
책은 링크로 걸어 놓겠습니다.
http://www.kyobobook.co.kr/is-bin/INTERSHOP.enfinity/eCS/Store/en/-/USD/PL_BookInfo-Start;?Click=Ev&barcode=9788989132042
그리고 ARP의 흐름을 파악해보실려면 ethereal 프로그램을 사용하여 보시면 실질적으로 돌아가는 흐름을 파악하실수 있을 듯 합니다.
(윈도우나 유닉스에서 arp -a, -g 옵션을 살펴 보세요. )
제가 알고 있기로는 님의 말씀대로 업데이트 하는것이 표준규격으로 알고 있습니다.
Jesus is Love
RFC826 ARP 의 일부분을 발췌합니다.중간 쯤에 말씀하신 upd
RFC826 ARP 의 일부분을 발췌합니다.
중간 쯤에 말씀하신 update에 대한 부분이 있습니다.
GARP를 말씀하시는 군요.
일단 LAN에서 사용하는 IP:MAC pair 정보는 서버뿐만 아니라 같은 LAN sgement내에 있는 모든 노드가 정보를 가지고 있습니다. 단 그 노드와 통신을 한 경우에만. 이것은 ARP가 왜 필요한지, subnet routing이 어떤 의미인지를 생각하면 금방 답이 나옵니다.
말씀하신 것처럼 이미 다른 노드가 알고 있는 나의 MAC address 정보를 바꿀대는 역시 ARP를 사용합니다. 그런데 이때 사용하는 ARP의 목적은 상대방이 가지고 있는 정보를 바꾸는 것이 목적이지 ARP request/ARP reply의 원래 목적과는 다릅니다. 그래서 gratuitous ARP라고 부릅니다.
흔히 사용하는 경우가 HA(High Availability)혹은 redundancy를 제공할 때 사용합니다. A라는 노드와 B라는 노드가 IP C를 가지고 서비스를 하도록 설정을 한 경우 처음에는 A가 IP C를 가지고 있습니다. 그러면 서버나 다른 노드들은 IP C : MAC A라고 알고 있습니다. 후에 A 노드에 장애가 발생해서 B 노드가 서비스를 이어가튼 경우에는 이 정보들을 IP C : MAC B로 바꿔야 합니다.
이때 노드 B는 GARP를 사용해서 다른 노드가 가지고 있는 그 IP C : MAC A 정보를 바꿔줍니다. 그리고 이 기법은 RFC에도 나와있는 표준입니다.
GARP가 특별한 별도의 포맷을 갖는 것은 아닙니다. ARP request나 reply를 전송할때 IP C, MAC B정보를 담아서 보내면 알아서 이 ARP를 수신한 노드들은 자신의 정보를 업데이트합니다.
Life with fun...
댓글 달기