Данная страница находится в разработке. Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.
Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.
Cisco Express Forwarding (CEF) — технология высокоскоростной маршрутизации/коммутации пакетов, использующаяся в маршрутизаторах и коммутаторах третьего уровня фирмы Cisco Systems, и позволяющая добиться более быстрой и эффективной обработки транзитного трафика.
Функционал, который поддерживает CEF:
CEF не работает в следующих случаях:
Включен ACL Logging (в конце ACL добавлено слово log, например deny ip any any log)
Пакеты предназначены для самого маршрутизатора/коммутатора.
Нет L2 Adjacency.
Содержание
[править] FIB
Forwarding Information Base (FIB) или CEF Table — таблица для быстрой пересылки пакетов. Строится на основе Routing Table и Adjacency Table. Adjacency Table в свою очередь строится на основе ARP Table. Различают 2 вида CEF — Software CEF (можно увидеть на ISR G1/G2 и 7200) и Hardware CEF (можно увидеть на 6500/7600, Nexus 7000 и ASR9000). Hardware CEF — это когда построенная FIB хранится в быстрой памяти TCAM (Ternary Content Addressable Memory). Итого FIB — это таблица, содержащая маршрут, исходящий интерфейс и L2 destination.
Вывод и параметры команд, которые относятся к CEF, могут отличаться в зависимости от версии IOS и модели оборудования.
Но, как правило, команды просмотра начинаются на show cef, show ip cef, show adjacency
[править] Adjacency Table
Строка CA0111480008CA00114800080800 читается следующим образом:
CA0011480008 — это source мак-адрес интерфейса, через который будет отправляться пакет на 100.0.0.2:
CA0111480008 — это destenation мак-адрес ca01.1148.0008:
0800 — это EtherType (в данному случае у нас это IPv4 0x0800).
[править] CEF epoch
В FIB и adjacency table есть понятие версии, которая называется epoch. Диапазон значений epoch от 0 до 255.
Значение epoch увеличивается, при инициации перестроения таблицы. Это можно сделать вручную, очистив информацию CEF.
На практике epoch используется, например, при переключении между supervisor engine в технологии NSF:
Во время переключения, в таблицах CEF увеличивается значение epoch.
После того как протоколы маршрутизации обновили информацию в RIB, соответственно обновляются и записи в таблицах CEF. Обновленным записям назначается новое значение epoch.
После завершения обновления, все записи в FIB и adjacency table, у которых значение epoch меньше текущего, удаляются.
[править] Просмотр значения epoch для FIB
Например, текущее значение epoch равно 0:
При корректной работе, значение epoch для всех префиксов должно быть равным этому глобальному значению. Отображение значения epoch для конкретного префикса на примере маршрута по умолчанию:
Когда в FIB добавляется новая запись, то значение epoch для нее устанавливается равным текущему глобальному значению. То есть, значение epoch не увеличивается, когда добавляется какой-то префикс в FIB:
[править] Обновление значения epoch для FIB
С помощью команды clear cef table ipv4 можно вручную обновить FIB и, соответственно, изменится значение epoch(в некоторых IOS также может быть команда clear ip cef epoch full):
[править] Просмотр значения epoch для adjacency table
Суммарная информация об adjacency table отображает и значение epoch:
В текущей таблице adjacency есть 4 записи со значением epoch 3, которое соответствует глобальной версии таблицы. И одна запись со значением 2.
Также в суммарной информации видно, что одна запись в состоянии incomplete: 1 incomplete adjacency. Посмотрим более подробную информацию о записях в таблице adjacency:
В более подробном выводе можно увидеть значение epoch для каждой записи в adjacency table. А также теперь мы видим у какой записи значение epoch 2:
Эта запись находится в состоянии incomplete, так как не известно какой MAC-адрес соответствует next-hop 10.0.12.10.
[править] Обновление значения epoch для adjacency table
На коммутаторе (hardware Layer 3-switching adjacency node):
Источник
Авария: отказал CEF на Cisco 6500 в черновиках Из песочницы
Разберём на будущее случай с аварией, когда отказал CEF на Cisco 6500
Пришла sms, что такой-то маршрутизатор (Cisco 6500) UP. Поясню, что система мониторинга просто пингует маршрутизатор и сообщает, если изменилось его состояние: DOWN/UP. Это очень опасная sms, т.к. каждый такой маршрутизатор — как микрорайон или его половина (дело происходит в сети интернет-провайдера). И даже то, что по sms маршрутизатор UP — не нормально.
Первая часть
Заходим мы с напарником на маршрутизатор — вроде доступен. Смотрим по логам: OSPF, LDP-соседство не рвал, это уже хорошо. Предполагаем, что RP=Route Processor ушёл в 100% — так и есть. show processes cpu sorted показывает, что-то вроде 95%/85% — т.к. цифры совпадают, то RP загружен не процессами, а прерываниями — т.е. много трафика обрабатывается CPU.
Делаем debug netdr — там очень много пакетов, помеченных VLAN 1044. Причём это multicast-пакеты, как те, которые идут в Global к маршрутизатору, так и те, которые в VRF идут от него к клиентам.
В логах мы видим кучу ошибок: Traceback, бла-бла-бла, ошибка памяти и т.п. Сразу некогда было подробно нагуглить, что это за ошибки.
VLAN 1044 на коммутаторе не ищется, только show vlan id 1044 internal usage показывает, что он выдан в интерфейс Po1, а вообще-то Po1 это L3-интерфейс! Почему так оказалось с VLAN 1044 я не знаю, разбираться не стали.
В общем, мы подумали, что проблема связана с передачей multicast. Стали пробовать гасить интерфейс Po1, через который заходит телевидение — но весь трафик пошёл через другой интерфейс, загрузка RP осталась 100%.
Про клиентские сервисы я решил, что точно страдает телевидение. При этом с самого маршрутизатора клиенты в VRF для «юриков» и в VRF для «физиков» пинговались — и я решил, что трафик интернета не страдает. При этом я видел сильную просадку трафика по графикам, но не до нуля. Вероятно, надо было тщательней выяснить момент про клиентские сервисы — пропинговать клиентов из мира, прикинуть, сколько трафика ушло, и сколько из него было телевидения.
Тут наша фантазия иссякла, уже 1 час прошёл, а мы аварию не устранили — эскалировали в отдел развития сети и уведомили начальника. Завели заявку самого высокого приоритета, описали симптомы, свои действия. Я написал в техподдержку, чтобы они учитывали эту аварию при звонках клиентов и сообщали голосом, если будут массовые жалобы клиентов, включенных с этого маршрутизатора.
На этом первая часть заканчивается.
Вторая часть
Итак, мы сдали проблему в отдел развития сети. Но мы оба с напарником не выключились из работы по заявке.
Всё осложнялось тем, что вечер, 21:00-22:00, ЧНН. Пришлось отвлекаться на балансировку нагрузки во внешних каналах и заведение заявок по упавшим/поднявшимся коммутаторам, неработающим телеканалам и пр. Балансировку я сделал за 5 минут по опыту, и повезло, что крупных аварий не было, а мелкие я обработал или оставил на потом.
Напарник делал диагностику командами show на Cisco 6500, а я гуглил ошибки из сообщений в логах. Добавлю, что с самого начала аварии Cisco 6500 тупила в консоли и иногда разрывала соединение. Тут пришёл сигнал из техподдержки, что они не могут зайти на коммутаторы, которые включены от этого маршрутизатора, и что клиенты массово жалуются на торможение сайтов и пингуются с огромными потерями — тут стало понятно, что страдают все сервисы.
Я уже подумал по опыту, что отдел развития сети будет дебажить, а потом всё равно всё закончится перезагрузкой.:) Так что позвонил начальнику монтажников, чтобы он брал консоль с GSM-модемом и ехал на узел связи. Там он должен подключить консоль к Cisco 6500, мы через GSM зайдём на эту консоль и после этого перезагрузим Cisco 6500. Это нужно на тот случай, если после перезагрузки коммутатор не взлетит, и придётся его оживлять. У начальника монтажников бойцов было мало, некоторым из них предстояли ночные работы, так что он поехал сам.
Ещё я всю информацию своевременно отражал в заявке, не ждал, что отпишусь после устранения аварии. И это правильно — все должны видеть, на какой стадии находится устранение аварии сейчас.
В общем, я нагуглил на cisco.com по сообщению об ошибке какой-то баг Cisco 7600, где сообщалось, что это «глюк», в результате которого коммутатор перестаёт добавлять в CEF новые маршруты. «Глюк» может возникнуть на ровном месте, т.е. не обязательно вызван какими-то обстоятельствами. Помочь должна перезагрузка маршрутизатора (ха-ха!). Версия IOS у нас была не в точности та же, что в описании бага, но по цифрам такая же, только буквами отличалась.
Вот то сообщение в логах: %MLSCEF-SP-2-FREEZE: hardware switching disabled on card http://www.cisco.com/en/US/docs/ios/12_2sr/release/notes/122SRcavs5.html говорит, что это баг CSCsg40573.
И я заметил по графикам, что просело до нуля количество пакетов, обрабатываемых PFC. Я из этого сделал вывод, что страдают все сервисы. Я был взволнован крупной аварией и не очень хорошо владел темой, поэтому я не подумал спокойно: «А что же обрабатывает PFC?» — А PFC как раз продвигает пакеты CEF’ом. На том маршрутизаторе нет DFC, поэтому всю коммутацию делает PFC. Ещё меня смутило, что в в выводе команды show ip cef — маршруты были. Мой напарник по результатам своей диагностики пришёл к выводу, что проблема с CEF.
В это время мне позвонил начальник и сказал, что они с отделом развития сети пришли к выводу, что CEF просто не коммутирует пакеты, и надо перезагружать маршрутизатор.
Они увидели это по команде #show mls cef hardware
CEF TCAM v2: (FROZEN) Size: 262144 entries 65536 rows/device, 4 device(s) 32 entries/mask-block 8192 total blocks (32b wide) 1212416 s/w table memory Options: sanity check: off sanity interval: 301 seconds consistency check: off consistency interval: 31 seconds redistribution: off redistribution interval: 120 seconds redistribution threshold: 10 compression: off compression interval: 31 seconds tcam/ssram shadowing: on Operation Statistics: Entries inserted: 0000000026486227 Entries deleted: 0000000026473952 Entries compressed: 0000000002044646 Blocks inserted: 0000000000476132 Blocks deleted: 0000000000475614 Blocks compressed: 0000000000311462 Blocks shuffled: 0000000000007388 Blocks deleted for exception: 0000000000000000 Direct h/w modifications(TCAM): 0000000000000000 Direct h/w modifications(SSRAM):0000000000000000
Надо обратить внимание на статус CEF — FROZEN и на то, что присутствует Fatal Error.
Мы не стали ждать приезда начальника монтажников, хотя он уже был на подходе, сохранили конфиг, перезагрузили маршрутизатор. Через 10 минут он загрузился и дальше работал нормально. Мы проверили, что все сервисы клиентов восстановились.
Прошло уже 2-3 дня, а в логах нет сообщений об ошибках. Т.е. это был разовый программный сбой.
Источник
Что такое CEF (закрытый фонд) простыми словами?
Несмотря на то, что они торгуются на фондовых биржах более века, фонды закрытого типа (CEF) недостаточно изучены. Распространенное заблуждение состоит в том, что CEF – это тип традиционного паевого инвестиционного фонда или биржевого фонда (ETF).
Закрытый фонд – это не традиционный паевой инвестиционный фонд, закрытый для новых инвесторов.
На самом фундаментальном уровне CEF – это инвестиционная структура, организованная в соответствии с положениями Закона об инвестиционных компаниях 1940 года. CEF – это тип инвестиционной компании, акции которой торгуются на открытом рынке, как и акции или ETF.
Закрытые фонды – это тип инвестиционной компании, акции которой торгуются на открытом рынке, как акции или ETF.
Капитал не поступает в фонды и не выходит из него, когда акционеры покупают или продают акции.
Как и акции, акции торгуются на открытом рынке.
Цена акций CEF почти всегда отличается от стоимости чистых активов (СЧА).
Благодаря стабильной базе активов CEF может инвестировать в неликвидные ценные бумаги и выпускать долговые или привилегированные акции.
Почему их называют фондами закрытого типа?
Как и традиционный паевой инвестиционный фонд, CEF инвестирует в портфель ценных бумаг и обычно управляется компанией по управлению инвестициями. Но в отличие от паевых инвестиционных фондов, CEF закрыты в том смысле, что капитал не поступает в них регулярно, когда инвесторы покупают акции, и не утекает, когда инвесторы продают акции. После первичного публичного предложения (IPO) акции не торгуются напрямую, как в случае с открытыми паевыми фондами.
Вместо этого акции, как правило, торгуются на бирже, и другие участники рынка выступают в качестве соответствующих покупателей или продавцов. Сам фонд не выпускает и не выкупает акции ежедневно. Как и акции, CEF проводят первичное публичное размещение акций при запуске.
На капитал, привлеченный вовремя IPO, управляющие портфелем покупают ценные бумаги, соответствующие инвестиционной стратегии фонда.
После IPO осталось всего 5 способов увеличить капитал в портфеле.
Сделать правильный инвестиционный выбор, который повысит стоимость чистых активов.
Выпуск долговых обязательств, тем самым привлекая заемные средства фонда.
Выпуск привилегированных акций с привлечением средств фонда.
Проведение вторичного размещения акций (публичная продажа новых акций).
Проведение предложения прав (предоставление существующим акционерам права вкладывать больше капитала в фонд пропорционально их существующей собственности).
Точно так же есть только 5 способов утечки капитала из CEF.
Выплаты акционерам.
Неудачные инвестиционные решения.
Тендерное предложение на обратный выкуп акций, которое является методом контроля скидок.
Ликвидация фонда.
Таким образом, поскольку капитал не поступает свободно в и из CEF, они называются «закрытыми» фондами.
Закрытая структура CEF имеет и другие последствия.
В отличие от открытых ETF, управляющий закрытым фондом не сталкивается с риском реинвестирования из-за ежедневного выпуска акций.
Управляющий закрытым фондом не должен держать излишки денежных средств для погашения.
Поскольку нет необходимости быстро собирать денежные средства для неожиданного погашения, капитал считается более стабильным, чем в открытых фондах. Это стабильная капитальная база.
Относительно стабильная капитальная база, в свою очередь, порождает еще два атрибута:
Во-первых, это делает CEF хорошей структурой для инвестирования в неликвидные ценные бумаги, такие как акции развивающихся рынков, муниципальные облигации и т. д.
Более высокий риск, связанный с инвестированием в неликвидные ценные бумаги, может привести к более высокой прибыли для акционеров.
Во-вторых, регулирующие органы разрешают фондам выпускать долговые обязательства и привилегированные акции со строгими ограничениями на леверидж (заемные средства). Фонд может выпускать долговые обязательства в размере до 50% от чистых активов. Другой способ взглянуть на это: на каждый доллар долга у фонда должно иметь 3 доллара активов (включая активы из долга). Это обычно называется пределом кредитного плеча 33%.
Фонд может выпускать привилегированные акции на сумму до 100% чистых активов. Другой способ взглянуть на это состоит в том, что на каждый доллар выпущенных привилегированных акций у фонда должно быть 2 доллара активов (включая активы от привилегированных акций). Это обычно называется лимитом кредитного плеча 50%.