Номер банковской карты (номер карты). Номер банковской карты: где смотреть

Любая банковская карта имеет собственный идентификатор — уникальный 16-значный номер. Можно подумать, что раз людей (а значит и карт) так много, то можно обмануть систему, введя придуманную комбинацию цифр при, скажем, регистрации в каком-то сервисе, не предполагающем оплату с указанной карты прямо сейчас. Однако, такой трюк не сработает. Дело в том, что номера банковских карт строятся исходя из определённых правил, и это позволяет вычислить достоверность существования введённой карты даже без обращения непосредственно к банку.

К примеру, при указании карты Visa и введении любой первой цифры, отличной от четвёрки, ничего не сработает. Номера всех карт Visa начинаются с цифры «4».

Абсолютное большинство карт в России выпускаются от платёжных систем Visa и MasterCard. Для них справедливы следующий комбинации цифр в начале номера:


  • Visa: 4-

  • MasterCard: 51- 52- 53- 54- 55-

Полный список префиксов банковских карт в зависимости от платёжной системы можно найти .

Контрольная сумма

Реальность такова, что несмотря на распространение всевозможных приложений, упрощающих хранение и ввод данных с карт, люди очень неохотно хранят информацию в таком виде (и в этом есть свой смысл). В итоге приходится постоянно вводить номер руками, что неизбежно приводит к человеческим ошибкам.

Для мгновенного обнаружения ошибок при вводе были разработаны проверочные алгоритмы. Последняя цифра в номере любой банковской карты — это результат последовательности предыдущих 15 цифр, и его всегда можно «угадать», если знать первые 15 цифр и алгоритм Луна .

В 1954 году Ганс Питер Лун создал алгоритм, который в дальнейшем вошёл в международный стандарт ISO/IEC 7812-1, на основе которого и строятся номера карт.

Причинами выбора такого алгоритма стали его простота и эффективность. Обычный человек после пары-тройки пробных просчётов сможет вычислять контрольную цифру в уме. При этом метод гарантированно обнаруживает ошибку при неправильном вводе одной цифры номера. Помимо этого, алгоритм обнаруживает почти все случайные парные замены цифр (типичная ошибка человека при вводе). Однако, тут есть и минусы. Контрольная сумма — всего 1 цифра. Значит, существует 10% шанс, что случайно сгенерированный номер окажется верным для алгоритма.

Алгоритм Луна работает очень просто и имеет вариации только в зависимости от количества цифр в последовательности (чётное или нечётное число элементов). Также создатель предлагал нумеровать цифры справа налево, но можно и так.

Изначально у нас есть последовательность из 16 цифр.

Нумеруем все цифры слева направо. Первую и последующие через одну цифры умножаем на два, и, если произведение оказывается больше девяти, то вычитаем из него 9. Как вариант — складываем цифры получившегося двузначного числа. Будет то же самое.

Получившаяся последовательность складывается.

Результат воспроизведения должен быть кратен 10, иначе контрольная цифра неверна. Чтобы сделать её верной для исходной последовательности, нужно увеличить её настолько, чтобы сумма после преобразования была кратна 10.

Любая банковская карта имеет собственный идентификатор — уникальный 16-значный номер. Можно подумать, что раз людей (а значит и карт) так много, то можно обмануть систему, введя придуманную комбинацию цифр при, скажем, регистрации в каком-то сервисе, не предполагающем оплату с указанной карты прямо сейчас. Однако такой трюк не сработает. Дело в том, что номера банковских карт строятся исходя из определённых правил, и это позволяет вычислить достоверность существования введённой карты даже без обращения непосредственно к банку.

К примеру, при указании карты Visa и введении любой первой цифры, отличной от четвёрки, ничего не сработает. Номера всех карт Visa начинаются с цифры «4».

Абсолютное большинство карт в России выпускаются от платёжных систем Visa и MasterCard. Для них справедливы следующие комбинации цифр в начале номера:

  • Visa: 4-
  • MasterCard: 51- 52- 53- 54- 55-

Полный список префиксов банковских карт, в зависимости от платёжной системы, можно найти .

Контрольная сумма

Реальность такова, что, несмотря на распространение всевозможных приложений, упрощающих хранение и ввод данных с карт, люди очень неохотно хранят информацию в таком виде (и в этом есть свой смысл). В итоге, приходится постоянно вводить номер руками, что неизбежно приводит к человеческим ошибкам.

Для мгновенного обнаружения ошибок при вводе, были разработаны проверочные алгоритмы. Последняя цифра в номере любой банковской карты - это результат последовательности предыдущих 15 цифр, и его всегда можно «угадать», если знать первые 15 цифр и алгоритм Луна .

В 1954 году Ганс Питер Лун создал алгоритм, который в дальнейшем вошёл в международный стандарт ISO/IEC 7812-1, на основе которого и строятся номера карт.

Причинами выбора такого алгоритма стали его простота и эффективность. Обычный человек после пары-тройки пробных просчётов сможет вычислять контрольную цифру в уме. При этом, метод гарантированно обнаруживает ошибку при неправильном вводе одной цифры номера. Помимо этого, алгоритм обнаруживает почти все случайные парные замены цифр (типичная ошибка человека при вводе). Однако тут есть и минусы. Контрольная сумма - всего 1 цифра. Значит, существует 10% шанс, что случайно сгенерированный номер окажется верным для алгоритма.

