Этот Apple ещё хуже Майкрософта..

Один юзер из Англии жаловался, что его ноутбук периодически ругается, что выданный ему (по DHCP) адрес уже кем-то используется, и wifi отваливается. Ethernet’а у него в ноутбуке нет, поэтому местные айтишники выдали ему usb’шный ethernet-адаптер и подключили кабелем вместо wifi. А ноутбук продолжает жаловаться на то же самое. Тогда в DHCP-сервере на MAC-адрес этого адаптера зарегистрировали псевдостатический IP (10.20.30.120), но и это не помогло.

Когда он в очередной раз пожаловался, я зашёл на тамошний маршрутизатор (.1) и попробовал попингать этот .120 . Картина получилась офигенная:

# ping 10.20.30.120
PING 10.20.30.120 (10.20.30.120): 56 data bytes
36 bytes from 10.20.30.8: Redirect Host(New addr: 10.20.30.120)
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst
 4  5  00 0054 8b9e   0 0000  40  01 d88d 10.20.30.1  10.20.30.120 

Попингал ещё раз, запустив tcpdump, и в натуре увидел ICMP redirect от какого-то хоста .8 :

13:36:51.823988 IP (tos 0x0, ttl 64, id 35742, offset 0, flags [none], proto ICMP (1), length 84)
    10.20.30.1 > 10.20.30.120: ICMP echo request, id 34137, seq 0, length 64
13:36:51.824530 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.20.30.120 tell 10.20.30.8, length 46
13:36:51.824535 IP (tos 0x0, ttl 255, id 47957, offset 0, flags [none], proto ICMP (1), length 56)
    10.20.30.8 > 10.20.30.1: ICMP redirect 10.20.30.120 to host 10.20.30.120, length 36
	IP (tos 0x0, ttl 64, id 35742, offset 0, flags [none], proto ICMP (1), length 84)

Посмотрел в arp-таблицу, оказалось, что на оба адреса — .8 и .120 — отзывался один и тот же MAC: e8:8d:28:*.*.* . Apple’овский.. Спросил у тамошних айтишников, что это за машинка, и оказалось, что это у них там wifi’ная точка доступа — Apple AirPort Extreme, со статическим адресом .8 .

Так какого фига она перехватывает чужой IP .120, сначала отвечая своим MAC’ом на ARP-запросы к .120, а потом, получая IP-пакеты на этот адрес, делает вид, что это не она, отправляя ARP-запрос на .120, но не получив ответа, посылает запрашивающего нафиг (ICMP-redirect’ом на сам .120)?

Upd: в результате гугления оказалось, что это “нормальное” поведение Bonjour Sleep Proxy, встроенного в AirPort Extreme: https://discussions.apple.com/thread/2160614. Не, нах эти уродские эппловские продукты.


You can read this post at LiveJournal.
This entry was posted in Uncategorized and tagged , , , , , , , . Bookmark the permalink.

Leave a Reply