RabbitMQ. Часть 2. Разбираемся с Exchanges / Хабр

Проверенная база данных описаний товаров медицинского назначения

База данных товаров медицинского назначения в MedStock.Pro – это не только проверенные и полноценные данные о медицинских товарах, но и труд большого коллектива, имеющего профессиональные знания в сфере закупок товаров медицинского назначения, правил и требований при осуществлении закупочной деятельности, знаний в области юридических и иных законодательных требований РФ. IT-специалистов, имеющих многолетний опыт по структуризации данных, организации моделей обеспечивающих работу с большим объемом информации. И все это, в компактном, удобным и простом формате, только ради одной цели – сделать вашу работу простой, эффективной и удобной.

Что такое точка обмена трафиком?

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

  • уменьшить задержку,
  • сократить количество транзитного трафика,
  • оптимизировать маршрутизацию между AS.

Учитывая, что IXP присутствуют во многих крупных городах мира, то это все благоприятно сказывается и на сети Интернет в целом.

Если вышеописанную ситуацию с Петей решать с помощью IXP, то получится примерно так:

Consistent-hashing exchange

Данный обменник является плагином и не встроен в RabbitMQ.

Consistent-hashing exchange (exchange с согласованным хешированием) – используется, когда есть несколько очередей, являющихся потенциальными получателями сообщения, и когда нужно сбалансировать нагрузку между ними. Связь сообщения с очередью происходит по весу (условное строковое значение от 0 — n).

Эквивалентный вес очередей – говорит о том, что в каждую очередь придет примерно одинаковое количество сообщений (каждое сообщение будет помещено только в одну очередь). Полной гарантии равномерного распределения сообщений нет.

Графическое представление потока сообщений:

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

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

Direct exchange

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

Графическое представление потока сообщений:

В rabbitmq существует понятие обменник по умолчанию. Это direct exchange без имени. Если применяется обменник по умолчанию, то сообщение будет маршрутизироваться в очередь с именем равным ключу маршрутизации сообщения.

Fanout exchange

Fanout exchange – все сообщения доставляются во все очереди даже если в сообщении задан ключ маршрутизации.

Особенности:

  • RabbitMQне работает с ключами маршрутизации и шаблонами что положительно влияет на производительность. Это самый быстрый exchange;
  • все потребители должны иметь возможность обрабатывать все сообщения;

Графическое представление потока сообщений:

Headers exchange — направляет сообщения в связанные очереди на основе сравнения пар (ключ, значение) свойства headers привязки и аналогичного свойства сообщения. headers представляет собой Dictionary<ключ, значение>.

Если в словарь добавить специальный ключ x-match со значением any, то сообщение маршрутизируется при частичном совпадении пар (ключ, значение). Данное поведение аналогично оператору or.

var bindingArguments = new Dictinary<String, Object>();
bindingArguments.add("x-match", "any");

По умолчанию ключ x-match содержит значение all. Это означает, что сообщение маршрутизируется при полном совпадении пар (ключ, значение). Данное поведение аналогично оператору and.

Графическое представление потока сообщений:

Особенности:

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

Linxdatacenter ix

В Linxdatacenter мы построили собственную IXP на базе отказоустойчивой инфраструктуры из 2-х коммутаторов и 2-х route-серверов. Сейчас наша IXP запущена в тестовом режиме, и мы приглашаем всех желающих подключиться к Linxdatacenter IX и принять участие в тестировании.

Safety gate: the rapid alert system for dangerous non-food products

Two new online marketplaces,

bol.com

and

eMAG

, signed the Product Safety Pledge, to join

Wish.com

,

AliExpress

,

Amazon

,

eBay

,

Rakuten France

,

Allegro

and

Cdiscount

in their commitment to take actions to keep online shoppers safe from harmful products. The Pledge is a voluntary commitment, which goes beyond product safety legal obligations. It contributes to the faster removal of dangerous non-food consumer products offered for sale online and sets out actions by online marketplaces to strengthen product safety, such as providing a clear way for customers to notify dangerous product listings.

More information

Topic exchange

Topic exchange – аналогично direct exchange дает возможность осуществления выборочной маршрутизации путем сравнения ключа маршрутизации. Но, в данном случае, ключ задается по шаблону. При создании шаблона используются 0 или более слов (буквы AZ и az и цифры 0-9), разделенных точкой, а также символы * и #.

  • * — может быть заменен на ровно 1 слово
  • # — может быть заменен на 0 или более слов

Графическое представление потока сообщений:

