Данная статья рассматривает конфигурацию ACL в KLISH. |
Для каждой таблицы определяются тип и направление. Таблицы содержат правила, и перечь портов к которым эти правила применяются, таблица может быть ассоциирована с одним или несколькими интерфейсами, так же как и интерфейс может быть ассоциирован с множеством таблиц. Каждая таблица имеет определенный тип, который определяет назначение таблицы и то, каким образом будет обрабатываться трафик, который будет соответствовать данной таблице. Таблица может иметь один из следующих типов: L3, L3V6 (IPv6 ACL table), FLOW_CONTROL , MIRROR, CTRLPLANE, VXLAN_STATS. Направление может быть ingress и egress, правило не может обрабатывать оба направления одновременно.
ACL Rule
В правиле определяется приоритет, условие совпадения и действие после совпадения. Правило ACL можно добавить только к одной таблице, но таблица может иметь несколько правил. Приоритет тем выше, чем больше номер правила (20 приоритетнее 10).
Table Rule Priority Action Match -------- -------- ---------- -------- ------------------ ACC_TAB1 rule_100 100 FORWARD IP_TYPE: ANY SRC_IP: 2.2.2.2/32 ACC_TAB1 rule_10 10 FORWARD IP_TYPE: ANY SRC_IP: 1.1.1.1/32 ACC_TAB2 rule_1 1 FORWARD IP_TYPE: ANY |
TName Type Binding Description Stage -------- ------ --------- ------------- ------- ACC_TAB1 L3 Ethernet0 ACC_TAB1 ingress ACC_TAB2 L3 Ethernet0 ACC_TAB2 ingress TAB_001 L3 TAB_001 ingress |
[Возможные параметры] table_type = L3, L3v6, MIRROR, MIRRORv6, FLOW_CONTROL, CTRLPLANE table_name Имя table_stage Направление ingress или egress Пример access-list ACC_TAB1 l3 ingress Удаление таблицы. no access-list table_name P.S. Перед удалением таблицы требуется удалить все правила из таблицы. |
[Возможные параметры] ingress action packet-action {deny|permit|trap-to-cpu|copy-to-cpu} redirect-action {ethernet|lag} egress action packet-action {deny|permit|trap-to-cpu|copy-to-cpu} Возможные поля для сопоставления трафика (rule) vlan-pri vlan-pri range 0-7 outer-vlan outer-vlan range 1-4094 ip-protocol ip-protocol range 0-255 source-port sport range 0-65535 destination-port dport range 0-65535 tcp-flags tcp-flags HEX<0-FF> source -mac smac HH:HH:HH:HH:HH:HH(ingress) destination-mac dmac HH:HH:HH:HH:HH:HH(ingress) Специфичные для таблицы типа L3 source-ip sip A.B.C.D(/M) destination-ip dip A.B.C.D(/M) icmp-type icmp-type range 0-16 icmp-code icmp-code ``` range 0-5 ethernet-type eth-type HEX<0-FFFF> ecn ecn range 0-3 dscp dscp range 0-63 rule id от 0 до 500, как писалось выше чем больше номер правила тем выше приоритет. access-list ACC_TAB1 l3 ingress rule 100 source-ip 192.168.0.0/24 packet-action permit rule 99 source-ip 192.168.1.0/24 packet-action deny Удаление правила no rule rule-id |
type тип интерфейса, ethernet или link-aggregation interface-name имя интерфейса. bind interface ethernet 0/0 |
Перед началом данной главы хотелось бы дать небольшое пояснение логике работы ACL. Трафик который предназначен коммутатору (например доступ по ssh или snmp), не будет обработан правилами таблиц типа L3 или L3v6. Для этого предлагается использовать таблицы типа CTRLPLANE. |
Ограничение SSH (control-plane)
Запрещаем доступ к коммутатору по ssh из сети 10.8.1.0/24:
access-list CTRL1 ctrlplane ingress ssh rule 100 source-ip 10.8.1.0/24 packet-action deny rule 99 source-ip 0.0.0.0/0 packet-action accept |
Разрешаем только DNS-запросы к серверам 172.21.1.10 и 172.21.1.11:
access-list DNS_CTRL l3 ingress bind interface ethernet 0/0 rule 99 ip-protocol 6 destination-port 53 source-ip 0.0.0.0/0 ip-type IP packet-action deny rule 100 ip-protocol 17 destination-port 53 source-ip 0.0.0.0/0 ip-type IP packet-action deny rule 101 ip-protocol 17 destination-port 53 source-ip 172.21.1.10/32 ip-type IP packet-action permit rule 102 ip-protocol 17 destination-port 53 source-ip 172.21.1.11/32 ip-type IP packet-action permit rule 103 ip-protocol 6 destination-port 53 source-ip 172.21.1.11/32 ip-type IP packet-action permit rule 104 ip-protocol 6 destination-port 53 source-ip 172.21.1.10/32 ip-type IP packet-action permit Первые два правила запрещают UDP/TCP трафик на dst-port 53 из всех сетей, они же являются самыми низко приоритетными в этой таблице. Оставшиеся правила разрешают DNS запросы на NS сервера 172.21.1.10 и 172.21.1.11. Строка bind interface ethernet 0/0 указывает на то, на какие именно интерфейсы применены правила. |
Разрешаем ARP-ответы только от 10.100.1.0/24:
access-list ARP_CTRL l3 ingres bind interface ethernet 0/0 rule 100 ip-type ARP_REPLY source-ip 10.100.1.0/24 packet-action permit rule 99 ip-type ARP_REPLY source-ip 0.0.0.0/0 packet-action deny |