호스트 a 는 호스트 b 의 Mac 주소를 가져옵니다.
1. TCP/IP 프로토콜이 설치된 각 컴퓨터에는 다음 표와 같이 IP 주소와 MAC 주소가 하나씩 일치하는 ARP 캐시 테이블이 있습니다.
호스트 IP 주소 MAC 주소
A192.168.16.1aa-aa-aa-aa-aa
B192.168.16.2 b-b-b-b-b-b-b
C192.168.16.3
D192.168.16.4
호스트 a (192.168.16.1) 를 호스트 b (1) 로 호스트 a 는 데이터를 전송할 때 ARP 캐시 테이블에서 대상 IP 주소를 찾습니다. 찾으면 대상 MAC 주소를 알고 대상 MAC 주소를 프레임에 직접 쓰면 됩니다. ARP 캐시 테이블에서 해당 IP 주소를 찾을 수 없는 경우 호스트 a 는 대상 MAC 주소가' FF' 인 네트워크에서 브로드캐스트를 보냅니다. FF.FF.FF.FF.FF' 는 같은 네트워크 세그먼트의 모든 호스트에'192.168.16.2 의 네트워크의 다른 호스트는 ARP 쿼리에 응답하지 않습니다. 호스트 b 만 이 프레임을 수신한 경우에만 호스트 a: "192.168.16.2 의 MAC 주소는 b-b b-b-b; 이렇게 하면 호스트 A 가 호스트 B 의 MAC 주소를 알고 호스트 B 에 정보를 보낼 수 있습니다 ... 또한 내 자신의 ARP 캐시 테이블도 업데이트했습니다. 다음에 호스트 B 에 메시지를 보낼 때 ARP 캐시 테이블에서 직접 찾을 수 있습니다. ARP 캐시 테이블은 노화 메커니즘을 사용합니다. 테이블의 행이 일정 기간 동안 사용되지 않으면 삭제되어 ARP 캐시 테이블의 길이를 크게 줄이고 쿼리 속도를 높일 수 있습니다.
2. 위에서 알 수 있듯이 ARP 프로토콜의 기초는 LAN 내 모든 사람을 신뢰하는 것이기 때문에 이더넷에서 ARP 스푸핑을 쉽게 할 수 있습니다. 타겟 a, A Ping 호스트 c 를 속여 주소 DD-DD-DD-DD-DD 로 보냅니다. 부정행위를 할 때 C 의 MAC 주소를 DD-DD-DD-DD-DD-DD-DD 로 속이면 A 가 C 에 보낸 모든 패킷이 D 로 보내집니다. D 가 A 에서 보낸 패킷을 받을 수 있는 거 아닌가요? 스니핑 성공.
3.A 는 이 변화를 전혀 의식하지 못했지만, 다음 일은 의심을 불러일으켰다. A 와 c 는 연결할 수 없기 때문입니다. D 는 A 에서 보낸 수신된 패킷을 C 로 전달하지 않을 수 있습니다.' 중매인' 을 하고 ARP 를 리디렉션합니다. D 의 IP 전달 기능을 켜면 A 에서 보낸 패킷이 라우터처럼 C 로 전달됩니다. 그러나 D 가 ICMP 리디렉션을 전송하면 전체 계획이 중단됩니다.
4.d 는 전체 패킷을 직접 수정하고 전달하며, A 가 C 로 보낸 패킷을 캡처하고, 모두 수정한 후 C 로 전달하고, C 가 받은 패킷은 완전히 A 가 보낸 것으로 간주됩니다 .. 하지만 C 에서 보낸 패킷은 A 로 직접 전달되어 다시 ARP 가 C 를 속이는 것을 방지합니다. 이제 D 는 완전히 A 와 C 사이의 다리가 되었으니 A 와 C 사이의 교류에 대해 잘 알 수 있습니다.