Начиная с версии RabbitMQ 2.4.0 алгоритм маршрутизации для topic exchange стал работать до 145 раз быстрее. Добились они этого путем внедрения подхода trie implementation, который подразумевает представление шаблонов в виде структуры дерева.

Поиск соответствия шаблону осуществляется, начиная с корня и следуя сверху вниз.

Особенности:

  • применение этого обменника может стать хорошим выбором для возможного будущего развития приложения, т.к. шаблоны всегда можно настроить так, чтобы сообщение публиковалось аналогично direct exchange или fanout exchange
  • шаблоны, которые используют *намного быстрее, чем шаблоны, которые используют #.
  • topic exchange медленнее direct exchange

Австрия

  • Bank Burgenland;
  • Bank für Tirol und Vorarlberg (BTV);
  • BAWAG P.S.K.;
  • BKS Bank;
  • Easybank;
  • Erste Bank und Sparkasse;
  • HYPO-Bank;
  • Kathrein Privatbank;
  • Oberbank;
  • Raiffeisenbank;
  • Sparda Wien;
  • UniCredit Bank Austria;
  • VakifBank International;
  • Volksbank;
  • Volkskreditbank (VKB);
  • VR-Bank Salzburg.

Великобритания

  • Bank of Scotland;
  • Barclays;
  • Clydesdale Bank;
  • Co-operative;
  • First Direct;
  • Halifax;
  • HSBC;
  • Lloyds;
  • Nationwide;
  • Natwest;
  • Royal Bank of Scotland (RBS);
  • Santander;
  • Smile;
  • TSB;
  • Ulster Bank (Northern Ireland);
  • Yorkshire Bank.

Венгрия

  • Erste Bank;
  • K&H bank (Kereskedelmi es Hitelbank);
  • MKB Bank;
  • OTP Bank;
  • Raiffeisen Bank.

Вся информация о лекарственных препаратах, медицинских изделиях, дезинфицирующих средствах – в единой информационной системе.

Время – это тот ресурс, который ценится особо высоко. Мы очень ценим Ваше время, и именно поэтому предлагаем Вам воспользоваться системой MedStock.Pro и получить реальную выгоду и сэкономить ваше время при поиске, подборе и сравнении различных товаров медицинского назначения. MedStock.Pro – это информационная площадка предоставляющая информацию о большой группе товаров медицинского назначения: лекарственные препараты, медицинские изделия, дезинфицирующие средства. И всё это у Вас «под рукой»! Мы прекрасно понимаем, что рынок товаров огромен, и постоянно изменятся. Именно поэтому, работа по поддержке информации в актуальном состоянии в наших базах, это ежедневный труд, цель которого, предоставить Вам качественную, проверенную информацию о товарах – по первому требованию.

Германия

  • 1822Direkt / Frankfurter Sparkasse;
  • Bremer Landesbank (BLB);
  • BW-Bank (Baden-Württembergische Bank);
  • Сomdirect bank;
  • Commerzbank;
  • Consorsbank;
  • Degussa Bank;
  • Deutsche Bank;
  • Deutsche Kreditbank (DKB);
  • Fidor Bank;
  • ING-DiBa;
  • Kreissparkassen;
  • Netbank;
  • Norisbank;
  • Postbank;
  • Santander Consumer Bank;
  • Sparda-Bank;
  • Sparkassen;
  • TARGOBANK;
  • UniCredit Bank – HypoVereinsbank;
  • Volksbanken Raiffeisenbanken (VR);
  • Wirecard Bank;
  • Wüstenrot Bank.

Дания

  • Alm. Brand Bank;
  • Danske Bank;
  • Djurslands Bank;
  • Jyske Bank;
  • Kreditbanken;
  • Nordea Bank;
  • Nordfyns Bank;
  • Nordjyske Bank;
  • Nykredit Bank;
  • Østjydsk Bank;
  • Ringkjøbing Landbobank;
  • Skjern Bank;
  • Sparekassen Sjælland;
  • Sydbank.

Интернет и наши дни

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

В качестве AS обычно выступают операторы связи, интернет-провайдеры, CDN, дата-центры, компании энтерпрайз сегмента. AS организуют логические связи (peering) между собой, как правило, средствами протокола BGP.

То, как автономные системы организуют эти связи, определяется рядом факторов:

  • географическими,
  • экономическими,
  • политическими,
  • договоренностями и общими интересами между владельцами AS,
  • и т.д.

