Есть задача ограничить прохождение от абонентов ARP-запросов в сторону шлюза, то есть пропускать только запросы в которых IP-адрес назначения собственно сам шлюз, а все остальные запросы дропать.
Исходные данные:
OLT LTP-8X rev.C software version 3.32.0 build 2483
IP-адреса шлюзов 10.52.ххх.1
Абоненты за портом pon-port 0
Для проверки работы правил настроено зеркалирование трафика с аплинка OLT подключенного к ядру сети. Также запущен непрерывный пинг абонентских ONT.
По мануалу пытаюсь написать ACL c применением фильтрации по битовой маске
Код: Выделить всё
mac access-list extended arpfilter
offset-list 10-52-x-1 l2 42 FF 0A l2 43 FF 34 l2 45 FF 01
offset-list all-arp ethtype 0 FF 08 ethtype 1 FF 06
permit any any vlan any cos any ethertype any offset-list 10-52-x-1
deny any any vlan any cos any ethertype any offset-list all-arp
exit
interface pon-port 0
service-acl mac arpfilter
exit
commit
После включения приведенного ACL пинг останавливается. Запрещающее правило по идее должно влиять только на ARP, но похоже связь пропадает полностью. По сути ARP-запросы после включения ACL даже не отправлялись, так как хостам с обеих сторон известны MAC'и друг друга.
Пытаюсь переписать запрещающее правило, так как похоже с ним проблема
Код: Выделить всё
deny any FF:FF:FF:FF:FF:FF FF:FF:FF:FF:FF:FF vlan any cos any ethertype 0x0806 0xFFFF
или так
Код: Выделить всё
deny any FF:FF:FF:FF:FF:FF FF:FF:FF:FF:FF:FF vlan any cos any ethertype 0x806 0xFFF
или так
Код: Выделить всё
deny any any vlan any cos any ethertype 0x0806 0xFFFF
К сожалению во всех случаях результат один и тот же - ICMP трафик перестает ходить.
В конец списка решил добавить безусловное разрешающее правило
Код: Выделить всё
permit any any vlan any cos any ethertype any
С ним трафик ходит, но и неугодные ARP-запросы проходят. В чем моя ошибка? Как правильно написать ACL для поставленной задачи?
p.s. для D-Link'а правила с такой логикой работают безупречно.