Добрый день.
Я использую коммутатор D-Link серии DGS-1210-10MP для настройки правил Access Control List (ACL). В процессе работы заметил, что устройство, похоже, игнорирует параметр profile_id при определении порядка выполнения правил. Согласно документации, правила с меньшим значением profile_id должны выполняться раньше, но в моем случае это не так.
1. Правила с profile_id = 1 (должны выполняться первыми):
Код:
create access_profile ip source_ip_mask 255.255.0.0 icmp profile_id 1
config access_profile profile_id 1 add access_id 1 ip source_ip 10.205.0.0 icmp port 1 permit
2. Правила с profile_id = 8 (должны выполняться последними):
Код:
create access_profile ethernet ethernet_type profile_id 8
config access_profile profile_id 8 add access_id 1 ethernet ethernet_type 0x0800 port 1 deny
Проблема:
Согласно документации, правила должны выполняться в порядке возрастания profile_id: сначала правила с profile_id = 1, и только потом с profile_id = 8. Однако на практике я наблюдаю следующее:
Правила с profile_id = 8 выполняются первыми.
Правила с profile_id = 1 выполняются после.
Тест:
Код:
port 1
untagged
host 10.205.55.225
1)
delete access_profile all
# Test ping
--- 10.205.55.225 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 4.677/4.841/4.963/0.120 ms
2)
create access_profile ip source_ip_mask 255.255.0.0 icmp profile_id 1
config access_profile profile_id 1 add access_id 1 ip source_ip 10.205.0.0 icmp port 1 permit
# Test ping
--- 10.205.55.225 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 4.880/8.197/14.793/4.663 ms
3)
delete access_profile all
create access_profile ip source_ip_mask 255.255.0.0 icmp profile_id 1
config access_profile profile_id 1 add access_id 1 ip source_ip 10.205.0.0 icmp port 1 permit
create access_profile ethernet ethernet_type profile_id 8
config access_profile profile_id 8 add access_id 1 ethernet ethernet_type 0x0800 port 1 deny
# Test ping
--- 10.205.55.225 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2043ms
Возможная причина, которая приходит в голову: Коммутатор использует другой механизм определения очередности (например, access_id или тип фильтрации, но в документации ничего подобного не нашёл).
Собственно вопрос:
Подскажите, как именно определяется порядок выполнения правил ACL в данной модели?
Есть ли возможность проверить, какая логика используется для определения очередности (например, через команды CLI)?
Если это баг, есть ли обновления прошивки, которые решают данную проблему?
Доп. информация по коммутатору:
Модель коммутатора: DGS-1210-10MP
Версия System Hardware: R1
Версия прошивки: 2.02.B011
Буду благодарен за любую информацию или рекомендации по решению проблемы.