Конечно, в данной схеме есть определенная структура и иерархия. Так, операторы делятся на tier-1, tier-2 и tier-3, и если клиентами для местного интернет-провайдера (tier-3) являются, как правило, обычные пользователи, то, например, для операторов уровня tier-1 клиентами являются другие операторы.

Схематически это можно представить так:

RabbitMQ. Часть 2. Разбираемся с Exchanges / Хабр
На данной картинке видно, что трафик агрегируется снизу вверх, т.е. от конечных пользователей к tier-1 операторам. Также имеет место горизонтальный обмен трафиком между примерно равнозначными между собой AS.

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

Предположим, что в крупном городе присутствует 5 операторов связи, пиринг между которыми, по тем или иным причинам, организован, как показано выше.

Если пользователь Петя, подключенный к интернет-провайдеру Go, захочет получить доступ к серверу, подключенному к провайдеру ASM, то трафик между ними будет вынужден проходить через 5 автономных систем. Таким образом увеличивается задержка, т.к. увеличивается количество сетевых устройств, через которые пойдет трафик, а также объем транзитного трафика на автономных системах между Go и ASM.

Как сократить количество транзитных AS, которые вынужден проходить трафик? Правильно – точка обмена трафиком.

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

Испания

  • ABANCA / Novagalicia Banco;
  • Banco de Sabadell;
  • Banco Santander;
  • Bankia;
  • Bankinter;
  • BBVA;
  • CaixaBank;
  • Cajamar Caja Rural;
  • ING;
  • Openbank;
  • Unoe.

Италия

  • Banca Carige;
  • Banca Cesare Ponti (Gruppo Carige);
  • Banca del Monte di Lucca (Gruppo Carige);
  • Banca Mediolanum;
  • Banca Popolare di Sondrio;
  • Banca Prossima;
  • Banco BPM (Banca Popolare di Milano);
  • Banco di Napoli;
  • Banco Popolare Soc Coop (Banco BPM);
  • BNL (Banca Nazionale del Lavoro);
  • Cassa dei Risparmi di Forli e della Romagna;
  • Cassa di Risparmio del Friuli Venezia Giulia;
  • Cassa di Risparmio del Veneto;
  • Cassa di Risparmio di Asti;
  • Cassa di Risparmio di Biella e Vercelli – Biverbanca;
  • Cassa di Risparmio di Firenze – Cassa di Risparmio di Genova e Imperia (Gruppo Carige);
  • Cassa di Risparmio di Pistoia e della Lucchesia;
  • Cassa di Risparmio in Bologna;
  • Hello bank!;
  • ING Bank;
  • Intesa Sanpaolo;
  • Intesa Sanpaolo Private Banking;
  • IWBank;
  • MPS (Banca Monte dei Paschi di Siena);
  • Poste Italiane;
  • Santander Consumer Bank;
  • UniCredit Banca;
  • Webank.

Как использовать rapid transfer на exmo?

Для того, чтобы воспользоваться системой мгновенных онлайн-платежей Rapid Transfer на EXMO, необходимо зайти в личный кабинет пользователя на платформе в раздел “Кошелек”, выбрать интересующую валюту (EUR), нажать “Пополнить” и среди всех платежных инструментов выбрать Rapid Transfer.

В настоящий момент у пользователей платформы есть несколько возможностей воспользоваться Rapid Transfer, а именно:

  • Rapid Transfer является неотъемлемой частью системы платежей Skrill для пополнения баланса в EUR и PLN;
  • Rapid Transfer доступен как отдельная платежная система для пополнения баланса в EUR.

Детальная информация о комиссиях и лимитах представлена в личном кабинете в разделе “Кошелек” и на сайте в разделе в “Комиссии и лимиты”.

Напомним, что использование Rapid Transfer требует прохождения верификации аккаунта на EXMO. Ознакомиться с процедурой верификации можно в статье “Верификация на EXMO: как пройти?”.

Как устроена точка обмена трафиком?

Как правило, IXP – это отдельная AS со своим блоком публичных IPv4/IPv6 адресов.

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

Комбинирование обменников (e2e)

Поведение всех обменников можно комбинировать при помощи связи Exchange-to-Exchange (комбинирование обменников не входит в спецификацию AMQP. Это расширение протокола со стороны RabbitMQ).

Графическое представление потока сообщений:

За счет E2E мы можем найти правильную масштабируемую конфигурацию, которая отвечает как текущим, так и растущим требованиям.

Кто может воспользоваться rapid transfer?