Алгоритм Луна работает очень просто и имеет вариации только в зависимости от количества цифр в последовательности (чётное или нечётное число элементов). Также создатель предлагал нумеровать цифры справа налево, но можно и так.

Изначально у нас есть последовательность из 16 цифр.

Нумеруем все цифры слева направо. Первую и последующие через одну цифры умножаем на два, и, если произведение оказывается больше девяти, то вычитаем из него 9. Как вариант - складываем цифры получившегося двузначного числа. Будет то же самое.

Получившаяся последовательность складывается.

Результат воспроизведения должен быть кратен 10, иначе контрольная цифра неверна. Чтобы сделать её верной для исходной последовательности, нужно увеличить её настолько, чтобы сумма после преобразования была кратна 10.

Существуют и более навороченные алгоритмы проверки , но посчитать их в уме уже не так просто.

Другие примеры использования

Контрольные суммы используются повсеместно. Это позволяет мгновенно вычислять ошибки при вводе важных последовательностей цифр. Штрих-коды, идентификационные номера различных персональных документов в разных странах - везде используются контрольные суммы. Стоит заметить, что контрольные суммы применяются вообще во всей электронике, где важна целостность и сохранность достоверности данных.

Чётность

На заре развития эры компьютеров, память в вычислительных машинах была не столь надёжной и периодически искажала данные. Инженеры хотели найти способ обнаружения ошибок в данных.

Решение заключалось в контроле по паритету. 8 бит в байте складывались, и их сумма была либо чётной, либо нечётной. Для каждого бита создавался дополнительный контрольный бит - бит чётности. Если сумма битов в байте была чётной, то в контрольный бит записывалась единица, иначе - нуль.

Метод крайне прост, но также и очень неэффективен. Нельзя сказать, какой из битов в байте был записан некорректно. Быть может, сам контрольный бит записался неверно? Двойная ошибка также могла попросту проскочить.

Сейчас память куда надёжнее, и обычные компьютеры более не используют проверку на чётность. Однако до сих пор существуют особо требовательные к надёжности системы (банковская сфера, энергетика и так далее). Там применяется особый тип памяти под названием ECC (Error Correcting Code Memory). Алгоритмы, подобные тем , что применяются в ECC, позволяют с абсолютной точностью обнаруживать каждый некорректный бит и исправлять его значение на верное.

RAID

Несмотря на активный переход к твердотельным накопителям (SSD), магнитные жёсткие диски (HDD) по-прежнему остаются основным методом хранения информации. Они значительно дешевле, а соотношение цены за бит хранимой информации в них пока что недостижимо для SSD.

HDD имеет в своей конструкции подвижные элементы и закономерно является одним из наиболее часто выходящих из строя устройств в компьютере. Если вы ни разу в жизни не сталкивались с фактом вышедшего из строя жёсткого диска, то вы либо очень молоды, либо невероятно везучи.

В случае с хранением важных данных, приходится обращаться к самому действенному, хоть и не самому выгодному решению - чтобы данные не пропали в случае поломки одного диска, нужно хранить их параллельно на двух и более дисках.

Альтернативный и чуть более эффективный по финансам метод заключается в дроблении данных по разным дискам и записи контрольных сумм на эти диски. Весь смысл RAID строится на предположении о том, что поломка одного диска может случиться в любой момент, а вот поломка сразу двух - куда менее вероятна. Как только в работе одного диска обнаруживаются неполадки, то, с надеждой на нормальную работу оставшихся дисков, поломанного брата убирают и ставят на место новый диск. Затем на него заливается информация и система продолжает работать как надо.

Изначально аббревиатура RAID означала «Redundant Array of Inexpensive Disks». Смысл заключался именно в использовании более дешёвых и менее надёжных дисков. Было понятно, что диски выходят из строя, но с учётом сохранения данных, такие диски обходились суммарно дешевле, нежели более дорогие и относительно более надёжные диски.

Сейчас, когда жёсткие диски в целом стали куда надёжнее, само значение RAID изменилось. Теперь это «Redundant Array of Independent Disks».

Подобные меры, безусловно, нужны, и мы, если посмотрим на это с позиции жизни отдельного человека, легко сможем спроецировать такие методы на ежедневную деятельность - различные чек-листы, todo-менеджеры, ремайндеры, подёргать дверь после того, как заперли её ключом. Всё это проверки на ошибки и попытки избежать их.

На рис. 6.20 AS1 обеспечивает подключение к Internet сети клиента (AS65001). Так как клиент имеет соединение только с этим провайдером и у него нет в ближайшем будущем планов по подключению через еще один канал к другому провайдеру, то ему выделяется номер частной AS. Если же клиенту потребуется организовать подключение к Internet через еще одного провайдера, то соответствующий его региону реестр сети Internet обязан будет присвоить его AS уникальный номер.

