Идеология списков контроля доступа в коммутаторах Extreme Networks несколько отличается от идеологии, принятой в коммутаторах производства Компании Cisco Systems. В данной статье речь пойдет о настройке ACL в коммутаторах Extreme и чем ACL в коммутаторах Extreme отличаются от ACL в Cisco.
В коммутаторах Extreme можно создать два типа списков контроля доступа:
Динамические ACL
Динамические списки контроля доступа создаются используя CLI, их можно просмотреть в конфигурации, выполнив команду show configuration «acl».
Для создания динамического aclнужно выполнить команду:
create access-list < dynamic-rule > < conditions > < actions > {non-permanent}
Если в команде используется ключ non-permanent, список контроля доступа сотрется из конфигурации после перезагрузки коммутатора.
Динамические ACL могут применяться как к физическим портам так и к VLAN:
configure access-list add < dynamic_rule > [ [[first | last] {priority < p_number >} {zone < zone >} ] | [[before | after] < rule >] | [ priority < p_number > {zone < zone >} ]] [ any | vlan < vlanname > | ports < portlist > ] {ingress | egress}
Для удаления acl с порта или VLAN необходимо выполнить команду:
configure access-list delete < ruleName > [ any | vlan < vlanname > | ports < portlist > |
all] {ingress | egress}
Пример создания списка контроля доступа, фильтрующего пакеты BPDU Cisco PVST+ и применения этого acl на порты 11-21:
create access-list bpdu1 «ethernet-destination-address 01:00:0c:cc:cc:cd ;» «deny»
create access-list bpdu2 «ethernet-destination-address 01:80:C2:00:00:00 ;» «deny»
conf access-list add «bpdu1» first ports 11-21 ingress
conf access-list add «bpdu2» first ports 11-21 ingress
Статические ACL
Статические acl представляют собой файлы, редактируемые VI-подобным редактором или загружаемые с внешнего TFTP сервера.
Для создания или редактирования ACL необходимо выполнить команду:
edit policy < policy-name >
Для начала редактирования нужно нажать клавишу «i».
Команды, используемы для редактирования ACL:
dd — To delete the current line
yy — To copy the current line
p — To paste the line copied
:w — To write (save) the file
:q — To quit the file if no changes were made
:q! — To forcefully quit the file without saving changes
:wq — To write and quit the file
Правильность ACL можно и нужно проверить, используя команду:
check policy < policy-name >
Если уже примененный на порту, VLAN или в протоколе маршрутизации ACL изменился, необходимо выполнить команду:
refresh policy < policy-name >
Иначе, не смотря на то, что ACL уже изменен, будет использоваться его старая версия.
Просмотр ACL:
show policy {< policy-name > | detail}
Использование ACL
Списки контроля доступа можно использовать как для фильтрации сетевого трафика так и для контроля за распространением маршрутов в сетевых протоколах (BGP, OSPF итд).
Применение ACL на порту коммутатора или на VLAN:
configure access-list [any | ports < portlist > | vlan < vlanname >] {ingress |
egress}
Отмена ACL с порта коммутатора или с VLAN:
unconfigure access-list < policy-name > {any | ports < portlist > | vlan < vlanname >}
{ingress | egress}
Использование ACLв протоколах маршрутизации:
configure bgp import-policy [< policy-name > | none]
configure rip import-policy [< policy-name > | none]
Настройка списков контроля доступа
Каждое правило имеет следующий синтаксис:
entry < ACLrulename >{
if {
match-conditions;
} then {
action;
action-modifiers;
}
}
То есть каждое правило имеет условие совпадения (match-conditions) и действие (action и action-modifiers).
Например, правило, разрешающее трафик из IP подсети 10.203.134.0/24, с UDP порта 190 на UDP порты 1200 – 1250 IP адреса 140.158.18.16:
entry udpacl {
if {
source-address 10.203.134.0/24;
destination-address 140.158.18.16/32;
protocol udp;
source-port 190;
destination-port 1200 — 1250;
} then {
permit;
}
}
В ACL можно делать description и comment:
# this line is a comment
@description «This line is a description»
Match Conditions
Основные match-conditions представлены ниже:
Actions
Основные действия:
Action Modifiers
Наиболее часто применяемые Action Modifiers описаны ниже:
Гораздо более подробно Match Conditions, Action и Action Modifiers описаны в главе 18 Concept Guide.
Wide Key ACLs
В коммутаторах Extreme Networksсуществует понятие Wide Key ACLs. Данная функция позволяет использовать 362 битные Match Conditions вместо стандартных 181 битных. Соответственно можно делать большие Match Conditions а так же использовать полные destination-source IPv6 Match Conditions.
Для включения или выключения Wide Key ACLs нужно выполнить команду:
configure access-list width [double | single] [slot < slotNo | all >]
Примеры списков контроля доступа
ACL, ограничивающий трафик в VLAN 100, накладывая на него meter voiceServiceMeter:
entry voiceService {
if {
vlan-id 100;
} then {
meter voiceServiceMeter;
}
}
ACL, зеркалирующий весь трафик VLAN 300:
entry voiceService {
if {
vlan-id 300;
} then {
mirror;
}
}
ACL, разрешеющий трафик на IP адрес 10.200.250.2 и запрещающий весь остальной трафик:
entry test_policy_4 {
if {
source-address 0.0.0.0/0;
destination-address 10.200.250.2/32;
} then {
permit;
count test_policy_permit;
}
}
# deny everyone else
entry test_policy_99 {
if {
} then {
deny;
count test_policy_deny;
}
}
Основные отличия от ACL в коммутаторах Cisco
Как известно, ACL в оборудовании Cisco имеют следующий вид:
access-list 2 permit 1.1.1.0 0.0.0.255
access-list 100 permit tcp 1.1.1.1 0.0.0.0 2.2.2.2 0.0.0.0 eq 23
ACL, использующиеся в коммутаторах Extreme отличаются от ACL в Cisco двумя моментами:
1. Синтаксис. ACL в Extreme иерархические, что с одной стороны более сложно в написании, с другой существенно расширяет возможности списков контроля доступа. Так, например, внутри ACLможно указать ключ mirror, и трафик будет зеркалироваться, или redirect, тогда трафик будет перенаправляться мехаизмами PBR (policy based routing). Внутри ACL Extreme можно применять политики QoS (ограничение полосы, перемаркировка итд.)
2. ACL в Extreme не имеют завершающего deny в конце правила. То есть, если пакет не совпал ни с одним правилом в ACL, пакет будет разрешен.
Каждый ACL, цель которого в итоге что-то запретить, должен завершаться правилом:
entry denyall {
if {
} then {
deny;
}
}
3. Списки контроля доступа в Extreme работают на аппаратном уровне, и даже такие действия как PBR и mirroring не загружают CPU коммутатора.