Особенностью системы Rapid Transfer является широкая партнерская банковская сеть. Все пользователи EXMO, у которых открыты счета в банках Австрии, Дании, Финляндии, Франции, Германии, Венгрии, Италии, Польши, Португалии, Испании, Швеции, Англии, Норвегии, могут воспользоваться данной системой для пополнения баланса на платформе.

Список стран и банков, входящих в партнерскую сеть Rapid Transfer, представлен ниже.

Воспользоваться Rapid Transfer могут все зарегистрированные пользователи платформы, которые прошли верификацию аккаунта на EXMO. Напомним, верификация на EXMO занимает не более 24 часов.

Насколько безопасно использование rapid transfer?

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

Немного истории


Если посмотреть

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

Такое положение вещей сказывалось не только на стоимости доставки транзитного трафика, но и на качестве каналов и задержке. Количество пользователей сети Интернет увеличивалось, появлялись новые операторы, объем трафика возрастал, интернет взрослел. Операторы по всему миру начали понимать, что нужен более рациональный подход к организации межоператорского взаимодействия.

«Зачем мне, оператору А, платить за транзит через другую страну, чтобы доставить трафик оператору Б, который располагается на соседней улице?». Примерно такой вопрос задавали себе операторы связи в то время. Так, в разных частях мира в точках концентрации операторов начали появляться точки обмена трафиком:

  • 1994 – LINX в Лондоне,
  • 1995 – DE-CIX во Франкфурте,
  • 1995 – MSK-IX, в Москве и т.д.

Норвегия

  • DNB;
  • Handelsbanken;
  • Sparebanken Vest o Nordea;
  • Skandia;
  • Sparebank 1.

Откройте современный подход управления закупками

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

Перечень банков, которые входят в партнерскую сеть rapid transfer

Если у вас открыт счет в одном из нижеуказанных банков, вы можете воспользоваться Rapid Transfer для пополнения баланса на EXMO и осуществления торговых операций на платформе.

Польша

  • Alior Bank;
  • Bank BPH;
  • Bank Millennium;
  • Bank Pekao;
  • Bank Zachodni WBK (BZWBK);
  • BGZ BNP Paribas;
  • Credit Agricole Bank Polska;
  • ING Bank Śląski;
  • Inteligo (PKO Bank Polski);
  • iPKO (PKO Bank Polski);
  • mBank;
  • Orange Finance;
  • Raiffeisen Polbank;
  • T-Mobile Usługi Bankowe.

Португалия

  • Banco BPI;
  • Caixa Económica Montepio Geral (CEMG);
  • Caixa Geral de Depósitos;
  • Millenium bcp;
  • Novo Banco;
  • Novo Banco dos Acores;
  • Santander Totta.

Пример конфигурации bird:

define ixp_as = 555;
define ixp_prefixes = [ 50.50.50.0/24  ];

template bgp RS_CLIENT {
  local as ixp_as;
  rs client;
}

Далее описывается фильтр, который не принимает martians префиксы, а также префиксы самой IXP:

function catch_martians_and_ixp()
prefix set martians;
prefix set ixp_prefixes;
{
  martians = [ 
  0.0.0.0/8 ,
  10.0.0.0/8 ,
  100.64.0.0/10 ,
  127.0.0.0/8 ,
  169.254.0.0/16 ,
  172.16.0.0/12 ,
  192.0.0.0/24 ,
  192.0.2.0/24 ,
  192.168.0.0/16 ,
  198.18.0.0/15 ,
  198.51.100.0/24 ,
  203.0.113.0/24 ,
  224.0.0.0/4 ,
  240.0.0.0/4  ];

  if net ~ martians || net ~ ixp_prefixes then return false;

  return true;
}

Данная функция реализует политику маршрутизации, которую мы описали ранее.

function bgp_ixp_policy(int peer_as)
{
  if (ixp_as, ixp_as) ~ bgp_community then return true;
  if (ixp_as, peer_as) ~ bgp_community then return true;

  return false;
}

filter reject_martians_and_ixp
{
  if catch_martians_and_ixp() then reject;
  if ( net ~ [0.0.0.0/0{25,32} ] ) then {
    reject;
  }
  accept;


}

Настраиваем пиринг, применяем соответствующие фильтры и политики.

protocol as_100 from RS_CLIENT {
  neighbor 50.50.50.10 as 100;
  ipv4 {
    export where bgp_ixp_policy(100);
    import filter reject_martians_and_ixp;
  }
}

