이상한 : 왜 리눅스가 마지막 핑 응답 후 ARP 요청으로 핑에 응답합니까?


12

나는 (그리고 동료) 리눅스 머신이 핑될 때, 마지막 핑 이후 에 ICMP 핑을 시작한 머신에 대한 유니 캐스트 ARP 요청을 시작한다는 것을 알아 차리고 테스트했다 . Windows 시스템에 핑할 때 Windows 시스템은 마지막에 ARP 요청을 발행하지 않습니다.

아무도이 유니 캐스트 ARP 요청의 목적이 무엇인지, 왜 Windows가 아닌 Linux에서 발생하는지 알고 있습니까?

Wireshark 추적 (10.20.30.45는 Linux 상자 임) :

No.Time        Source           Destination      Prot  Info
19 10.905277   10.20.30.14      10.20.30.45      ICMP  Echo (ping) request
20 10.905339   10.20.30.45      10.20.30.14      ICMP  Echo (ping) reply
21 11.904141   10.20.30.14      10.20.30.45      ICMP  Echo (ping) request
22 11.904173   10.20.30.45      10.20.30.14      ICMP  Echo (ping) reply
23 12.904104   10.20.30.14      10.20.30.45      ICMP  Echo (ping) request
24 12.904137   10.20.30.45      10.20.30.14      ICMP  Echo (ping) reply
25 13.904078   10.20.30.14      10.20.30.45      ICMP  Echo (ping) request
26 13.904111   10.20.30.45      10.20.30.14      ICMP  Echo (ping) reply
27 15.901799   D-Link_c5:e7:ea  D-Link_33:cb:92  ARP   Who has 10.20.30.14?  Tell 10.20.30.45
28 15.901855   D-Link_33:cb:92  D-Link_c5:e7:ea  ARP   10.20.30.14 is at 00:05:5d:33:cb:92

업데이트 : 나는 유니 캐스트 ARP 요청에 대해 더 많이 검색했으며 , 찾은 유일한 유용한 참조는 RFC 4436 에서 "Network Attachment 감지"(2006 년)에 관한 것입니다. 이 기술은 유니 캐스트 ARP를 사용하여 호스트가 이전에 알려진 네트워크에 다시 연결되었는지 확인할 수 있습니다. 그러나 핑을 수행 한 결과 이것이 ARP 요청에 어떻게 적용되는지 알 수 없습니다. 그래서 미스터리는 남아 있습니다 ...

답변:


4

Linux는 다양한 유니 캐스트 ARP 요청을 보내 ARP 캐시를 업데이트합니다. 이는 오래된 (및 잠재적으로 악의적 인) ARP 캐시 항목을 방지하기위한 것입니다.

기본적으로 ARP 캐시를 확인하기 위해 유니 캐스트 ARP가 사용되는 상황이 몇 가지 있습니다. 항목이 오래되면 대체는 ARP를 브로드 캐스트하는 것입니다.

이것은 RFC1122 2.3.2.1 에서 논의됩니다.

나는 그것이 왜 내 첫 번째 추측이 일종의 반 스푸핑 대책이 될 것이라고 생각합니다. ARP 패킷은 항상 라우팅되지 않으므로 로컬 LAN 에서이 작업을 수행한다고 가정합니다. 호스트를 ping하거나 한 번만 추적 할 때마다이 상황이 일관되게 발생합니까? 이 경우 해당 호스트의 ARP 캐시가 동시에 시간 초과되었을 수 있습니다.

머신을 핑하는 호스트에서 어떤 OS가 실행되고 있습니까?


RFC 링크에 감사드립니다. 시간 초과가 오래된 arp 항목을 제거하고 arp 캐시 크기를 제한하는 기본 방법이라고 생각했습니다. 후자는 유니 캐스트 ARP를 수행하여 수행되지 않는 것 같습니다 (그러나 시간 초과가있을 수 있습니다). 이 테스트는 로컬 테스트 베드 LAN에서 3 번 (Linux 시스템에서 2 회, WinXP 시스템에서 1 회) 테스트되었습니다. 또한 내 PC (WinXP)에서 내 PC에서 실행되는 VMWare Ubuntu 9.04로 핑 (ping)하여 '실제'LAN에서이를 테스트했습니다. 같은 결과, 같은 타이밍 (2 초).
Rabarberski

'리눅스는 다양한 유니 캐스트 ARP 요청을 보냅니다 ...'클레임에 대한 링크가 있습니까?
Rabarberski

확실하지 않지만 arp spoofing 대책처럼 보입니다. 나는 이것이 얼마나 효과적인지 궁금하다. MAC 주소는 이더넷 프레임을 전환하는 데 사용된다. 유니 캐스트 메시지를 사용하면 대상 맥이 온 마지막 머신으로 곧바로 갈 것이다.
Hubert Kario

1

나는 그것이 버그라고 생각한다. 다음 추적은 Ping에서 ARP 캐시에 있지만 오래되지 않은 주소까지입니다. 짧은 시간에 ARP를 두 번 유니 캐스트 해야 할 이유는 없습니다 . 이것은 4.14.15에 있지만 많은 커널 버전에서 동작을 보았습니다.

root@observer:~# tcpdump -nevi eth0 arp
device eth0 entered promiscuous mode
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

13:11:57.362910 42:5f:03:40:00:43 > 42:5f:03:40:00:22, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 10.1.2.1 tell 10.1.2.2, length 28
13:11:57.363018 42:5f:03:40:00:22 > 42:5f:03:40:00:43, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Reply 10.1.2.1 is-at 42:5f:03:40:00:22, length 28
13:11:57.392890 42:5f:03:40:00:22 > 42:5f:03:40:00:43, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 10.1.2.2 tell 10.1.2.1, length 28
13:11:57.393049 42:5f:03:40:00:43 > 42:5f:03:40:00:22, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Reply 10.1.2.2 is-at 42:5f:03:40:00:43, length 28

ARP 캐시의 유효성을 확인하는 것이 양면 인 것처럼 보입니다. 이 두 교환은 서로 반대 방향으로 진행되었으며, 출품작의 나이는 본질적으로 동일하므로 시간이 초과되어 동시에 확인됩니다.
stolenmoment

-1

단지 추측 .. 그러나 이것은 기계가 핑 시리즈 또는 특정 개수의 핑에 응답 할 때마다 클라이언트의 MAC 주소를 기록하는 '기능'일 수 있습니다. 핑 스팸을 추적하는 데 유용한 정보가 될 수 있습니다.


그러나이 '기능'은 스팸으로 처리 된 시스템이 이미 ICMP 핑 요청에서 MAC 주소를 추출했을 수 있으므로 ARP 요청을 보낼 필요가 없습니다.
Rabarberski
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.