При конвертировании Cisco-like конфигурации в LSP конфигурацию имена структур LSP формируются из имен и индексов объектов Cisco-like конфигурации. При этом следует учитывать ряд ограничений:
· В объектах Cisco-like конфигурации разных типов могут использоваться одинаковые имена. В LSP имя объекта должно быть уникальным.
· Могут использоваться цифровые индексы. В LSP требуется задавать идентификаторы, начинающиеся с буквы.
· Как правило, синтаксис Cisco-like имен более свободный (например, допускаются символы, которые нельзя использовать в идентификаторах LSP).
· В некоторых случаях требуется формировать имя структуры LSP из группы объектов Cisco-like конфигурации.
· Один объект Cisco-like конфигурации (или группа объектов) может порождать несколько LSP объектов (каждый из которых должен обладать уникальным именем).
Общие сведения по формированию имен:
· Сначала готовится прототип имени объекта. Для этого прототипа нет каких-то специальных требований: например это может быть имя объекта Cisco-like конфигурации, константная строка, сочетание префикса и имен нескольких объектов и т.п.
· Основные административные принципы формирования имени:
· В имени структуры LSP используются имена и/или числовые идентификаторы объектов Cisco-like конфигурации (далее для простоты “Cisco-объект”), порождающих данную структуру.
· Если существует однозначная связь между Cisco-объектом и структурой LSP:
· Если Cisco-объект идентифицируется по имени, то напрямую используется данное имя.
· Если Cisco-объект идентифицируется числом или набором разрозненных параметров, то в качестве имени структуры LSP используется команда IOS, создающая данный Cisco-объект, в которой пробелы заменены на символ “:” (двоеточие).
· Если Cisco-объект может породить несколько структур LSP строго одного типа в зависимости от дополнительных объектов, начало имени порождается аналогично предыдущему пункту, а затем через двоеточие перечисляются идентификаторых дополнительных объектов.
· Если структура LSP порождается из нескольких Cisco-объектов: Cisco-объект порождает несколько структур LSP или если существуют какие-то иные неоднозначности (например, один и тот же ACL может порождать разные структуры LSP одного и того же типа FilterChain), то в начало имени структуры добавляется префикс, описывающий ролевую принадлежность данной структуры и заканчивающийся на двоеточие.
· В некоторых случаях в качестве префикса может использоваться тип структуры LSP.
· Если Cisco-объект идентифицируется несколькими параметрами (например, имя и индекс), то они в имени LSP-структуры разделяются символом “:” (двоеточие).
· Если LSP-структура порождается несколькими разнотипными объектами, образующими вместе некоторую законченную группу, то их идентификаторы также разделяются двоеточием.
· Если LSP-структура порождается несколькими однотипными объектами или несколькими замкнутыми группами разнотипных объектов, то группы идентификаторов разделяются символом “$” (доллар).
· Например, пусть в Cisco-like конфигурации присутствуют некоторые объекты:
obj_type_1 abc 15
obj_type_2 1000
obj_type_1 def 20
obj_type_2 2000
· Возможный вариант порождаемого имени:
SomePrefix:abc:15:1000$def:20:2000
· Важный частный случай: когда объект порождается из конкретной crypto map, действуют следующие правила для идентификации crypto map:
· Если объект порождается из статической crypto map, то в имени объекта присутствуют имя и индекс данной crypto map, разделенные двоеточием. Например:
cmap:10
· Если объект порождается из конкретной записи динамического crypto map template, то в имени объекта присутствуют следующие части: имя и индекс динамической crypto map, а также имя динамического crypto map template и индекс конкретной записи в нем. Например, фрагмент конфигурации:
crypto dynamic-map dmap 20
...
crypto map cmap 5 ipsec-isakmp dynamic dmap
порождает объект, в имени которого присутствует:
cmap:5:dmap:20
· Если имя получается слишком длинным, часть объектов, порождающих данную структуру, может отсутствовать в сформированном имени. В этом случае к имени добавляется суффикс $$etc. Например:
IKERule:cmap-1:10:dmap-1:10$cmap-1:20:dmap-2:10$$etc
· Далее производится нормализация имени:
· Все символы, кроме букв латинского алфавита, цифр и символов “-“ (минус), “$” (доллар) и “:” (двоеточие), преобразуются к символу подчеркивания.
· Если имя начинается с цифры или иного символа, отличного от букв латинского алфавита и подчеркивания, перед ним ставится буква n.
· Далее производится поиск полученного имени среди уже сформированных (для обеспечения уникальности):
· Если имя не найдено, считаем его окончательно сформированным.
· Если имя найдено, добавляем к нему последовательно суффиксы $$1, $$2 и т.д. до тех пор, пока не будет найдено имя, которое еще не использовалось.
· Полученное имя записывается в конфигурацию и запоминается для того, чтобы оно не было использовано для другого объекта.
Далее описываются конкретные правила формирования прототипов имен объектов:
Имя структуры Native LSP |
Вариант использования |
Правило формирования |
Примеры |
IKETransform |
|
Конкатенация префикса “crypto:isakmp:policy:” и индекса ISAKMP policy (команда crypto isakmp policy) |
crypto:isakmp:policy:10 |
AHProposal |
|
Конкатенация имени transform-set и суффикса “:AH” (команда crypto ipsec transform-set) |
trset1:AH |
ESPProposal |
|
Конкатенация имени transform-set и суффикса “:ESP” (команда crypto ipsec transform-set) |
trset1:ESP |
IKERule |
Статическая crypto map |
Конкатенация “IKERule:” и обозначения crypto map (см. важный частный случай). Если объект порожден из нескольких crypto maps, то их обозначения перечисляются через знак доллара $ |
IKERule:cmap:1 IKERule:cmap:2:dmap:10 IKERule:cmap-1:1:dmap:1$cmap-2:1:dmap:10 |
AuthMethodRSASign |
|
RSA:Sign |
RSA:Sign |
AuthMethodDSSSign |
|
DSS:Sign |
DSS:Sign |
AuthMethodGOSTSign |
|
GOST:Sign |
GOST:Sign |
AuthMethodPreshared |
|
Конкатенация “Preshared:” и идентификатора ключа – в зависимости от типа: IP-адрес или hostname (точки заменяются на знак подчеркивания). Если значение данного ключа подходит для нескольких идентификаторов, то эти идентификаторы перечисляются через двоеточие (действует правило по отсечению слишком длинных имен (см. слишком длинные имена) |
Preshared:192_168_1_2 Preshared:host1_example_com Preshared:host1_example_com:192_168_1_2:192_168_1_3 |
CertDescription |
|
CA:RSA CA:DSS CA:GOST |
CA:GOST |
IPsecAction |
|
Конкатенация префикса “IPsecAction:” и обозначения crypto map (см. важный частный случай). Если объект порожден из нескольких crypto maps, то их обозначения перечисляются через знак доллара $. |
IPsecAction:cmap:1 IPsecAction:cmap:5:dmap:20 IPsecAction:cmap-1:1:dmap-1:1$cmap-2:1:dmap-1:1 |
AddressPool |
Используется команда “crypto isakmp client configuration address-pool local…” или команда “set pool…”, в которой не задана маска подсети. |
Имя pool (команда ip local pool) |
pool1 |
FilterChain |
Фильтр |
Конкатенация “FilterChain:” и имени ACL |
FilterChain:101 FilterChain:acl1 |
Inspection (только при отсутствии фильтрующего ACL; в противном случае – часть фильтрующего ACL) |
Конкатенация “InspectChain:” и имени inspection, заданного командой ip inspect name |
InspectChain:inspect1 |
|
Классификация трафика (QoS): |
Конкатенация “ClassificationChain:” и имени policy map (команда policy-map). |
ClassificationChain:pmap1 |
|
Clear-Text фильтрация внутри защищенного соединения. |
Конкатенация “ClearText:” и имени ACL, заданного командой set ip access-group (режим конфигурирования crypto map) |
ClearText:clear-text-acl ClearText:15 |
|
Правила защиты (IPsec policy) |
Конкатенация “IPsecPolicy:” и имени crypto map set |
IPsecPolicy:cmap |
|
IdentityEntry |
|
Имя identity (команда crypto identity) |
id1 |