Все префиксы, генерируемые в AS65001, будут иметь атрибут AS_PATH 65001. Рассмотрим, каким образом распространяются сведения о префиксе 172.16.220.0/24 из AS6500I (рис. 6.20). Для того чтобы AS1 передала сведения об этом маршруте в сеть Internet, необходимо избавиться от номера частной AS, Когда префикс попадает в сеть Internet, он будет уже иметь в качестве источника номер AS провайдера. Обратите внимание, что префикс 172.16.220.0/24 приходит в NAP с AS_PATH 1.

Протокол BGP изымает номера частных AS, только если требуется передать информацию об их маршрутах каким-либо внешним узлам. Это означает, что изъятие номеров AS должно быть задано на маршрутизаторе RTC как элемент конфигурации соединения с соседним узлом RTE.

Еще раз обращаем ваше внимание на то, что частные AS должны быть подключены только к одному провайдеру. Если в списке атрибута AS_PATH встречаются номера действительных и частных AS, то протокол BGP расценивает его как неправильно сформированный и не изымает номера частных AS. В этом случае обновление маршрутов будет обрабатываться в обычном порядке. Номера частных AS изымаются только из списков AS_PATH, содержащих хотя бы один номер частной AS в диапазоне от 64512 до 65535.

Дополнительные сведения об архитектуре сетей с использованием частных AS вы можете получить в RFC 22702 .

Атрибут AS_PATH и объединение маршрутов

Объединение маршрутов предполагает суммирование диапазона префиксов в один или несколько блоков CIDR с целью минимизации количества маршрутов в таблицах маршрутов. Однако информация AS_PATH, содержащаяся в маршрутной информации нескольких маршрутов, будет теряться при одновременном суммировании этих маршрутов. Это может привести к образованию петель маршрутизации, так как маршрут, проходящий через ту же самую AS, может быть воспринят ею как новый маршрут.

Для того чтобы избежать нежелательных последствий объединения маршрутов, в BGP имеется возможность задания типа объекта в AS_PATH параметром AS_SET, где все AS вносятся в список неупорядоченными. В этот набор входят номера AS, через которые проходит маршрут. Объединенные маршруты, в которых переносится информация AS_SET, имеют совокупный набор атрибутов, сформированный индивидуальными маршрутами.

На рис. 6.21 система AS1 объявляет маршрут в сеть 192.213.1.0/24, a AS2 объявляет маршрут в сеть 192.213.2.0/24. Система AS3 объединяет оба маршрута в 192.213.0.0/16. Автономная система, которая объявляет объединенный маршрут, считает саму себя генератором маршрута, независимо от того, откуда поступили составляющие его маршруты. Когда AS3 объявляет объединенный маршрут 192.213.0.0/16, значение в AS_PATH будет 3. Это приведет к потерям маршрутной информации, так как генераторы маршрутов ASI и AS2 уже не будут присутствовать в списке номеров AS__PATH. Если другие AS каким-то образом объявят объединенный маршрут системам AS1 и AS2, они примут этот маршрут, что приведет к возникновению петли маршрутизации. "Зная" значение AS_SET, AS3 может объявлять объединенный маршрут 192.213.0.0/16, сохраняя при этом информацию о составляющих его компонентах. Значение параметра AS_SET {1 2} указывает на то, что объединенный маршрут сформирован из отдельных маршрутов, поступивших от соответствующих AS, без определенного порядка следования. Информация, заключенная в атрибуте AS_PATH, с учетом параметра AS_SET будет выглядеть как 3 {1 2}.

Рис. 6.21. Влияние параметра AS_SET

Указание параметра AS_SET перед командой aggregate-address вызовет автоматическую генерацию набора AS, связанного с данным объединенным маршрутом.

Управление атрибутом AS_PATH

Довольно часто целесообразно модифицировать информацию, содержащуюся в атрибуте AS_PATH, для управления междоменной маршрутизацией. Ввиду того что в BGP отдается предпочтение более короткому маршруту, заданному в AS_PATH, операторы сети не могут отказаться от возможности вносить изменения в маршрутную информацию путем включения фиктивных записей в AS_PATH, которые увеличивают длину маршрута и влияют на траекторию движения трафика. В оборудовании Cisco имеется возможность задания номеров AS в начале списка атрибута AS_PATH пользователем, что позволяет удлинить маршрут. Ниже приведен пример, с помощью которого мы поясним, как использовать эту возможность.

См. в главе 11 раздел "Управление атрибутом AS_PATH"

На рис. 6.22 AS50 подключена к двум провайдерам - AS200 и AS100. При этом AS100 имеет непосредственное соединение с NAP, в то время как AS200 для того, чтобы достичь NAP, должна пройти через промежуточный узел AS300.

На рис. 6.22 показан частный случай передачи информации о префиксе 192.213.1.0/24 через различные AS в NAP. Когда префикс 192.213.1.0/24 поступает в NAP через AS300, она имеет AS_PATH 300 200 50. Если этот же префикс поступает в NAP через AS100, то значение атрибута AS_PATH будет 100 50, т.е. короче, чем маршрут через AS300. Так, исходящий из NAP поток "предпочтет" более короткий маршрут согласно AS_PATH, и трафик в сеть 192.213.1.0/24 будет направлен через AS100.

