permit (ipv6 access-list)
permit (ipv6 access-list)
Команда permit (ipv6 access-list) используется для редактирования расширенных списков доступа. Эта команда разрешает ipv6-трафик, соответствующий условиям, заданным в команде. Для отмены разрешающей записи в расширенном списке доступа используется та же команда с префиксом no.
| Синтаксис permit [ <IPV6PROTO> | object-group <V6-SRVC-GRP-NAME> ] <SRC_IPV6> <DST_IPV6> [log|log-input] [time-range <NAME>] permit udp <SRC_IPV6> [ eq <UDPPORT> | range <UDPPORT> <UDPPORT> ] <DST_IPV6> [ eq <UDPPORT> | range <UDPPORT> <UDPPORT> ] [log|log-input] [time-range <NAME>] permit tcp <SRC_IPV6> [ eq <TCPPORT> | range <TCPPORT> <TCPPORT> ] <DST_IPV6> [ eq <TCPPORT> | range <TCPPORT> <TCPPORT> ] [log|log-input] [time-range <NAME>] [established] [ack] [fin] [psh] [rst] [syn] [urg] permit icmp <SRC_IPV6> <DST_IPV6> [<ICMP6TYPECODE>|<0-255>[<0-255>]] [log|log-input] [time-range <NAME>] | |
| IPV6PROTO | Протокол. Задается в виде номера протокола. Протоколы IPv6, TCP, UDP, AHP, ESP, ICMP, SCTP, PCP, HDH могут быть заданы аббревиатурой ipv6, tcp, udp, ahp, esp, icmp, sctp, pcp, hbh. Соответствие названия протокола и его номера приведено в Таблице 16. |
| V6-SRVC-GRP-NAME | Вместо описания протокола можно написать ссылку на группу сервисов (object-group <V6-SRVC-GRP-NAME>, где V6-SRVC-GRP-NAME – имя группы ipv6 сервисов (см. object-group v6-service)). Если группа с таким именем не существует, будет выдано сообщение об ошибке: Object group <name> is not configured Если имя принадлежит группе объектов сети, а не группе сервисов, либо не совпадает версия ip, будет выдано сообщение об ошибке: Object group type mismatch |
| SRC_IPV6 | Этот параметр описывает отправителя пакета. Возможные варианты описания: • указание IPv6-префикса источника в формате X:X:X:X::X/<0-128>; • явное указание IPv6-адреса с использованием ключевого слова host X:X:X:X::X; • использование ключевого слова any, обозначающего любое значение ipv6-адреса источника (::/0); • object-group <V6-NTWRK-GRP-NAME> - даёт возможность сослаться на заранее созданную администратором группу ipv6-объектов сети (см. object-group v6-network). Где <V6-NTWRK-GRP-NAME> - имя группы ipv6 объектов. |
| DST_IPV6 | Этот параметр описывает получателя пакета. Возможны четыре варианта описания: • указание IPv6-префикса в формате X:X:X:X::X/<0-128>; • явное указание IPv6-адреса с использованием ключевого слова host X:X:X:X::X; • использование ключевого слова any, обозначающего любое значение ipv6-адреса источника (::/0); • object-group <V6-NTWRK-GRP-NAME> - даёт возможность сослаться на заранее созданную администратором группу ipv6-объектов сети (см. object-group v6-network). Где <V6-NTWRK-GRP-NAME> - имя группы ipv6 объектов. • использование ключевого слова each. При указании each будут создаваться «узкие» SA. В предыдущих версиях Продукта такое поведение было при указании any в качестве приемника. Имеет специальный смысл только для списков доступа, связанных с записью криптокарты (команда match address). При использовании для других целей (фильтрация, классификация) идентично any. Допустимо прописывать только в качестве адреса приемника. Использование значения each в IPsec фильтрах может привести к созданию большого количества SA. Отдельный SA будет строиться для трафика до каждого хоста сети. |
| TCPPORT и UDPPORT | Данный параметр задает порт или диапазон портов для протоколов TCP и UDP. Значение - целое число из диапазона от 0 до 65535. Используется только в связке с параметром operator. При использовании operator=range после него следуют два числа (лежащих в диапазоне от 0 до 65535), определяющие границы диапазона портов. Перечисление портов не допускается. Необязательный параметр. Поддерживаемые имена портов протоколов TCP и UDP приведены в Таблица 14 и Таблица 15. |
| ICMP6TYPECODE | Данный параметр задает тип и код ICMP-сообщения, в формате: <icmp-type-code> | <icmp-type> [ <icmp-code>]] Возможные значения: • icmp-type-code – специальное ключевое слово, задающее тип и код ICMP-сообщения. • icmp-type – число, задающее тип ICMP-сообщения; • icmp-code – число, задающее код ICMP-сообщения. В команде тип и код указываются после адреса получателя сообщения. Поддерживаемые имена/номера ICMP типов и кодов версии IPv6 см. Таблица 18. |
| Примечание 1 | Если задать два одинаковых порта, например, permit udp any range non500-isakmp 4500 any, то это будет эквивалентно оператору eq. |
| Примечание 2 | Если задать сначала порт с большим номером, то порты в диапазоне автоматически поменяются местами. |
| DST_IPV6 | Этот параметр описывает получателя пакета. Возможны три варианта описания: • указание IPv6-префикса получателя в формате X:X:X:X::X/<0-128>; • явное указание IPv6-адреса с использованием ключевого слова host X:X:X:X::X; • использование ключевого слова any, обозначающего любое значение ipv6-адреса получателя (::/0); • object-group <V6-NTWRK-GRP-NAME> - даёт возможность сослаться на заранее созданную администратором группу ipv6-объектов сети (см. object-group v6-network). Где <V6-NTWRK-GRP-NAME> - имя группы ipv6 обьектов. • использование ключевого слова each. При указании each будут создаваться «узкие» SA. Имеет специальный смысл только для списков доступа, связанных с записью криптокарты (команда match address). При использовании для других целей (фильтрация, классификация) идентично any. Допустимо прописывать только в качестве адреса приемника. Значение, специфичное для cs_console. В Cisco IOS отсутствует. См. также Примечание 3. |
| Примечание 3 | Использование значения each в IPsec фильтрах может привести к созданию большого количества SA. Отдельный SA будет строиться для трафика до каждого хоста сети. |
| established | Только для протокола TCP. Состояние соединения. Выделяются только установленные TCP-соединения и по ним могут передаваться данные. |
| [ack] [fin] [psh] [rst] [syn] [urg] | Имена TCP-флагов – fin, syn, rst, psh, ack, urg. Порядок флагов при вводе не важен. Перечисление флагов работает как «ИЛИ» (аналог match-any в новом формате). Ключевое слово established эквивалентно флагам rst ack и не может с ними сочетаться (синтаксическая ошибка). |
| Примечание 4 | В пределах одной команды permit/deny старый формат указания TCP-флагов не может сочетаться с новым. |
| log|log-input | • Флаг log или log-input задает ведение журнала. Оба флага задают одну и ту же функциональность (отличие от Cisco IOS). • В Syslog выдаются сообщения о пакетах, удовлетворяющих условиям данного списка доступа. В сообщении указан номер списка доступа, разрешено или запрещено прохождение пакета, адрес отправителя и количество пакетов. • Сообщение формируется для первого совпавшего пакета, а затем с периодичностью в 5 минут выдается сообщение о количестве пропущенных или запрещенных пакетов за этот интервал времени. • Флаги логирования могут смешиваться с другими флагами, например, с TCP-флагами. Два флага логирования log и log-input не могут применяться вместе в одной команде permit/deny. |
| time-range time-range-name | • Ссылка на расписание. В расписании указывается диапазон времени, в который будет работать данный список доступа. В другой период времени данный фильтр действовать не будет. • Ссылка на расписание может смешиваться с другими дополнительными параметрами, например, с TCP-флагами. • Допускается ссылка на расписание, отсутствующее в конфигурации на момент ввода команды. Однако на момент конвертирования расписание должно существовать, в противном случае конвертирование будет прервано с сообщением об ошибке. |
| Режимы команды | config-ipv6-acl (режим редактирования IPv6 списков доступа); |
| Рекомендации по использованию | Используйте эту команду после входа в режим редактирования расширенного списка доступа для задания условий доступа, разрешающих трафик. |
| Нумерация записей в списке | • Перед командой permit или deny допускается вводить порядковый номер записи в списке, который можно использовать для упрощения редактирования записей, например, ipv6 access-list acl2 10 permit udp any any 20 permit tcp any any 30 deny udp host 10::1 eq snmp any • В режиме редактирования списка доступа запись с указанным номером будет вставлена на нужную позицию, например, sequence 15 permit tcp 10::1/64 host 10::2 Если запись с таким номером существует, то будет выдано сообщение об ошибке: % Duplicate sequence number • По умолчанию первой записи в списке присваивается номер 10, а следующие номера в списке следуют с приращением 10. Максимальный порядковый номер 2147483647. Если сгенерированный порядковый номер превысил максимальный, то выдается сообщение об ошибке: % Exceeded maximum sequence number • При выходе из консоли нумерация записей теряется. При следующем старте консоли записи располагаются в порядке возрастания номеров в режиме по умолчанию. |
| Просмотр по команде show running-config | По команде show running-config нумерованные списки доступа показываются в виде последовательности команд access-list за одним исключением: • если после редактирования нумерованного списка доступа он становится пустым (в нем нет записей вида permit или deny (no permit, no deny), то он будет показан в виде: ipv6 access-list {standard|extended} name По команде show running-config выводится конфигурация, в которой слово host может отсутствовать. Посмотреть номера записей в списке можно командой show ipv6 access-lists. По команде show running-config флаги fin, syn, rst, psh, ack, urg будут указаны в этом порядке. А сочетание флагов «rst ack» в команде будет заменено на established при выводе. Флаги логирования log, log-input показываются после TCP-флагов, а расписание (time-range) – после флагов логирования. |
| Удаление | Удаление записи в списке доступа осуществляется: • командой no <полная запись>, например: no permit tcp host 10::1 eq telnet any • или по номеру записи, например, no sequence 15. Если попытаться удалить несуществующую запись, выдается сообщение об ошибке: % Entry not found |
| Отличие данной команды от подобной команды Cisco IOS | • Не допускаются операторы кроме eq и range. • Пустой нумерованный список по команде show running-config показывается в виде ip access-list name. В Cisco IOS данный список вообще не показывается. |
| Пример | Приведенный ниже пример демонстрирует добавление в расширенный список доступа с именем "a101" записи, разрешающей трафик между хостами 10::1 и 10::2 по протоколу udp: Router(config)# ipv6 access-list a101 Router(config-ext-nacl)#permit udp host 10::1 host 10::2 Router(config-ext-nacl)#exit |
Имя и номер протокола
Таблица 17
| Имя протокола | Описание протокола | Номер протокола |
| ipv6 | Any Internet Protocol (v6) | |
| tcp | Transmission Control Protocol | 6 |
| udp | User Datagram Protocol | 17 |
| ahp | Authentication Header Protocol | 51 |
| icmp | Internet Control Message Protocol | 58 |
| esp | Encapsulation Security Payload | 50 |
| pcp | Payload Compression Protocol | 108 |
| sctp | Streams Control Transmission Protocol | 132 |
| hbh | Hop by Hop options header | 0 |
| vrrp | Virtual Router Redundancy Protocol | 112 |
| etherip | EtherIP | 97 |
| gre | Cisco's GRE tunneling | 47 |
| Используемые только в object-group v6-service: | ||
| tcp-udp | Transmission Control Protocol and User Datagram Protocol | |
Поддерживаемые имена портов протокола TCP
(см. Таблица 14).
Поддерживаемые имена портов протокола UDP
(см. Таблица 15).
Поддерживаемые типы и коды ICMP-сообщений (IPv6)
Таблица 18
| Имя | Описание | Тип | Код |
| unreachable | All unreachable ( type = 1 code = any ) | 1 | |
| no-route | No route to destination ( type = 1 code = 0 ) | 1 | 0 |
| no-admin | Administration prohibited destination ( type = 1 code = 1 ) | 1 | 1 |
| beyond-scope | Destination beyond scope ( type = 1 code = 2 ) | 1 | 2 |
| destination-unreachable | Destination address is unreachable ( type = 1 code = 3 ) | 1 | 3 |
| port-unreachable | Port unreachable ( type = 1 code = 4 ) | 1 | 4 |
| source-policy | Source address failed ingress/egress policy ( type = 1 code = 5 ) | 1 | 5 |
| reject-route | Reject route to destination ( type = 1 code = 6 ) | 1 | 6 |
| packet-too-big | Packet too big ( type = 2 ) | 2 | |
| time-exceeded | All time exceeded ( type = 3 code = any ) | 3 | |
| hop-limit | Hop limit exceeded in transit ( type = 3 code = 0 ) | 3 | 0 |
| reassembly-timeout | Reassembly timeout ( type = 3 code = 1 ) | 3 | 1 |
| parameter-problem | All parameter problems ( type = 4 code = any ) | 4 | |
| header | Parameter header problems ( type = 4 code = 0 ) | 4 | 0 |
| next-header | Parameter next header problems ( type = 4 code = 1 ) | 4 | 1 |
| parameter-option | Parameter option problems ( type = 4 code = 2 ) | 4 | 2 |
| echo-request | Echo request (ping) ( type = 128 ) | 128 | |
| echo-reply | Echo reply ( type = 129 ) | 129 | |
| mld-query | Multicast Listener Discovery Query ( type = 130 ) | 130 | |
| mld-report | Multicast Listener Discovery Report ( type = 131 ) | 131 | |
| mld-reduction | Multicast Listener Discovery Reduction ( type = 132 ) | 132 | |
| router-solicitation | Neighbor discovery router solicitations ( type = 133 ) | 133 | |
| router-advertisement | Neighbor discovery router advertisements ( type = 134 ) | 134 | |
| nd-ns | Neighbor discovery neighbor solicitations ( type = 135 ) | 135 | |
| nd-na | Neighbor discovery neighbor advertisements ( type = 136) | 136 | |
| redirect | Neighbor redirect ( type = 137 ) | 137 | |
| router-renumbering | All router renumbering ( type = 138 code = any ) | 138 | |
| renum-command | Router renumbering command ( type = 138 code = 0 ) | 138 | 0 |
| renum-result | Router renumbering result ( type = 138 code = 1 ) | 138 | 1 |
| renum-seq-number | Router renumbering sequence number reset ( type = 138 code = 2 ) | 138 | 2 |
| mld-v2-report | V2 Multicast Listener Discovery Report ( type = 143 ) | 143 | |
| dhaad-request | Home agent address discovery request ( type = 144 ) | 144 | |
| dhaad-reply | Home agent address discovery reply ( type = 145 ) | 145 | |
| mpd-solicitation | Mobile prefix solicitation ( type = 146 ) | 146 | |
| mpd-advertisement | Mobile prefix advertisement ( type = 147 ) | 147 |