Страница 1 из 1

LTP-8X ACL фильтр ARP-запросов

Добавлено: 10 янв 2019 02:28
apog
Коллеги, прошу помощи. Испробовал несколько вариантов - все пока безуспешно :(
Есть задача ограничить прохождение от абонентов 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'а правила с такой логикой работают безупречно.

Re: LTP-8X ACL фильтр ARP-запросов

Добавлено: 10 янв 2019 11:23
Dirks G
Добрый день.
Попробуйте с такими правилами:

permit any aa:bb:cc:bb:bb:bb ff:ff:ff:00:00:00 vlan any cos any ethertype any
deny any any vlan any cos any ethertype 0x0806 0x0000
permit any any vlan any cos any ethertype any

Мак и маску шлюза укажите свою.

Re: LTP-8X ACL фильтр ARP-запросов

Добавлено: 10 янв 2019 20:02
apog
Здравствуйте, Геннадий!

Спасибо, так работает. Скажите, а последнее разрешающее правило обязательно? Просто и без него тоже работает.
Вообще логика мне до конца не понятна, хотя это и работает. Например как проходят широковещательные пакеты arp-запросов? Ведь первое правило не подходит для них, а вторым правилом они должны блокироваться. Повторюсь, работает и без последнего безусловного разрешающего правила.
Я заметил, что в запрещающем правиле в конце у меня указано 0xFFFF, а вы приводите 0x0000. В документации про это место кроме приведенных примеров, где указано значение как ethertype 0x0800 0xFF00 без каких либо пояснений, ничего больше нет.
Геннадий, а без указания MAC адреса нельзя обойтись? Например как я изначально пытался по битовой маске привязать правило к IP-адресам шлюзов? Может быть тип access-list'а другой нужен для этого?

Re: LTP-8X ACL фильтр ARP-запросов

Добавлено: 10 янв 2019 20:22
apog
Хотя похоже я ошибся. Не проходят широковещательные запросы. После применения правил все продолжает работать до того момента пока не удалю на абонентской машине запись с MAC'ом шлюза.

Re: LTP-8X ACL фильтр ARP-запросов

Добавлено: 11 янв 2019 01:27
apog
В общем пока не получается построить правила.
Если добавить вначале

Код: Выделить всё

offset-list 10-52-x-1 l2 42 FF 0A l2 43 FF 34 l2 45 FF 01
permit any any vlan any cos any ethertype  0x0806 0x0000 offset-list 10-52-x-1

То широковещательные арпы начинают проходить, но битовая маска не работает - проходят пакеты с любым target ip.
Или я до конца не понимаю как у Элтекса работает фильтрация по битовой маске или это баг?

Re: LTP-8X ACL фильтр ARP-запросов

Добавлено: 11 янв 2019 11:21
Dirks G
Через offset-list вы указываете смещение 42 байта. Как я понял, вы хотите фильтровать по мак-адресу шлюза. Тогда вам нужно использовать другое смещение, например, если вам нужно строгое соответствие первых трех байт dst_mac, для примера A8:F9:4B :

offset-list test l2 0 FF A8 l2 1 FF F9 l2 2 FF 4B
permit any any vlan any cos any ethertype any offset-list test
deny any any vlan any cos any ethertype any

С такими правилами, у вас будет проходить трафик с dst_mac A8:F9:4B, все остальное будет отброшено.

Re: LTP-8X ACL фильтр ARP-запросов

Добавлено: 11 янв 2019 13:49
apog
Здравствуйте, Геннадий! Нет, я пытаюсь фильтровать по target ip address в пакетах arp запросов - по первому, второму и четвертому октетам ip адреса шлюза. В 42-45 байтах находится именно target ip.
Если фильтровать по mac'у шлюза, то не работает из-за того, что не проходит первый широковещательный arp запрос, в котором mac назначения равен ff:ff:ff:ff:ff:ff. Поэтому фильтровать по mac'ам мне представляется неправильным подходом.

Re: LTP-8X ACL фильтр ARP-запросов

Добавлено: 16 янв 2019 23:47
apog
Для интересующихся:
Продолжили общение с техподдержкой по электронной почте. Выяснили, что ACL не работают должным образом на данной прошивке. Производитель обещал починить, но сроков не назвал. Будем ждать.
Постараюсь не забыть запостить здесь, если все же решим свою задачу.