К сожалению, AS50 ведет себя совершенно противоположным образом и старается передать весь входящий трафик по более высокоскоростному каналу ТЗ на AS200. Для этого на AS50 в атрибут AS_PATH вставляются фиктивные записи о несуществующих номерах AS на маршруте, и затем эти сведения отправляются с сообщениями об обновлениях маршрутов на AS 100. На практике для формирования фиктивных записей используется повтор собственного номера AS, т.е. AS50 повторяет свой номер столько раз, сколько требуется для того, чтобы изменить баланс в пользу AS200 и представить маршрут через нее менее длинным, чем через AS 100.

Рис. 6.22. Пример маршрутизации перед вводом фиктивных записей в AS_PATH

На рис. 6.23 показано, как AS50 вставляет два номера AS 50 50 в начало атрибута AS_PATH для префикса 192.213.1.0./24, который объявляется AS100. Когда префикс 192.213.1.0.0/24 поступает в NAP через AS100, значение AS_PATH будет 100 50 50 50, что длиннее, чем AS_PATH 300 200 50 через AS300. Таким образом, исходящий из NAP поток отдаст предпочтение более короткому маршруту, и трафик в сеть 192.213.1.0/24 будет проходить через AS300.

Рис. 6.23. Пример маршрутизации после вставки фиктивных записей в AS_PATH

На практике фиктивные номера всегда должны дублировать номер AS, анонсирующей маршрут, или маршрут, полученный от соседнего узла (в том случае, когда AS увеличивает длину маршрута для входящих обновлений). Добавление какого-либо другого номера AS вводит систему в заблуждение и может привести к образованию петель маршрутизации или "черных дыр". Обратите внимание на точку в рис. 6.23, где происходит вставка фиктивных номеров.

Фильтрация маршрутов и управление атрибутами

Концепция фильтрации маршрутов довольно проста. Спикер BGP может выбрать маршруты, которые следует посылать и принимать от других BGP-узлов. Фильтрация маршрутов широко используется при описании правил маршрутизации. Автономная система может идентифицировать входящий трафик, который она согласна принимать от соседних

узлов, путем задания списка маршрутов, объявляемых своим соседним узлам. И наоборот, AS может управлять исходящим трафиком путем указания списка маршрутов, поступающих от соседних узлов, которые она согласна обслуживать.

См. в главе 11 раздел "Фильтрация маршрутов и управление атрибутами"

Фильтрация используется также на уровне протокола для того, чтобы ограничить "перетекание" обновлений маршрутов из одного протокола в другой. Ранее в этой главе мы обсуждали как возможность вложения BGP-маршрутов в IGP, так и IGP-маршрутов, а также статических маршрутов в BGP. Согласно терминологии Cisco, это называетсяпреобразованием (redistributing) маршрутной информации между протоколами. В этой главе мы также обсудим опасные последствия взаимного преобразования маршрутов между протоколами. Фильтрация необходима для точного определения информации, поступающей от BGP в IGP, и наоборот.

Маршруты, которым разрешено проходить через фильтр, могут обладать видоизмененными атрибутами. Модифицирование атрибутов влияет на процесс принятия решения в протоколе BGP при определении наилучшего маршрута к заданному пункту назначения.

Входная и выходная фильтрация

Рис. 6.24. Пример входной и выходной фильтрации

Концептуально входная и выходная фильтрация может выполняться и на уровне отдельного узла, и на уровне протоколов. На рис. 6.24 приведен пример входной и выходной фильтрации.

С точки зрения обмена маршрутами между BGP-узлами, входная фильтрация указывает на то, что спикер BGP отсеивает маршрутную информацию, поступающую от других узлов, а при выходной фильтрации ограничения налагаются на маршрутную информацию, распространяемую самим спикером BGP другим узлам. Фильтрация выполняется одинаково, независимо от того, идет ли речь о внешних (EBGP) или о внутренних(1BGP) BGP-узлах.

На уровне протоколов входная фильтрация ограничивает поступление сообщений об обновлениях маршрутов, которые были преобразованы из одного протокола в другой. Выходная фильтрация делает обратное - она ограничивает обратное преобразование маршрутов в исходный протокол.

Фильтрация и управление маршрутами

При фильтрации и управлении маршрутом иди набором маршрутов выполняется три основных действия.

1. Идентифицирование маршрутов.

2. Разрешение или запрещение работы с маршрутами.

3. Внесение изменений в атрибуты.

В оборудовании Cisco применяются списки разрешения доступа (access lists), списки префиксов (prefix lists) или списки разрешения доступа по заданному маршруту (as-path access lists) только для фильтрации. Также в оборудовании Cisco используется концепция карт маршрутов для фильтрации и для выполнения манипуляций с атрибутами. Карты маршрутов подробно обсуждаются в главе 11.

Идентификация маршрутов

Идентификация маршрутов - это установление критерия, по которому можно отличить один маршрут от другого. Подобный критерий может быть определен на основе префикса IP маршрута; автономной системы, сгенерировавшей маршрут; списка AS, через которые пролегает маршрут; значения атрибута маршрута и т.д. Список критериев включается в правила фильтрации, и маршрут сравнивается с первым критерием в списке. Если маршрут не соответствует первому критерию в списке, то он помечается как протиBGPечащий первому критерию в списке. Если маршрут соответствует критерию, он считается идентифицированным и не проверяется на соответствие другим критериям.

