Boot PROM Version : Build 3.00.005
Firmware Version : Build 3.06-B20
Hardware Version : 1A1
Задача: надо заблокировать ARP ответы от адреса шлюза на абонентском порту, чтобы не "подменили" шлюз и не смогли перенаправить весь трафик через "себя".
Дамп ARP-reply пакета:
(0x0806), length 60: arp reply 12.34.56.78 is-at 00:aa:bb:cc:dd:ee
0x0000: 00ee ddcc bbaa 00aa bbcc ddee
0806 0001 (L2 протокол ARP, тип ethernet)
0x0010: 0800 0604
0002 00aa bbcc ddee
0c22 384e (0002 - значит ARP-reply, второе поле это IP в хексе
0x0020: 00ee ddcc bbaa 0c22 3841 0000 0000 0000
0x0030: 0000 0000 0000 0000 0000 0000
Жирным выделенны необходимые поля для проверки в ACL
Создаю ACL:
create access_profile packet_content_mask offset_0-15 0x0 0x0 0x0 0xFFFFFFFF offset_16-31 0x0 0xFFFF0000 0x0 0xFFFFFFFF profile_id 3
config access_profile profile_id 3 add access_id 1 packet_content_mask offset_0-15 0x0 0x0 0x0 0x08060001 offset_16-31 0x0 0x00020000 0x0 0x0c22384e port 3 deny
Все создается правильно:
Код:
Command: show access_profile profile_id 3
Access Profile Table
Access Profile ID : 3
Type : Packet Content Filter
Masks :
Offset 0-15 : 0x00000000 00000000 00000000 ffffffff
Offset 16-31 : 0x00000000 ffff0000 00000000 ffffffff
Offset 32-47 : 0x00000000 00000000 00000000 00000000
Offset 48-63 : 0x00000000 00000000 00000000 00000000
Offset 64-79 : 0x00000000 00000000 00000000 00000000
Access ID: 1
Mode : Deny
Port : 3
----------------------------------------------------
Offset 0-15 : 0x00000000 00000000 00000000 08060001
Offset 16-31 : 0x00000000 00020000 00000000 0c22384e
Offset 32-47 : 0x00000000 00000000 00000000 00000000
Offset 48-63 : 0x00000000 00000000 00000000 00000000
Offset 64-79 : 0x00000000 00000000 00000000 00000000
Но пакеты всеравно не фильтруются! Что я делаю не так?
Даже такой простой ACL не работает (блокировка всех ARP-пакетов)
create access_profile packet_content_mask offset_0-15 0x0 0x0 0x0 0xFFFFFFFF profile_id 3
config access_profile profile_id 3 add access_id 1 packet_content_mask offset_0-15 0x0 0x0 0x0 0x08060001 port 3 deny
Подскажите как решить такую задачю? Может есть другой способ?