Question: Как, при настройке ACL, задать маску на диапазон портов?

Answer: 

Задача: Настроить в правиле ACL маску на диапазон TCP-портов или UDP-портов (TCP-порты - 11000 - 11999, UDP-порты 16384 - 32767).

1) Вычисление масок профилей доступа:

начальное 11000 (дес.) = 0010 1|010 1111 1000 (двоич.)
конечное 11999 (дес.) = 0010 1|110 1101 1111 (двоич.)

маска 1111 1|000 0000 0000 (двоич.) = 0xF800 (шестн.)
закроет диапазон
     от 0010 1|000 0000 0000 = 10240 дес.
     до 0010 1|111 1111 1111 = 12287 дес.

Данная маска закроет более широкий диапазон, чем требуется (исходный: 11000 - 11999, эта маска: 10240 - 12287). Если необходимо, можно написать другое правило с маской 0xffff для исключённых портов.
Если нужно точное перекрытие такого диапазона, то нужно создавать другие маски и комбинировать их для выполнения данных требований.

начальное 16384 (дес.) = 01|00 0000 0000 0000
конечное 32767 (дес.) = 01|11 1111 1111 1111

маска 11|00 0000 0000 0000 (двоич.) = 0xC000 (шестн.)
закроет диапазон (в точности требуемый)
     от 01|00 0000 0000 0000

2) Общий пример настройки коммутатора:

  • TCP-порты - 11000 - 11999(В этом случае, ACL может быть создан для TCP-портов 10240 - 12287 с использованием одной маски и одного правила)
    create access_profile ip tcp dst_port_mask 0xF800 profile_id 1
    config access_profile profile_id 1 add access_id 10 ip tcp dst_port 11000 deny


  • UDP-порты 16384 - 32767(В соответствии с этим требованием, ACL может быть создан TCP-портов 16384 - 32767 с использованием одной маски и одного правила)
    create access_profile ip udp dst_port_mask 0xC000 profile_id 2
    config access_profile profile_id 2 add access_id 10 ip udp dst_port 16384 deny