Если же маршрут при сравнении не соответствует ни одному из критериев, заданных

в списке, то он отвергается.

В общем случае идентификация маршрутов проводится на основе информации сетевого уровня о доступности сети (Network Layer Reachability Information - NLRI), атрибута AS_PATH или на основе обоих этих критериев. Каждый из этих методов идентификация более подробно описан в последующих разделах.

Идентификация маршрутов на основе NLRI

Маршрут BGP можно идентифицировать с помощью блока NLRI, который представляет собой префикс и маску (см. главу 4). Для выполнения фильтрации можно задавать отдельный префикс или диапазон префиксов. Если маршрут входит в диапазон разрешенных префиксов, то он будет идентифицирован.

См. в главе 11 раздел "Идентифицирование и фильтрация маршрутов на основе

На рис. 6.25 представлен критерий фильтрации 10.1.0.0 0.0.255.255, который действителен для диапазона маршрутов, идентифицированных префиксом 10.1.0.0 и инверсной маской 0.0.255.255. Нули в маске указывают на соответствие маршрута, в то время как единицы обозначают бит, который не анализируется при фильтрации. Таким образом, диапазон 10.1.0.0 0.0.255.255 будет идентифицировать все маршруты от 10.1.Х.Х. Вместе с префиксами, приведенными на рис. 6.25, фильтр будет идентифицировать маршруты 10.1.1.0/24, 10.1.2.0/24 и 10.1.2.2/30 и отвергать маршруты 11.2.0.0/16 и 12.1.1.0/24. Фильтрация, основанная на префиксах, более детально будет рассмотрена в последующих главах.

Рис. 6.25. Пример критерия фильтрации на основе NLRI

В настоящее время для фильтрации маршрутной информации наиболее широко используются списки префиксов. Их поддержка была включена в IOS совсем недавно, но они уже успели доказать свое превосходство над традиционными списками разрешения доступа.

Списки префиксов обеспечивают более эффективную и менее ресурсоемкую платформу для анализа, где требуется значительно меньше ресурсов системы для обработки маршрутной информации. Сегодня списки префиксов могут использоваться только для фильтрации маршрутной информации.

Одно из ключевых преимуществ списков префиксов - возможность их оперативной модификации. Другими словами, вы можете добавлять, удалять или изменять записи в списке без его полной реконструкции. Кроме того, синтаксис команд для настройки списков префиксов более удобен и интуитивно понятен администраторам, чем используемый для обычных списков разрешения доступа. В главе 11 подробно описаны основные принципы конфигурирования списков префиксов.

Идентификация маршрутов на основе атрибута AS_PATH

Идентификация маршрутов на основе информации, заключенной в атрибуте AS_PATH, немного сложнее, чем идентификация по NLRI. Как вам уже известно, атрибут AS_PATH представляет собой список номеров AS, через которые проходит маршрут на пути

к заданной BGP-системе. Сам по себе список - это строка символов из следующего набора:

Цифры от 0 до 9

Пробелы

Левая фигурная скобка {

Правая фигурная скобка }

Левая скобка (

Правая скобка)

Начало ввода строки

Конец ввода строки

Точка.

Например, список атрибута AS_PATH 10 2 в действительности состоит из символа начала ввода строки, за которым следуют символы 1 и 0, пробел и символ 2. И завершает строку символ конца ввода строки.

Ш См. в главе 11 на с. 288 раздел "Идентифицирование и фильтрация маршрутов на основе атрибута AS_PATH"

Идентификация маршрутов по списку AS_PATH заключается в его сравнении с

нормальным выражением (regular expression). Нормальное выражение представляет собой комбинации символов, представленных формулой вида Л 200 100$. Подобное нормальное

выражение представляет собой список, который начинается с 200, далее следует пробел и список заканчивается значением 100. Символы Л и $ обозначают, соответственно, начало и конец ввода строки.

Примечание

Нормальное выражение может быть сформировано как с использованием одиночных символов, так и с использованием групп символов.

Разрешение и запрещение маршрутов

После идентификации маршрута над ним можно провести определенные действия. Маршрут, в зависимости от заданных для соединения правил фильтрации, может быть либо разрешен, либо отвергнут. Критерии для разрешения или запрещения передачи трафика по определенному маршруту зависят от правил маршрутизации, принятых для конкретной AS. Если маршрут разрешен для передачи трафика, то он либо принимается "как есть", либо его атрибуты подвергаются модификации. Не все атрибуты маршрута могут быть модифицированы. Это зависит от атрибутов. Если маршрут оказывается запрещенным, то он просто отвергается без какой-либо последующей обработки.

Управление атрибутами

Если маршрут разрешен, то его атрибуты можно изменять в порядке влияния на процесс принятия решения маршрутизатором. В предыдущих разделах вы уже видели, каким образом такие атрибуты, как Local Preference и MED, могут быть дополнены или изменять свою длину для предпочтения одного маршрута другому. Как вы увидите позже, управление атрибутами является мощным рычагом, с помощью которого можно формировать правила маршрутизации, распределять нагрузку и влиять на симметрию маршрутов.