protocol as_200 from RS_CLIENT {
  neighbor 50.50.50.20 as 200;
  ipv4 {
    export where bgp_ixp_policy(200);
    import filter reject_martians_and_ixp;
  }
}

protocol as_300 from RS_CLIENT {
  neighbor 50.50.50.30 as 300;
  ipv4 {
    export where bgp_ixp_policy(300);
    import filter reject_martians_and_ixp;
  }
}


Стоит отметить, что на route server’e является хорошим тоном складывать маршруты от разных пиров в разные RIB. BIRD позволяет это делать. В нашем же примере для простоты все апдейты, принятые от всех клиентов, складываются в одну общую RIB.

Итак, проверим, что у нас получилось.

На route server’e видим, что со всеми тремя клиентами установлена BGP-сессия:

Видим, что мы получаем префиксы от всех клиентов:

На маршрутизаторе as 100 видим, что при наличии всего одной BGP-сессии с сервером маршрутов, мы получаем префиксы и от as 200 и от as 300, при этом BGP-атрибуты не поменялись, как если бы пиринг между клиентами осуществлялся напрямую:

Таким образом мы видим, что наличие сервера маршрутов значительно упрощает организацию пиринга на IXP.

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

Принцип работы

Разберем принцип работы точки обмена трафиком на примере простейшей IXP, смоделированной средствами EVE-NG, а после рассмотрим базовую настройку программного маршрутизатора BIRD. Для упрощения схемы мы опустим такие важные вещи, как резервирование и отказоустойчивость.

Топология сети представлена на рисунке ниже.

Предположим, что мы администрируем небольшую точку обмена трафиком и предоставляем следующие варианты пиринга:

  • публичный пиринг,
  • приватный пиринг,
  • пиринг через route server.


Номер нашей AS – 555, мы владеем блоком IPv4 адресов – 50.50.50.0/24, из которого выдаем IP-адреса, для желающих подключиться к нашей сети.

50.50.50.254 – IP-адрес, настроенный на интерфейс route server’а, с данным IP клиенты будут устанавливать BGP-сессию в случае пиринга через RS.

Также для пиринга через RS мы разработали простейшую политику маршрутизации на основе BGP community, которая дает возможность участникам IXP регулировать кому и какие маршруты отправлять:

К нашей IXP желают подключиться и обменяться трафиком 3 клиента; допустим, это интернет-провайдеры. Все они желают организовать пиринг через route server. Ниже представлены схема с параметрами подключения клиентов:

Создание exchange

Создание обменника происходит при помощи синхронного RPC запроса к серверу. Запрос осуществляется при помощи метода Exchange.Declare, вызываемого с параметрами:

  • название обменника
  • тип обменника
  • другие параметры

Пример создания exchange при помощи RabbitMQ.Client:

//...
channel.ExchangeDeclare(
    exchange: "my_exchange",
    type: "direct",
    durable: "false",
    autoDelete: "false",
    arguments: null
);
//...
  • exchange — название обменника, который мы хотим создать. Название должно быть уникальным
  • type — тип обменника
  • durable — если установить true, то exchange будет являться постоянным. Он будет храниться на диске и сможет пережить перезапуск сервера/брокера. Если значение false, то exchange является временным и будет удаляться, когда сервер/брокер будет перезагружен
  • autoDelete — автоматическое удаление. Exchange будет удален, когда будут удалены все связанные с ним очереди
  • arguments — необязательные аргументы. Чаще всего, через аргументы задают alternative exchange (альтернативный обменник). Если сообщение не может пройти по первоначальному маршруту, ее можно отправить в альтернативный обменник для маршрутизации по другому пути.

Если создание exchangeвозможно, то сервер отправит клиенту синхронный RPC ответ Exchange.DeclareOk. Если создание невозможно (произошел отказ по запросу Exchange.Declare), то канал закроется сервером при помощи асинхронной команды Channel.

Обменник должен быть создан перед публикацией сообщений. Если вы опубликуете сообщение в какой-то не существующий обменник — RabbitMQ тихо удалит его.

Финляндия

  • Ålandsbanken;
  • Aktia;
  • Danske Bank;
  • Nordea;
  • Oma Säästöpankki (OmaSp);
  • Pohjola Pankki;
  • POP Pankki;
  • Säästöpankki;
  • S-Pankki;
  • Svenska Handelsbanken.

