Windows Server 2008 ARP Cache Poisioning
Недавно столкнулся с очень странной проблемой.
У нескольких приложений возникла проблема связи через наш F5 Load-Balancer. Когда мы изучили это, мы обнаружили, что у маршрутизатора была неправильная запись таблицы ARP и MAC-ADDRESS в VLAN Load-Balancer. Эти записи указывали на окно Windows Server 2008 R2 вместо внешнего интерфейса балансировщиков нагрузки.
Теперь вот странная вещь. Аппаратный адрес в записях таблицы MAC/ARP не существовал на Windows 2008 Server, но он был очень близок. Сервер Windows был на интерфейсе маршрутизатора Gi1/37 (ниже). Внешний адрес балансировщика нагрузки - 192.168.111.61, а Windows Server - 192.168.111.125. Два совершенно разных IP-адреса в одной подсети /24.
IPConfig на Windows Server
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Intel(R) 82574L Gigabit Network Connect
Physical Address. . . . . . . . . : 00-E0-81-DF-15-FE
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::917f:6781:df6:f724%11(Preferred)
IPv4 Address. . . . . . . . . . . : 192.168.111.125(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : fe80::21e:f7ff:fe41:2a80%11
fe80::21e:f7ff:fe41:3540%11
192.168.111.1
Информация о MAC на Windows Box
C:\Users\Administrator>getmac
Physical Address Transport Name
=================== =========================================================
00-E0-81-DF-15-FE \Device\Tcpip_{5BB4FA88-7056-4303-8528-AA2293E4821B}
00-E0-81-DF-15-FD Media disconnected
Запись ARP и MAC-АДРЕС в маршрутизаторе
Router#sh ip arp 192.168.111.61
Protocol Address Age (min) Hardware Addr Type Interface
Internet 192.168.111.61 1 00e0.81df.15fc ARPA Vlan50
Router#sh mac-address-table addr 00e0.81df.15fc
Legend: * - primary entry
age - seconds since last seen
n/a - not available
vlan mac address type learn age ports
------+----------------+--------+-----+----------+--------------------------
Module 1[FE 1]:
* 50 00e0.81df.15fc dynamic Yes 275 Gi1/37
Последние 4 бита на аппаратном адресе, хотя аналогичные, не были существующими физическими аппаратными адресами на Windows 2008 Server. Логика подсказывает, что Windows Server должен был выполнить какой-то неправильный бесплатный ARP, чтобы отравить таблицу ARP и MAC на маршрутизаторе. Или он отвечал на запрос ARP для IP-адреса, которым он не владеет, и MAC-АДРЕС, который ему не принадлежит.
Когда мы закрыли интерфейс Windows 2008 и очистили таблицы ARP/MAC, проблема была решена.
За свою жизнь я не могу понять, как это произошло (или почему).
2 ответа
Если у вас есть виртуальный сервер, и он столкнулся с отказом кластера, отправляется бесплатный запрос ARP. Скорее всего, ваш коммутатор не передает это, и таблица ARP на другой стороне коммутатора остается с неправильным MAC.
В случае сбоя кластера сервер будет / может переключать MAC-адрес.
Решение состоит в том, чтобы настроить ваш коммутатор (-ы) для пересылки безвозмездного запроса ARP.
Я подозреваю, что вы используете сервер Dell с iDrac или сервер с аналогичной функциональностью (т.е. IPMI).
Сетевой адаптер установлен в «общий» режим, а физический адаптер имеет более одного MAC-адреса. MAC-адрес, который использует iDrac, отличается всего на одну цифру от адреса, который видит Windows. Windows не увидит этот дополнительный MAC-адрес, он обрабатывается вне операционной системы.
Другими словами, загляните в настройки своего iDrac и выясните, почему он настроен неправильно. Либо для него установлен тот же IP-адрес, что и для балансировщика нагрузки, либо у него какой-то тип широковещательного адреса или проблема с маской сети, которая отвечает на каждый запрос ARP в сети. Или, возможно, он просто неисправен. Возможно, выполните обновление прошивки.