На рис. 6.26 представлена схема применения различных критериев к набору маршрутов с целью их фильтрации и модификации их атрибутов.

Заметим, что в каждом случае могут применяться один или несколько критериев. Маршрут может проверяться по префиксу и по атрибуту AS_PATH. Например, для того, чтобы была разрешена работа по нему, он должен соответствовать всем заданным критериям.

Отметим также, что после совпадений всех критериев для маршрута сравнение прекращается. Следовательно, имеет значение порядок проверки записей в правилах фильтрации. Например, если маршрут находится в начале списка, то запись, разрешающая все маршруты, будет перекрывать действие всех остальных записей.

Рис. 6.26. Пример фильтрации маршрутов и управления их атрибутами

Односимвольные выражения

В односимвольных выражениях маршрутная информация сравнивается с одним символом. Нормальное односимвольное выражение вида 3 осуществляет сравнение с символом 3 в строке ввода. Имеется возможность задания диапазона одиночных символов, с которыми должно проводиться сравнение. Диапазоны таких символов заключаются в квадратные скобки (). Порядок расположения символов внутри диапазона не имеет значения. Например, нормальное выражение, состоящее из диапазона символов , будет проверяться на совпадение с любым символом из заданного диапазона. Так, при задании строк, содержащих "hello" и "there", выясняется, что обе они соответствуют нормальному выражению, так как содержат символ е.

Диапазоны символов ограничиваются конечной точкой диапазона. Например, можно

задавать диапазоны , которые охватывают все маленькие буквы от а до z и все цифры от 0 до 9, соответственно.

Задавая знак вставки (Л ) в начале диапазона, можно отменять или отрицать соответствие той или иной записи правил фильтрации. Так, например, диапазон [^a-dA-D] будет проверяться на соответствие любым символам, кроме а, Ь, с, d, А, В, С и D. Некоторые символы, такие как знак доллара $ и знак подчеркивания _, имеют специальное назначение (табл. 6.4).

Чтобы специальные символы воспринимались как часть вводимой строки, ставьте перед ними обратный слеш (\). Например, диапазон будет означать, что анализу подвергаются строки, содержащие символы а, Ь, с и $. В табл. 6.4 представлены специальные символы, применяемые в нормальных выражениях.

Таблица 6.4. Cneциальные символы для нормальных выражений

Название символа

Специальное значение

Соответствует всем символам, включая пробел

Звездочка

Соответствует 0

и более выражений

Знак плюс

Соответствует 1

или более выражений

Знак вопроса

Соответствует 0

или более встречающихся выражений

Знак вставки

Соответствует началу строки. Также используется для

инвертирования выражения, если используется внутри

диапазона символов - например [^диапазон]

Знак доллара

Соответствует концу строки

Подчеркивание

Соответствует точке (.), правой ({) и левой (})

фигурным скобкам, а также правой и левой обычным

скобкам, символам начала и конца строки или пробелу

Квадратные скобки

[диапазон]

Определяет диапазон символов в выражении

Разделяет конечные точки диапазона

Многосимвольные выражения

Многосимвольные нормальные выражения представляют собой упорядоченную последовательность односимвольных выражений. Выражение может быть комбинацией букв, цифр, других символов и символов специального назначения. Ниже приведен пример нормального многосимвольного выражения: 100 1. Это выражение анализируется на соответствие строке, в которой имеется последовательность100, затем пробел, затем 1 и любая цифра от 0 до 9. Таким образом, нормальному выражению будут соответствовать любые из строк: 123 100 10 11,100 19 или 19100 11 200 и т. д.

Создание комплексных нормальных выражений

Для создания комплексных нормальных выражений широко используются специальные символы, представленные в табл. 6.4. Знаки вставки (^) и доллара ($) используются для обозначения начала и конца строки. Другие символы, такие как звездочка (*), знак плюс (+) и знак вопроса (?), позволяют повторять определенные символы внутри нормального выражения.

В приведенном примере отражается соответствие любых сочетаний буквы а, включая ее отсутствие:

а* эквивалентно любому из выражений вида: (пусто), а, аа. ааа, аааа и т.д.

В следующем примере показано, что в строке должна присутствовать хотя бы одна

а+ эквивалентно выражениям а, аа, ааа, аааа и т.д.

В этом примере представлен список, который может содержать, а может и не содержать букву а:

ba?b эквивалентно выражениям bb или bab.

Для повторения записи в многосимвольном выражении оно заключается в круглые скобки. Например, выражение (ab)+ эквивалентно ab или abab.

Символ подчеркивания (_) соответствует символам начала (Л ) и конца ($) строки, символам скобок, пробелу, квадратным скобкам, точке или самому себе. Символ точки (.) соответствует одиночному символу, включая простой пробел. На рис. 6.27, в табл. 6.5 и 6.6 показано, как символы могут сопрягаться друг с другом при создании нормального выражения.

