Функционал
LoopBack Detection (LBD) предназначен для выявления петель в широковещательных сегментах. Суть метода довольно проста: коммутатор отправляет специальный кадр в сеть и если этот кадр вернулся назад, считается, что за
данным портом петля.
Петля может быть как на одном порту, когда закольцовывание происходит где то дальше в сети, так и между разными портами одного коммутатора. Но, независимо от этого,
"проблемным" считается порт, с которого служебный кадр был получен обратно.
Формат кадра
Адрес назначения: CF-00-00-00-00-00
Адрес источника: MAC коммутатора + № порта. Например, если MAC коммутатора 34:08:04:36:AB:D0, тогда кадры с 1-го порта имеют SRC MAC 34:08:04:36:AB:D1, с 7-го - 34:08:04:36:AB:D7 и т.д.
Тип Ethernet: 9000
Затем идут 4 служебных байта с номером функции и 42 байта с данными. При этом блок с данными может содержать только номер порта.
Поймать такой кадр можно при помощи Wireshark, выставив в фильтре захвата значение ether proto 0x9000.
Пример кадра
CF 00 00 00 00 00 34 08 04 36 AB D
7 90 00 00 00
00 01
00 07 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
В данном кадре после ethernet type (90 00) идут 4 байта Configuration Test Protocol (00 00 00 01), а затем следует блок данных, начинающийся с 00 07.
Эти два байта содержат номер порта. Таким образом, этот кадр был отправлен с 7-го порта, а MAC коммутатора - 34:08:04:36:AB:D0 (D7 - 7 = D0). Когда коммутатор получает такой кадр он берет SRC MAC и вычитает из него первые два байта из блока данных. Если то, что получилось, равно его собственному MAC, то
это указывает на наличие петли за портом, откуда такой кадр был получен.
Из всего сказанного можно сделать следующие выводы:
- Можно спровоцировать блокировку собственного порта, отправив пойманный (или специально подготовленный) кадр назад в сеть.
- Нельзя обмануть коммутатор и заставить его заблокировать чужой порт при помощи поддельного кадра, т.к. номер порта из кадра используется лишь как вычитаемое.
- Номер порта не имеет значения. К примеру, можно указать в кадре порт 65244 (FE DC). Коммутатору не важно, что у него нет порта с таким номером. Главное, чтобы SRC MAC был увеличен на это же число. Кстати, номер порта может быть равен даже 00 00.
- Кадр сам по себе раскрывает некоторую информацию, а именно MAC устройства и номер порта. Используя приведенные ниже списки можно попытаться определить по MAC-адресу коммутатора его модель и ревизию.
DES-3028
00:19:5B:ED, 00:19:5B:EE, 00:1C:F0:11, 00:1C:F0:9E, 00:1C:F0:D0, 00:1C:F0:D1, 00:1E:58:46, 00:1E:58:A0, 00:1E:58:A6, 00:1E:58:A8, 00:21:91:52, 00:21:91:53, 00:21:91:91, 00:21:91:92, 00:21:91:96, 00:21:91:97, 00:22:B0:04, 00:22:B0:50, 00:22:B0:51, 00:22:B0:52
DES-3200-28/A1
00:26:5A:8A, 00:26:5A:8B, 00:26:5A:8D, 00:26:5A:8E, 00:26:5A:8F, 00:26:5A:90, 00:26:5A:91, 14:D6:4D:6E, 14:D6:4D:6F, 1C:AF:F7:90, 1C:BD:B9:46, 1C:BD:B9:47, 1C:BD:B9:48, 1C:BD:B9:F1, 34:08:04:36, 34:08:04:37, 34:08:04:38, 34:08:04:39, 34:08:04:3A, 34:08:04:3B, 34:08:04:3C, 34:08:04:5F, 5C:D9:98:0D, 5C:D9:98:12, 5C:D9:98:13, 5C:D9:98:41, 5C:D9:98:FA, 5C:D9:98:FB, F0:7D:68:3B
DES-3200-18/A1
1C:BD:B9:9A, 1C:BD:B9:9B
DES-3200-28/B1
14:D6:4D:BD, 14:D6:4D:BE, 14:D6:4D:BF, 14:D6:4D:C0, 14:D6:4D:C1, 84:C9:B2:9A, 84:C9:B2:AF, 84:C9:B2:B0, 84:C9:B2:B3, 84:C9:B2:B4, 84:C9:B2:B5, FC:75:16:F4, FC:75:16:F9, FC:75:16:FD, FC:75:16:FE
DES-3200-18/B1
28:10:7B:F9, 28:10:7B:FA
DES-3200-28/C1
70:62:B8:3B, 78:54:2E:41, 90:94:E4:24, 90:94:E4:25, 90:94:E4:26, 90:94:E4:B9, 90:94:E4:BA, 90:94:E4:BB, 90:94:E4:BC, 90:94:E4:BD, AC:F1:DF:B2, AC:F1:DF:BA, B0:C5:54:88, B0:C5:54:89, B0:C5:54:8A, B0:C5:54:97, B0:C5:54:98, B0:C5:54:9A, B0:C5:54:9C, C4:A8:1D:03, C4:A8:1D:04, C4:A8:1D:05, C4:A8:1D:10, C4:A8:1D:11, C4:A8:1D:12, C8:BE:19:F8, C8:BE:19:F9, C8:BE:19:FA, CC:B2:55:79, CC:B2:55:7A, CC:B2:55:7B, CC:B2:55:7C, CC:B2:55:88, CC:B2:55:89, CC:B2:55:8A, D8:FE:E3:89, D8:FE:E3:8A, D8:FE:E3:8B, D8:FE:E3:8C, D8:FE:E3:8F, D8:FE:E3:98, D8:FE:E3:EB, D8:FE:E3:EC, EC:22:80:24, EC:22:80:34, EC:22:80:35
DES-3200-18/C1
9C:D6:43:FC, 9C:D6:43:FD, C8:BE:19:92, C8:BE:19:95, C8:BE:19:FB, C8:BE:19:FC
Примечание: В списках указаны первые 4 байта MAC-адреса, если считать слева направо.
p.s. Если коммутатор используется как relay-агент, то при помощи снифера можно поймать пакеты DHCP, где указан IP-адрес коммутатора. Таким образом, со стороны клиента может быть получена следующая информация о коммутаторе: 1) IP-адрес; 2) MAC-адрес; 3) Модель и ревизия; 4) Номер порта для данного подключения. Это позволяет в дальнейшем провести атаку на само устройство. Поэтому важно позаботиться о том, чтобы сеть управления коммутаторами не была доступа со стороны клиента.