이 문서의 섹션 7에 설명된 대로 스푸핑된 IP를 사용하여 연결하려고 합니다(BSD 원시 소켓 인터페이스를 사용한 IP 스푸핑). 실제로 ARP를 고려하지 않고 SYN을 보내면 응답이 없습니다. 이 문서에 제시된 두 가지 솔루션(더 간단해야 함) 중 하나는 클라이언트 호스트에 정적 ARP 항목을 추가하는 것입니다. 내 호스트는 10.1.1.10으로 구성되어 있고 스푸핑하려는 IP 주소는 10.1.1.20입니다.
새 항목을 추가하기 위해 다음을 실행했습니다.
# arp -i enp4s2 -Ds 10.1.1.20 enp4s2 pub
실행하면 arp -n
다음과 같이 표시됩니다.
10.1.1.20 * * MP enp4s2
서버에서 시도했지만 arping 10.1.1.20
클라이언트 호스트로부터 응답이 없습니다(게시된 ARP 항목 포함).
아마도 ARP 게시가 어떻게 작동하는지 이해하지 못할 수도 있습니다. 온라인 문헌은 이 문제에 대해 매우 단순한 것 같습니다.
내 배포판은 OpenSuSE이고 커널 버전은 3.16.7-21-desktop #1 SMP PREEMPT입니다.
답변1
이 명령이 *BSD에서 여전히 작동하는지 모르겠지만 Linux에서는 10년 넘게 작동하지 않는 것 같습니다. 요즘에는arp_req_set_public()펀트arp_req_set_proxy(), 커널을 트리거합니다.프록시 arp기구. 내가 아는 한, ARP는 프록시 ARP를 구현하기 위한 수단으로 출시되었으며 나중에 더 간단하고 사고 가능성이 적으며 더 강력한 구현을 위해 단계적으로 폐지되었습니다.
하지만 안타깝습니다. ARP 게시에는 개인 NAT 풀을 처리하는 편리한 방법 등의 다른 용도도 있습니다. arp 매뉴얼에서 약속한 의미 체계가 정말로 필요하다면 다음과 같이 사용자 영역 ARP 데몬을 사용해 볼 수 있습니다.허니넷 ARPD(일명 Farpd) 또는쇼핑백.