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 в сети. Или, возможно, он просто неисправен. Возможно, выполните обновление прошивки.

Другие вопросы по тегам