1. ARP 동작 과정
1) A→E ICMP Request
- A에서 다른 네트워크인 E로 ICMP Request 전송 시, D-MAC은 E로 향하는 Next-Hop IP의 MAC Address로 구성
- Data Link Layer에 해당하는 MAC Address는 동일 네트워크에서만 사용되도록 설계되었으므로 다른 네트워크로 데이터를 전송할 때는 데이터를 Next-Hop으로 전송하여 라우팅하여 외부 네트워크로 전송
- 스위칭할 때는 Broadcast Domain 안에서 패킷이 이동하는 것이므로 D-MAC과 S-MAC의 변동 없이 패킷이 전달되지만 라우팅할 때는 다른 Broadcast Domain으로 패킷이 전달되므로 D-MAC과 S-MAC이 변경되어야만 통신이 가능
- A의 ARP Table에 C e0/1에 대한 MAC Address 정보가 없으므로 A→E ICMP Request 생성 불가
- MAC Address 정보는 ARP Table에서 탐색
2) A→C ARP Request
- A에서 다른 네트워크인 E로 ICMP Request 전송 시, Next-Hop IP에 해당하는 MAC Address인 D-MAC을 알기 위해 ARP Request를 전송
- B는 D-MAC이 Broadcast임을 확인하고 Flooding
- B는 ARP Request를 수신하고 S-MAC Learning
- B는 ARP Request를 수신하고 Target Protocol Address가 본인이 아니므로 ARP Learning 불가
- C는 D-MAC이 Broadcast임을 확인하고 Flooding
- C는 ARP Request를 수신하고 S-MAC Learning
- C는 ARP Request를 수신하고 Target Protocol Address가 본인이므로 ARP Learning
- C는 D-MAC이 Broadcast임을 확인하고 EtherType, Opcode, Target Hardware Address, Target Protocol Address를 확인하여 자신에게 전송된 ARP Request임을 확인하고 ARP Reply를 전송
3) C→A ARP Reply
- B는 D-MAC이 Unicast이며 자신의 MAC Address가 아님을 확인하고 FDB에 D-MAC이 있으면 Forwarding 없으면 Flooding
- B는 ARP Reply를 수신하고 S-MAC Learning
- B는 ARP Reply를 수신하고 Target Protocol Address가 본인이 아니므로 ARP Learning 불가
- A는 D-MAC이 본인임을 확인하고 EtherType, Opcode, Target Hardware Address, Target Protocol Address를 확인하여 본인이 전송한 ARP Request에 대한 ARP Reply임을 확인
- A는 ARP Reply를 수신하고 S-MAC Learning
- A는 ARP Reply를 수신하고 Target Protocol Address가 본인이므로 ARP Learning
- A는 E 네트워크로 가기 위한 Next-Hop의 MAC Address를 알고 있으므로 A→E ICMP Request 전송 가능
4) A→E ICMP Request
- B는 ICMP Request를 수신하고 D-MAC이 Unicast임을 확인하고 FDB에 D-MAC이 존재하므로 Know Unicast로 인지하여 Forwarding
- B는 ICMP Request를 수신하고 S-MAC Learning
- C는 ICMP Request를 수신하고 S-MAC Learning
- C는 ICMP Request를 수신하고 D-MAC이 본인임을 확인하고 EtherType이 IP임을 확인하고 D-IP가 본인과 다르므로 D-IP가 속해있는 라우팅 테이블이 있는지 확인하고 패킷의 D-IP가 Longest Match Rule에 따라 유효한 Entry의 Next-Hop이 Direct임을 확인
- 라우팅 테이블의 Next-Hop이 Direct면 D-IP에 대한 MAC Address를 D-MAC으로 변경
- 라우팅 테이블의 Next-Hop이 Remote이면 Next-Hop IP에 대한 MAC Address를 D-MAC으로 변경
- C는 ARP Table과 FDB를 확인하고 S-MAC과 D-MAC 정보를 변경하여 패킷을 라우팅하여 전달
- C는 ARP Table에 D-MAC에 대한 정보가 없으므로 ICMP Request 패킷 생성 불가
5) C→E ARP Request
- C는 D-IP에 대한 MAC Address인 D-MAC을 알기 위해 ARP Request를 전송
- D는 D-MAC이 Broadcast임을 확인하고 Flooding
- D는 ARP Request를 수신하고 S-MAC Learning
- D는 ARP Request를 수신하고 Target Protocol Address가 본인이 아니므로 ARP Learning 불가
- E는 D-MAC이 Broadcast임을 확인하고 Flooding
- E는 ARP Request를 수신하고 S-MAC Learning
- E는 ARP Request를 수신하고 Target Protocol Address가 본인이므로 ARP Learning
- E는 D-MAC이 Broadcast임을 확인하고 EtherType, Opcode, Target Hardware Address, Target Protocol Address를 확인하여 자신에게 전송된 ARP Request임을 확인하고 ARP Reply를 전송
6) E→C ARP Reply
- D는 D-MAC이 Unicast이며 자신의 MAC Address가 아님을 확인하고 FDB에 D-MAC이 있으면 Forwarding 없으면 Flooding
- D는 ARP Reply를 수신하고 S-MAC Learning
- D는 ARP Reply를 수신하고 Target Protocol Address가 본인이 아니므로 ARP Learning 불가
- C는 D-MAC이 본인임을 확인하고 EtherType, Opcode, Target Hardware Address, Target Protocol Address를 확인하여 본인이 전송한 ARP Request에 대한 ARP Reply임을 확인
- C는 ARP Reply를 수신하고 S-MAC Learning
- C는 ARP Reply를 수신하고 Target Protocol Address가 본인이므로 ARP Learning
- C는 D-IP인 MAC Address를 알고 있으므로 C→E ICMP Request 전송 가능
7) A→E ICMP Request
- A는 첫 번째, 두 번째 전송했던 ICMP Request는 Time Out으로 처리
- B는 ICMP Request를 수신하고 D-MAC이 Unicast임을 확인하고 FDB에 D-MAC이 존재하므로 Know Unicast로 인지하여 Forwarding
- B는 ICMP Request를 수신하고 S-MAC Learning
- C는 ICMP Request를 수신하고 S-MAC Learning
- C는 ICMP Request를 수신하고 D-MAC이 본인임을 확인하고 EtherType이 IP임을 확인하고 D-IP가 본인과 다르므로 D-IP가 속해있는 라우팅 테이블이 있는지 확인하고 패킷의 D-IP가 Longest Match Rule에 따라 유효한 Entry의 Next-Hop이 Direct임을 확인
- 라우팅 테이블의 Next-Hop이 Direct면 D-IP에 대한 MAC Address를 D-MAC으로 변경
- 라우팅 테이블의 Next-Hop이 Remote이면 Next-Hop IP에 대한 MAC Address를 D-MAC으로 변경
- C는 ARP Table과 FDB를 확인하고 S-MAC과 D-MAC 정보를 변경하여 패킷을 라우팅하여 전달
- D는 ICMP Request를 수신하고 D-MAC이 Unicast임을 확인하고 FDB에 D-MAC이 존재하므로 Know Unicast로 인지하여 Forwarding
- D는 ICMP Request를 수신하고 S-MAC Learning
- E는 ICMP Request를 수신하고 S-MAC Learning
- E는 ICMP Request를 수신하고 D-MAC이 본인임을 확인하고 EtherType이 IP임을 확인하고 D-IP가 본인임을 확인하고 Protocol이 1인 ICMP임을 확인하고 ICMP Type 8, Code 0임을 확인한 후에 본인에게 전송된 ICMP Request임을 확인하여 ICMP Reply를 전송
8) E→A ICMP Reply
- D는 ICMP Reply를 수신하고 D-MAC이 Unicast임을 확인하고 FDB에 D-MAC이 존재하므로 Know Unicast로 인지하여 Forwarding
- D는 ICMP Reply를 수신하고 S-MAC Learning
- C는 ICMP Reply를 수신하고 S-MAC Learning
- C는 ICMP Reply를 수신하고 D-MAC이 본인임을 확인하고 EtherType이 IP임을 확인하고 D-IP가 본인과 다르므로 D-IP가 속해있는 라우팅 테이블이 있는지 확인하고 패킷의 D-IP가 Longest Match Rule에 따라 유효한 Entry의 Next-Hop이 Direct임을 확인
- 라우팅 테이블의 Next-Hop이 Direct면 D-IP에 대한 MAC Address를 D-MAC으로 변경
- 라우팅 테이블의 Next-Hop이 Remote이면 Next-Hop IP에 대한 MAC Address를 D-MAC으로 변경
- C는 ARP Table과 FDB를 확인하고 S-MAC과 D-MAC 정보를 변경하여 패킷을 라우팅하여 전달
- B는 ICMP Reply를 수신하고 D-MAC이 Unicast임을 확인하고 FDB에 D-MAC이 존재하므로 Know Unicast로 인지하여 Forwarding
- B는 ICMP Reply를 수신하고 S-MAC Learning
- A는 ICMP Reply를 수신하고 S-MAC Learning
- A는 ICMP Reply를 수신하고 D-MAC이 본인임을 확인하고 EtherType이 IP임을 확인하고 D-IP가 본인임을 확인하고 Protocol이 1인 ICMP임을 확인하고 ICMP Type 0, Code 0임을 확인한 후에 수신한 패킷이 본인이 전송한 ICMP Request에 대한 ICMP Reply임을 확인하여 Ping 프로세스를 종료
'Network > ARP, ICMP' 카테고리의 다른 글
ICMP Time Exceeded (0) | 2024.12.10 |
---|---|
ICMP Destination Unreachable (0) | 2024.12.08 |
ICMP Request and Reply (1) | 2024.12.06 |
Introduction to ICMP and Header (0) | 2024.12.04 |
Proxy ARP 동작 과정 (0) | 2024.12.02 |
Gratuitous ARP 동작 과정 (1) | 2024.11.30 |
ARP Header (0) | 2024.11.26 |
Introduction to ARP (0) | 2024.11.24 |