Давайте рассмотрим топологию сети, представленную на рис. 6.27. Автономные системы AS400, AS300, AS200, AS100 и AS50 генерируют маршруты в сети А, В, С, D и Е, соответственно. Маршрутизатор RTA в AS50 получает сведения обо всех маршрутах в эти сети от соседних систем - AS 100 и AS300. После инициализации процесса принятия решения в BGP маршрутизатор RTA подбирает наилучший маршрут к этим сетям согласно табл. 6.5.

Рис. 6.27. Пример топологии сети для создания комплексного нормального выражения

Таблица 6.5 . Выбор наилучшего BGP-маршрута для маршрутизатора RTA

Значение AS_PATH

В табл. 6.6 представлены нормальные выражения, которые можно было бы использовать при фильтрации маршрутов, объявляемых маршрутизатором RTA для NAP.

Таблица 6.6 . Выражения и результаты их воздействия

Маршруты, объявляемые в

Выражение

Маршрутная

Результат

NAP маршрутизатором RTA

информация

воздействия

Только локальные маршруты

Все маршруты

Все маршруты

Сеть А, Сеть В,

Сеть С, Сеть D,

Маршруты, сгенерированные

Сеть В, Сеть D

непосредственно клиентами

Маршруты из сетей клиентов и

Сеть А, Сеть В,

их клиентов

Сеть С Сеть D

Маршруты, сгенерированные

Маршруты, прошедшие через

Сеть С, Сеть D

Работа с картами – это одно из основных преимуществ продуктов Microinvest , в которых возможно для идентификации ввести различные виды карт, и которые работают со всеми популярными технологиями и принципами. Правильное использование этих возможностей дает преимущество для идентификации клиентов и строгого контроля совершенных операций.

Виды карт

Карты подразделяются на различные виды, в зависимости от их применения:

  • Клиентские карты;
  • Карты операторов.

В зависимости от технологии использования, сама карта может подразделяться на следующие виды:

  • Карты со штрих-кодом ;
  • Магнитные карты;
  • RFID карты.

Клиентские карты

Карты клиентов присваиваются к досье партнера. Эти карты идентифицируют клиентов и позволяют использовать отдельные скидки , ценовые правила, ценовые группы , индивидуальную оплату и другие операции. Существование клиентских карт улучшает работу с клиентами, т.к. каждая операция индивидуальная и можно проследить действия и активность партнеров.

Карты операторов

Если считыватель кроме цифр передаёт служебные символы; и? то необходимо настроить считыватель родной утилитой от производителя либо воспользоваться бесплатным модулем Reader/Scanner от Microinvest Utility Center ; в случае если считыватель использует COM-порт, можно использовать Microinvest Serial Driver

Авторизация

Смена клиента осуществляется считыванием его карты в окне активного заказа Microinvest Склад Pro Light.
Считывание карточки пользователя таким же образом возможна в процессе работы, а также в окне ввода пароля.

Особенности

Рекомендуется сканировать карты клиентов пред тем, как начать операцию. Если этого не придерживаться, то возможно, что возникнут затруднения при работе, или скидки для клиентов не будут привязываться. Это правило имеет исключение, но все же, желательно его соблюдать.

Настройки для считывателей

Для того чтобы продукты работали с различными видами считывающих устройств , необходимо сделать следующие настройки (относится к произвольным устройствам при произвольной технологии)

  1. Устройство должно передавать данные с самой высокой скоростью. Продукты измеряют скорость передачи для того, чтобы понять, является ли устройство сканером, или ввод происходит с использованием клавиатуры;
  2. Передача данных эмулирует ввод с клавиатуры. Если устройство имеет последовательный порт, можно установить бесплатный драйвер Microinvest Serial Driver;
  3. Не нужно передавать префикс и суффикс. Важно иметь только Enter в конце цифровой последовательности;
  4. Устройство должно передавать только цифры. Буквы смущают работу продуктов.

Создание карт

Есть различные технологии для создания клиентских карт. Обычно, выбирается одна и следующих возможностей:

  1. Дизайн и печать карт через специализированную программу, такую как Microinvest Баркод принтер Pro , может успешно справиться с поставленной задачей. Необходимо только последующее ламинирование распечатанного материала;
  2. Рекламные агентства, специализирующиеся на создании и производстве карт;
  3. Использование подготовленного материала, на который необходимо только наклеить идентификатор.

Иногда нужно исключить возможность запоминания оператором номера клиентской карты и возможность ввода кода с клавиатуры. Для решения данного вопроса советуем использовать ALT коды, Unicode, ASCII - символы которых нет в стандартной клавиатуре, например: Đ,ʬ, ʭ, ʮ, ʯ, ©. Таким образом, можно данные символы напрямую записать в номер карточки клиента и в саму физическую карту. Так, при сканировании номер будет не читаемым и не будет возможно его ввести с клавиатуры.

Можно также использовать Microinvest Utility Center и его модуль Reader/Scanner с настройкой суффикса и/или префикса, например знак ©Đ. Таким образом, при считывании будет: префикс+номер карты+суффикс. Примечание: При хорошо настроенной системе считывание будет осуществляться за миг, и оператор не сможет считать какую бы то ни было информацию.

Некоторые полезные ресурсы

  • Документация по всем продуктам;