Франция

  • Banque BCP;
  • Banque Chalus;
  • Banque Européenne du Crédit Mutuel (BECM);
  • Banque Populaire;
  • BNP Paribas;
  • BRED Banque Populaire;
  • Caisse d’Epargne;
  • Caisse Fédérale de Crédit Mutuel;
  • Caisse Regionale de Credit Agricole;
  • Crédit du Nord Groupe;
  • Crédit Industriel et Commercial (CIC);
  • Hello bank!;
  • La Banque Postale;
  • Le Credit Lyonnais;
  • Monabanq;
  • Société Générale.

Швеция

  • Danske Bank;
  • ICA Banken;
  • Länsförsäkringar;
  • Nordea;
  • SEB (Skandinaviska Enskilda Banken);
  • Skandiabanken;
  • Sparbanken Syd;
  • Svenska Handelsbanken;
  • Swedbank och Sparbankerna.

Элементы ixp

  • СКС. Здесь ничего необычного: стойки, оптические кроссы, патч-панели.
  • Коммутаторы – основа IXP. Порт коммутатора — точка входа в сеть IXP. Также коммутаторы выполняют часть функций по безопасности – фильтруют мусорный трафик, который не должен присутствовать на сети IXP. Как правило, коммутаторы подбираются исходя из требований к функционалу – надежность, поддерживаемая скорость портов, функции безопасности, поддержка sFlow и т.д.
  • Route server (RS) – неотъемлемая и необходимая часть любой современной точки обмена трафиком. По принципу работы очень сильно напоминает route reflector в iBGP или designated router в OSPF и решает те же проблемы. По мере роста количества участников точки обмена трафиком, увеличивается количество BGP сессий, которое необходимо поддерживать каждому из участников, т.е. это напоминает классическую full-mesh топологию в iBGP. RS решает проблему следующим образом: устанавливает BGP-сессию с каждым заинтересованным участником IXP, и тот становится клиентом RS. Принимая BGP update от одного из своих клиентов, RS рассылает данный update всем остальным своим клиентам, разумеется, за исключением того, от которого данный update был получен. Таким образом, RS избавляет от необходимости устанавливать full-mesh между всеми участниками IXP и элегантно решает проблему масштабируемости. Стоит отметить, что сервер маршрутов прозрачно передает маршруты от одной AS к другой, не вноcя изменения в передаваемые BGP атрибуты, например не добавляет номер в своей AS в AS-path. Также на RS происходит базовая фильтрация маршрутов: например, RS не принимает martians networks и префиксы самой IXP.

    В качестве решения route server часто используется программный маршрутизатор с открытым исходным кодом – BIRD (bird internet routing daemon). Он хорош тем, что он бесплатен, быстро разворачивается на большинстве linux дистрибутивов, имеет гибкий механизм настройки политик маршрутизации/фильтрации, не требователен к вычислительным ресурсам. Также, в качестве RS может быть выбран и аппаратный/виртуальный маршрутизатор Cisco, Juniper и т.д.

  • Безопасность. Поскольку сеть IXP – это концентрация большого количества AS, то и политика безопасности, которой должны следовать все участники, должна быть хорошо прописана. Как правило, все те же механизмы, которые применяются при установлении BGP-соседства между двумя отдельными BGP-пирами вне IXP, применяются и здесь, а также используются некоторые дополнительные средства защиты.

    Например, хорошей практикой является пропуск трафика только с определенного mac-адреса участника IXP, который обговаривается заранее. Запрет трафика с полями ethertype, отличающимися от 0x0800(IPv4), 0x08dd(IPv6), 0x0806(ARP); это делается для того, чтобы отфильтровать трафик, которому нет места при BGP-пиринге. Также могут применяться такие механизмы как GTSM, RPKI и т.д.


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

Бывает, что IXP также предоставляет своим участникам дополнительные сервисы:

  • размещают на IXP TLD DNS-сервера,
  • устанавливают аппаратные NTP-сервера, давая возможность участникам точно синхронизовать время,
  • предоставляют защиту от DDoS-атак и т.д.

Вывод

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

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

Заключение

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

Если в построенном графе существует конечное множетсво ключей маршрутизации, то, стоит посмотреть в сторону нескольких fanout exchange, которые 1:1 связаны с ключом маршрутизации. Помним, что fanout exchange самый быстрый.

Если число маршрутов стремится к бесконечности, то стоит обратить внимание на topic exchange или, если шаблон не нужен, то можно выбрать direct exchnge, т.к. он быстрее topic exchange.

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

Количество exchange и очередей должно быть минимально по сравнению с количеством маршрутов.

В следующей статье начнем разбираться подробнее с Queues и Bindings.

Оставьте комментарий

Войти