ТСАМ от 1ру4 к 1ру6
Статья посвящена проблемам современной маршрутизации сети Интернет. Рассматриваются проблемы выборки маршрутов сетей, использования политик безопасности и качества обслуживания передаваемой информации. Отдельный раздел посвящен примерам использования свойств маски сетей для сокращения размеров таблиц маршрутизации. Рассмотрены различные возможные варианты компоновки адресной памяти, проведено сравнение между маршрутизацией по протоколу 1ру4 и 1ру6, а так же рассмотрены варианты программных и аппаратных средств маршрутизации. В заключение приводятся преимущества и проблемы внедрения протокола 1Ру6.
Ключевые слова: TCAM, Ipv4, Ipv6, маска, CAM, lookup, маршрутизатор.
Багинян А.С.,
инженер-электронщик 1 -й категории, baginyan@tmpk.net
Долбилов А.Г.,
инженер-программист 1 -й категории, Лаборатория Информационных Технологий, Объединенный институт ядерньх исследований, г. Дубна, dolbilov@jinr.ru
Введение
В современных роутерах наибольшую проблему вызывает возможность осуществления быстрого поиска (lookup) по таблице маршрутизации. Число записей в таблице маршрутизации растет экспоненциально. На данный момент таблица маршрутизации Интернета насчитывает более 340 000 записей. Поиск можно осуществлять как программными, так и аппаратными средствами. В литературе по данному вопросу описываются и предлагаются различные алгоритмы оптимизации программных решений. Однако, программные методы требуют больших ресурсов свободной памяти и не позволяют производить поиск на больших скоростях. С принятием стандарта IEEE Std 802.3ba-2010 необходимо обеспечивать удовлетворительную скорость поиска при пропускной способности 40-100 Гбит/с, в то время как программные методы способны обеспечивать удовлетворительную скорость поиска при пропускной способности до 10 Гбит/с (стандарт IEEE 802.3an-2006). Аппаратными средствами осуществляется поиск на основе CAM (content-addressable memory). Основная задача разработчиков в уменьшении количества записей в таблицах маршрутизации, для ускорения операции чтения и выдачи результата.
Что такое TCAM?
CAM — особый тип памяти, позволяющий обеспечить высокую скорость поиска. CAM также называют "ассоциативная память", "ас-
социативное хранилище" и "ассоциативный массив". "Ассоциативный массив" самый популярный термин в среде программистов [1].
В отличие от стандартной компьютерной памяти (ОЗУ или RAM), в которой пользователь указывает адрес памяти, а процессор считывает данные по этому адресу, CAM построен так, что пользователь вводит данные, а CAM ищет их в памяти. Если происходит совпадение с какой-либо строчкой памяти, то CAM выводит данные, соответствующие этой записи. Из-за этого CAM и называют "ассоциативный массив". Чтобы было понятнее, поясним на примере. В таблице маршрутизации записаны 100 маршрутов. В пакете, принятом на входном интерфейсе, считывается адрес назначения. Далее происходит поиск маршрута для этого адреса назначения. После обнаружения данного маршрута считывается адрес следующего узла (next hop), соответствующего этому адресу и в исходном пакете перезаписывается адрес назначения. Адрес следующего хопа и есть ассоциативные данные, соответствующее данному маршруту.
Несмотря на высокую стоимость, CAM быстро завоевали популярность, так как поиск записей осуществляется одноразовым просмотром таблицы маршрутизации. Однако, двоичные CAM могли поддерживать только 128000 записей, поэтому на смену им пришли TCAM. Двоичные CAM вели запись в таблице маршрутизации с помощью 0 и 1. TCAM (Ternary CAM) вводит еще одно дополнительное число X ("don't care" — не важно). X-ом заменяется как один бит, так и большее количество бит, что сильно сокращает размеры таблицы маршрутизации. Например, запись числа 10XX101 может соответствовать числам:
1000101
1001101
1010101
1011101
Соответственно, для четырех адресов, имеющих одинаковый следующий хоп, запись в таблице будет в единственном числе, что сокра-
щает размер таблицы на 75%. CAM применяется как на третьем, так и на втором уровне модели OSI. На третьем уровне CAM используется для просмотра таблиц маршрутизации, таблиц фильтрации пакетов, а на втором для поиска в таблице mac-address. TCAM получили огромное распространение и используются производителями как коммутаторов, так и маршрутизаторов.
Безусловное преимущество использования TCAM перед другими вариантами памяти это то, что поиск записей происходит за одну операцию, причем дополнительные ресурсы процессора не требуются.
Проблемы использования TCAM
TCAM особенно востребованы для сортировки и пересылки пакетов. Но большие массивы TCAM имеет очень большое энергопотребление, а отсутствие масштабируемых схем компоновки ограничивает возможности их применения. На сегодняшний день потребление доходит до 15 Вт на каждый чип. Потребляемая мощность прямо пропорциональна количеству бит в памяти.
Экспоненциально растущее количество записей в таблицах маршрутизации заставляет производителей использовать уже более 10-ти чипов в одном маршрутизаторе. Сортировка и фильтрация пакетов так же требует установки дополнительных чипов. Высокое энергопотребления и, соответственно, увеличенные затраты на охлаждение, заставляет ограничивать количество портов и препятствует повышению пропускной способности.
На текущий момент производители САМ предоставляют механизмы, позволяющие значительно уменьшить размеры чипа. Использование таких технологий позволяет значительно снизить энергопотребление во время поиска в таблице маршрутизации.
Стоимость — вторая большая проблема применения TCAM. Цена на один роутер нередко превышает 2000 долл., что резко ограничивает области их применения и заставляет
пользователей искать другие варианты решения данной проблемы.
Большие проблемы возникают с внедрение IPv6. С одной стороны IPv6 разработан так, чтобы уменьшить количество записей в роутере, а с другой стороны он увеличивает количество бит в 4 раза.
Свойства маски
Рассмотрим различные алгоритмы по сокращению количества записей в таблице маршрутизации. Аналогичные методы применяются и в других поисковых задачах, таких как просмотр ACL (access control list) и QoS (quality-of-service).
Допустим, мы имеем несколько маршрутов с одинаковым следующим шагом. Рассмотрим табл. 1. В ней приведена таблица роутера, состоящая из 21 маршрута.
В двоичном виде данная таблица выглядит следующим образом (табл. 2).
Незначащие биты, то есть элементы подмножества, совпадение которых нам не требуется, переводим в состояние "don't care" (табл. 3).
Проводим агрегирование сетей (табл. 4). То есть, рассматриваем все сети на предмет принадлежности их другим сетям. Данное действие вытекает из определения подмножества чисел. Например, множество сети 88.64.45.0/24 принадлежит 88.64.44.0/22, если любой адрес из сети 88.64.45.0/24 так же принадлежит сети 88.64.44.0/22. В нашем случае получим следующую таблицу, состоящую уже из 13 строк.
Таблица 1 Таблица маршрутизации
Двоичное представление таблицы маршрутизации
Далее рассматриваем варианты по использованию состояния "don't care" в других битах маршрутов (табл. 5). Для этого должны выполняться два условия:
1. Маршруты должны иметь одинаковый следующий шаг.
2. У маршрутов должно быть одинаковое количество значащих бит.
Незначащие биты в
3. Отличие значащих бит возможно только в соответствующих регистрах.
4. В случае отличия более двух бит, они должны быть одного значения.
Цветами выделены маршруты, у которых выполняются все четыре условия, соответственно, там есть возможность ввести бит X.
Итого, мы получаем таблицу, состоящую всего из 11 строк (табл. 6).
Таблица 3
состоянии "don't care"
Агрегирование сетей
Route Next hop
01011000.01000000. 0001010 1 X. xxxxxxxx 91.203.80.8
91.203.80.8
01011000.01000000. 0001011 1 X. xxxxxxxx 91.203.80.8
01011000.01000000. 0010000 | X. xxxxxxxx 91.203.80.8
01011000.01000000. 00100010 | xxxxxxxx 91.203.80.8
01011000.01000000. 001011 1 XX. xxxxxxxx 91.203.80.8
91.203.80.8
91.203.80.8
91.203.80.8
91.203.80.8
01011000.01000000. 001100 1 XX. xxxxxxxx 91.203.80.8
01011000.01000000. 00111111 | xxxxxxxx 91.203.80.8
01011000.01000000. 01000010 1 xxxxxxxx 91.203.80.8
01011000.01000000. 01000101 1 xxxxxxxx 91.203.80.8
01011000.01000000.01000111 | xxxxxxxx 91.203.80.8
01011000.01000000. 010010 1 XX. xxxxxxxx 91.203.80.8
91.203.80.8
91.203.80.8
91.203.80.8
01011000.01000000. 01100101 | xxxxxxxx 91.203.80.8
01011000.01000000. 01110010 1 xxxxxxxx 91.203.80.8
Приведем эту таблицу к более простому виду, то есть удалим пустые строки (табл. 4.1.).
Таблица 4.1
Агрегирование сетей
Таблица 5
Сокращение других значащих бит адреса
Route Next hop
01011000.01000000. 0001010ХХХХХХХХХ 91.203.80.8
01011000.01000000. 0001011XXXXXXXXX 91.203.80.8
01011000.01000000. 0010000XXXXXXXXX 91.203.80.8
01011000.01000000. 00100010XXXXXXXX 91.203.80.8
01011000.01000000. 001011XXXXXXXXXX 91.203.80.8
01011000.01000000. 001100XXXXXXXXXX 91.203.80.8
01011000.01000000. 00111111XXXXXXXX 91.203.80.8
01011000.01000000. 01000010XXXXXXXX 91.203.80.8
01011000.01000000. 01000101XXXXXXXX 91.203.80.8
01011000.01000000. 01000111XXXXXXXX 91.203.80.8
01011000.01000000. 010010XXXXXXXXXX 91.203.80.8
01011000.01000000. 01100101XXXXXXXX 91.203.80.8
01011000.01000000. 01110010XXXXXXXX 91.203.80.8
В реальных условиях сокращение таблицы происходит на 35-45%.
В настоящее время распределение адресного пространства носит случайный характер. Еще до недавнего времени предлагалось стимулировать пользователей использовать адресное пространство более экономично. В качестве стимулов рассматривались варианты платы за каждую строчку в таблице маршрутизации или за количество узлов в сети. Но лучше всего с данной задачей справится протокол IPv6. К сожалению, внедрение IPv6 не может произойти единовременно — это длительный и мучительный процесс одновременного использования IPv4 и IPv6. Поэтому разработчики на данном этапе не оставляют работу по уплотнению таблиц маршрутизации.
Разные архитектуры компоновки TCAM
Недавно, Panigrahy and Sharma [3] представили страничный TCAM, который позволил снизить энергопотребление. Была представлена схема разделения префиксов на восемь групп, где каждая находится на отдельном чипе. Поиск осуществляется только по одному чипу. Такой подход получил название страничный. Тем не менее, преимущество этого метода оказалось незначительным.
В работе H. Liu [4] описываются варианты "выбор бита" и "древовидная запись", которые так же использовали страничный TCAM. Схема "выбор бита" выделяет 16 значимых битов IP адреса, а затем, использую хеш-функцию проводит постраничный поиск в TCAM. Такой подход предполагает, что маска сети должна варьироваться от /16 до /24. Другой диапазон масок требует дополнительной отдельной обработки, что сильно увеличивает энергопотребление.
"Древовидная запись" создает структуру масок в виде дерева, с соответствующими подразделами. Маски индексируются в ОЗУ, по которой впоследствии происходит выбор TCAM. Это приводит к увеличению энергопотребления, а также дополнительно нагружает центральный процессор.
Необходимо отметить, что оба предложенных метода сохраняют полную таблицу маршрутизации, что приводит к увеличению накладных расходов.
В работе Ravikumar V.C. и Rabi N. Mahapatra [1] предложен вариант по объединению способов сжатия таблицы маршрутизации, используя свойства маски сети, и применения части TCAM.
Как мы видим, разработчики не оставляют надежд по оптимизации поисковой системы.
Конечная таблица маршрутизации
Route Next hop
01011000.01000000. 000101ХХХХХХХХХХ 91.203.80.8
01011000.01000000. ооюоооххххххххх 91.203.80.8
01011000.01000000. 00100010XXXXXXXX 91.203.80.8
01011000.01000000. 001011ХХХХХХХХХХ 91.203.80.8
01011000.01000000. 001100ХХХХХХХХХХ 91.203.80.8
01011000.01000000. 00111111ХХХХХХХХ 91.203.80.8
01011000.01000000. 01ХХ0010ХХХХХХХХ 91.203.80.8
01011000.01000000. 01Х00101ХХХХХХХХ 91.203.80.8
01011000.01000000. 01000111ХХХХХХХХ 91.203.80.8
01011000.01000000. 010010ХХХХХХХХХХ 91.203.80.8
Ipv6 на TCAM
Протокол IPv6 идет на смену протоколу IPv4, который исчерпал свое адресное пространство. Адресное пространство IPv4 это 232 и равно 4294967296 адресов, в то время как адресное пространство IPv6 — 2128 и равно примерно 3,4x1038 адресов. Соответственно, на каждого жителя Земли будет приходиться около 290 адресов.
Большое количество адресов позволяет ие-рархично распределять адресное пространство, что приводит к оптимизации таблицы маршрутизации. Адресное пространство IPv6 будет распределяться организацией IANA (Internet Assigned Numbers Authority — комиссия по стандартным числам в Интернет [RFC-1881]). IANA выделяет адресное пространство с маской /23 для:
1. American Registry for Internet Numbers (ARIN) — для Северной Америки;
2. RIPE Network Coordination Centre (RIPE NCC) — для Европы, Ближнего Востока и Центральной Азии;
3. Asia-Pacific Network Information Centre (APNIC) — для Азии и Тихоокеанского региона;
4. Latin American and Caribbean Internet Addresses Registry (LACNIC) — для Латинской Америки и Карибского региона;
5. African Network Information Centre (AfriNIC) — для Африки.
Они в свою очередь выделяют адреса с маской /32 для локальных интернет регистраторов (LIR). и^ами, как правило, являются крупные интернет-провайдеры, а также организации, имеющие обширную сеть IP адресов: телекоммуникационные компании, промышленные предприятия, административные учреждения, академические институты. Те в свою очередь перераспределяют адреса более мелким провайдерам с маской /64.
Агрегирование такого иерархичного распределения уменьшает количество записей в таблицах маршрутизации, но увеличение коли-
чества бит с 32 до 128 существенно увеличивает накладные расходы по производству и внедрению TCAM.
Однако внедрение IPv6 влечет за собой и другие проблемы, о чем будет рассказано далее.
Преимущества Ipv6
Протокол IPv6 разработан таким образом, чтобы свести к минимуму все недостатки протокола IPv4. В протоколе IPv6 реализована мощная криптозащита (шифрования данных) и много других сервисов, такие как QoS (Quality of Service) или DHCP (Dynamic Host Configuration Protocol). QoS в IPv6 реализован на сетевом уровне, что повышает надежность мультимедийных трансляций. Внедрение IPv6 иерархич-но упорядочит структуру Интернета и решит основную сегодняшнюю проблему — нехватки IP адресов.
Кроме явного преимущества в расширении адресного пространства, можно выделить следующие преимущества IPv6 над IPv4:
1. Возможность автоконфигурирования IP-адресов.
2. Упрощение маршрутизации.
3. Облегчение (упрощение) заголовка пакета.
4. Поддержка качества обслуживания (QoS).
5. Наличие возможности криптозащиты дейтограмм на уровне протокола.
6. Повышенная безопасность передачи данных.
Маршрутизаторы, использую протокол IPv6, не фрагментируют пакеты на пути их следования. Первый хост должен изначально определить максимально возможный размер пакета MTU (Maximum Transmission Unit), поддерживаемый на всем пути следования до получателя и при необходимости выполнить фрагментацию заранее. Предполагается, что MTU не может быть меньше 576 байт. В дальнейшем планиру-
ют увеличить это значение до 1500 байт. Отказ от обработки размеров пакетов маршрутизаторами так же значительно увеличит их производительность, хотя и усложнит работу конечных пользователей сети.
Еще одним преимуществом IPv6 создатели называют повышенную сетевую безопасность. Злоумышленникам будет намного сложнее сканировать сети и проводить DDoS атаки.
Проблемы Ipv6
Чтобы понять влияние IPv6 на поисковую систему, удобнее всего наши требования разделить на две группы — это forwarding lookup и policy lookup. Forwarding lookup в пояснениях не нуждается, а в policy lookup входят элементы access control list (ACL) или classification lookups, quality-of-service (QoS), class-of-service (CoS) и access control rules. Так как forwarding lookup требует меньше ресурсов чем policy lookup, то производители стараются снижать стоимость за счет разделения аппаратных средств и разносить их по разным чипам.
Для обработки данных в policy lookup количество исследуемых бит увеличивается намного больше, чем в 4 раза. Необходимо сравнивать IP source, IP destination, номера портов уровня 4 модели OSI и тип протокола. К тому же результаты поиска по нескольким записям могут привести к рекурсивному изменению последующей обработки и пересылки пакетов, что приводит к значительному увеличению времени задержки.
Одним из вариантов решения данной проблемы предлагается проведение параллельного поиска по таблице маршрутизации, таблице ACL, таблице QoS и т.п. Но если рассматриваемый пакет маршрутизатор отбросит, то остальные чипы проделают пустую работу, выделяя энергию и требуя затраты на охлаждение.
Некоторыми исследователями предлагалась архитектура по разбиению адресного пространства по модели 16-8-8 для IPv4 и 16-16-...-16 для IPv6. На следующий уровень поиск переходил только в случае совпадения или удовлетворительного результата на предыдущем уровне.
Тем не менее, переход на IPv6 оказывает большее влияние и на forwarding lookup. Основные проблемы — это, безусловно, большее энергопотребление, усложнение архитектуры и необходимое повышение надежности [10].
Заключение
Переход на IPv6 неизбежен. Процесс этот происходит медленно, потому что не вся инфраструктура готова к единовременному переходу. Многие программные продукты не под-
держивают реализацию 1Ру6, что на время может привести к остановке выполнения ряда задач. Так же пользователи продолжают работать на аппаратных средствах прошлого века, которые не поддерживают протокол 1РУ6. Внедрение начинается в первую очередь в тех странах, где недостаток адресов ощущается наиболее остро.
Как мы рассмотрели выше, переход с 1Ру4 на 1Ру6 будет происходить постепенно, следовательно, необходимо продолжать работы по исследованию свойств маски сети, разрабатывать новые методы хеширования, снижать энергопотребление чипов, разрабатывать новые возможные архитектуры компоновки.
^UTapaTypa
1. Ravikumar VC. u Rabi N. 'TCAM architecture lor p lookup using prefix properties", Published by the IEEE Computer Society, april-march 2004.
2. V Srinivasan and G. Varghese, "Fast Address Lookups Using Controlled Prefix Expansion," ACM Trans. Computer Systems, vol. 17, no. 1, Oct. 1999, pp. 1-40.
3. R. Panigrahy and S. Sharma, "Reducing TCAM Power Consumption and Increasing Throughput," Proc. 10th Symp. High-Performance Interconnects (HOTI 02), IEEE CS Press, 2002, p. 107-112.
4. H. Liu, "Routing Table Compaction in Ternary CAM," IEEE Micro, Jan.-Feb. 2002, vol. 22, no. 1, pp. 58-64.
5. D. Shah and P Gupta, "Fast Updating Algorithms lor TCAMs," IEEE Micro, vol. 21, no. 1, Jan.-Feb. 2001, pp. 36-47.
6. Yi-Ting Fang, Tzung-Chian Huang, Pi-Chung Wang 'Ternary CAM Compaction For IP Address Lookup", Department of Computer Science, National Chung Hsing University, Taichung, Taiwan, 2008.
7. Greg Ferro 'TCAM — A Deeper Look and the mpact of IPv6", 26/01/2011, http://etherealmind.com/ tcam-detail-review.
8. "Content-addressable memory", wikipedia, http://en.wikipedia.org/wiki/Content-addressable_ memory#Temary_CAMs 25/05/2012.
9. Karl Etzel "Answering IPv6 Lookup Challenges", 10/04/2012, http://eetimes.com/design/program-mable-logic/4009328/Answering-IPv6-Lookup-Challenges-Part-1.
10. Интернет-протокол версии 6 (IPv6), http://www.ing-ipv6.ru/23/03/2012.
TCAM from Ipv4 to Ipv6
Baghinyan A.S., baginyan@tmpk.net Dolbilov A.G., Joint Institute for Nuclear Research, Dubna, Russia, dolbilov@jinr.ru
Abstract
This review paper is devoted to the problems of modern routing of the Internet. The problems of sampling route networks , the use of security policies and service quality of the transmitted information . A separate section is devoted to examples of using properties of the network mask to reduce the size of routing tables. The paper considers various options for linking the memory address , the comparison between the routing protocol Ipv4 and Ipv6, as well as the consideration of options for software and hardware routing . In conclusion, given the benefits and problems of implementation of the protocol IPv6. In modern routers biggest problem is the possibility of a quick search (lookup) on the routing table. The number of entries in the routing table grows exponentially . At the moment, the Internet routing table has more than 340,000 entries. You can search both software and hardware. The literature on this subject are described and offers a variety of algorithms for optimization software solutions. However, the software methods require large resources of memory and do not allow search at high speeds. With the adoption of the standard IEEE Std 802.3ba-2010, you must provide satisfactory speed of search with the capacity of 40-100 Gb/s, while software techniques can provide satisfactory speed of search with the capacity of up to 10 Gbit/s (standard IEEE 802.3an-2006). Hardware is searched on the basis of CAM (content-addressable memory). The main task of the developers to reduce the number of entries in the routing tables, to speed read operations and the issuance of the result. CAM — a special type of memory that allows you to provide high-speed search. CAM also referred to as "associative memory", "associative storage" and "associative array". "Associative array" is the most popular term among programmers. Unlike standard computer memory (RAM or RAM), in which the user specifies the memory address and the processor reads the data at this address , CAM is designed such that the user enters data, and search them in the CAM memory. If there is a match with any stitch memory, the CAM outputs the data corresponding to this record. Because of this CAM is called "associative array". To make it clearer , let us explain with an example. The routing table recorded 100 routes. In a packet received at the input interface read destination address . Next, the route search is for this destination. Following the discovery of the route is read address of the next node (next hop), corresponding to the address in the source address of the packet is overwritten destination. Address of the next hop is the associative data corresponding to a given route .
Keywords: TCAM, Ipv4, Ipv6, mask, CAM, lookup, the router.
References
1. Ravikumar V.C., Rabi N. 'TCAM architecture for ip lookup using prefix properties", Published by the IEEE Computer Society, april-march 2004
2. V. Srinivasan and G. Varghese, "Fast Address Lookups Using Controlled Prefix Expansion," ACM Trans. Computer Systems, vol. 17, no. 1, Oct. 1999, pp. 1-40.
3. R. Panigrahy and S. Sharma, "Reducing TCAM Power Consumption and Increasing Throughput," Proc. 10th Symp. High-Performance Interconnects (HOTI 02), IEEE CS Press, 2002, p. 107-112.
4. H. Liu, "Routing Table Compaction in Ternary CAM," IEEE Micro, Jan.-Feb. 2002, vol. 22, no. 1, pp. 58-64.
5. D. Shah and P. Gupta, "Fast Updating Algorithms for TCAMs," IEEE Micro, vol. 21, no. 1, Jan.-Feb. 2001, pp. 36-47.
6. Yi-Ting Fang, Tzung-Chian Huang, Pi-Chung Wang 'Ternary CAM Compaction For IP Address Lookup", Department of Computer Science, National Chung Hsing University, Taichung, Taiwan, 2008
7. Greg Ferro 'TCAM — A Deeper Look and the Impact of IPv6", 26/01/2011, http://etherealmind.com/ tcam-detail-review.
8. "Content-addressable memory", wikipedia, http://en.wikipedia.org/wiki/Content-addressable_ memory#Ternary_CAMs 25/05/2012.
9. Karl Etzel "Answering IPv6 Lookup Challenges", 10/04/2012, http://eetimes.com/design/programmable-logic/4009328/Answering-IPv6-Lookup-Challenges-Part-1.
10. Online version 6 prokotol (IPv6), http://www.ing-ipv6.ru/23/03/2012.