Списки префиксов являются новейшим, более эффективным и интуитивно понятным способом идентификации маршрутов для их последующего сравнения с критериями или для фильтрации в протоколах маршрутизации. Давайте рассмотрим основные рекомендации по настройке списков префиксов.

В отличие от списков разрешения доступа, списки префиксов могут обновляться не

полностью, а частично. Это означает, что каждая запись в списке префиксов идентифицируется номером последовательности. Если необходимо добавить, удалить или изменить заданную в списке префиксов последовательность, то нужно лишь указать ее номер. Основное преимущество такой операции заключается в том, что, в отличие от списков разрешения доступа, не нужно удачять список и затем снова настраивать его при внесении каких-либо изменений.

В списках префиксов также имеет значение порядок следования записей, т.е. первая запись, которая соответствует условиям, и будет приниматься как руководство к действию. Как и в списках разрешения доступа, вы можете разрешить (permit) или запретить (deny) распространение сведений о том или ином префиксе. Списки префиксов также позволяют организовать фильтрацию не только отдельных префиксов, но и диапазонов префиксов.

Настройку списков префиксов мы обсудим позже. Отметим, что наши рекомендации

ни в коем случае не должны использоваться вместо тех, что имеются в документации на вашу версию 1OS.

Списки префиксов могут именоваться любой строкой, содержащей буквы и цифры, а также могут снабжаться специальным описанием. Описание списка префиксов выглядит примерно так:

ip prefix-list list-name description text

Для того чтобы добавить или удалить записи из списка префиксов, понадобится следующий синтаксис:

ip prefix-list list-name seq seq-value deny /permit network/len [ge ge-value] [le le-value]

Здесь list-name - строка буквенно-цифровых символов. Для обозначения списков префиксов вы можете использовать стандартную схему с последовательной нумерацией или задать более понятное вам название:

ip prefix-list list-name

В табл. 11.3 представлены примеры фильтрации префиксов.

Таблица 11.3. Фильтрация заданных префиксов

Критерий фильтрации Выполняемая команда

Разрешить все кроме префикса 192.68.0.0/16 ip prefix-list sample permit 192.68.0.0/16 Запретить маршрут по умолчанию ip prefix-list sample deny 0.0.0.0/0 Разрешить все ip prefix-list sample permit 0.0.0.0/0 le 32

Запретить все ip prefix-list sample deny 0.0,0.0/0 le 32

Запретить /25+ во всем адресном

пространстве ip prefix-list sample deny 0.0.0.0/0 ge 25

Разрешить все адреса с префиксами от /8 до

/24 ip prefix-list sample permit 0.0.0.0/0 ge 8 le 24

Обратите внимание, что в табл. 11.3 не включены номера последовательностей. Если вы не указываете номер последовательности, то начальное значение последовательности по умолчанию - 5 и будет увеличивается на 5 в каждой последующей записи, если явно не указан другой номер последовательности.

Для пошаговой настройки списка префиксов вам просто нужно указать номер последовательности для записи, которую вы собираетесь добавить, удалить или изменить в списке. В качестве примера рассмотрим список префиксов в листинге 11.10.

Листинг 11.10. Пример списка префиксов

prefix-list

1.1.1.0/24

prefix-list

2.2.2.0/24

prefix-list

3.3.3.0/24

ip prefix-list sample seq 20 deny 0.0.0.0/0 le 32

Пример списка префиксов, приведенный в листинге 11.10, разрешает префиксы 1.1,1.0/24, 2.2.2.0/24 и 3.3.3.0/24 и запрещает все остальные маршруты. Предположим, что необходимо разрешить также маршрут 4.4.4.0/24. Соответствующая настройка записи будет выполняться таким образом:

ip prefix-list sample seq 18 permit 4.4.4.0/24

При внесении этой записи в список префиксов последний приобретет вид, представленный в листинге 11.11.

Листинг 11.11. Список префиксов после добавления записи, разрешающей работу с маршрутом 4.4.4.0/24

ip prefix-list sample seq 5 permit 1.1.1.0/24 ip prefix-list sample seq 10 permit 2.2.2.0/24 ip prefix-list sample seq 15 permit 3.3.3.0/24 ip prefix-list sample seq 18 permit 4.4.4.0/24

ip prefix-list sample seq 20 deny 0.0.0.0/0 le 32

Теперь допустим, что необходимо запретить маршрут 4.4.4.0/24. Вам потребуется внести следующую запись в список префиксов:

no ip prefix-list sample seq 18

Теперь наш список префиксов будет выглядеть так, как показано в листинге 11.12.

Листинг 11.12. Список префиксов после добавления записи, запрещающей работу с маршрутом 4.4.4.0/24

ip prefix-list sample seq 5 permit 1.1.1.0/24 ip prefix-list sample seq 10 permit 2.2.2.0/24 ip prefix-list sample seq 15 permit 3.3.3.0/24

ip prefix-list sample seq 20 deny 0.0.0.0/0 le 32

Как видите, пошаговое внесение изменений в списки префиксов предоставляет администратору огромные преимущества по сравнению с традиционными списками разрешения доступа. В последующих листингах главы 11 мы будем в основном применять списки разрешения доступа. Примеры использования списков префиксов вы найдете в следующей главе.