ТЕХНОЛОГИЯ ОЧИСТКИ И ПОВТОРНОГО ИЗУЧЕНИЯ АДРЕСОВ MAC В СЕТЯХ ПЕРЕДАЧИ ДАННЫХ
TECHNOLOGY FOR CLEARING AND RESTUDYING MAC ADDRESSES IN DATA NETWORKS

Область техники, к которой относится изобретение
Настоящее изобретение относится к технологии повторного изучения адресов MAC в современных сетях передачи данных, более конкретно к рационализированной технологии очистки MAC.
Уровень техники
Повторное изучение адресов MAC (адреса управления доступом к среде передачи данных) является известной процедурой в современных сетях передачи данных и обычно происходит, когда по какой-либо причине изменяется топология сети. Например, изменился путь к некоторому устройству, имеющему адрес 1 MAC, но этот адрес 1 MAC еще не был повторно изучен со ссылкой на упомянутый новый путь (так называемое событие «перемещения MAC»). Для повторного изучения адреса 1 MAC в связи с новым путем/новым портом коммутатора ранее изученная информация (о связи адреса 1 MAC с предыдущим конкретным портом) должна быть удалена, другими словами "очищена" из конкретного предыдущего порта. Пусть этап вызова удаления будет обозначен как этап а). Решение об очистке MAC обычно принимает центральное процессорное устройство (CPU) коммутатора либо как результат обнаружения изменения в состоянии подключения логического интерфейса (отказ от подключенной цепи АС, туннеля, псевдопровода PW и т.д.), или как результат запроса/сообщения от пользователя (система управления элементами EMS, общий линейный интерфейс CLI, система управления сетью NMS) или другими элементами цепи (TCN, CCN), например сообщение отзыва MAC и т.д.
Затем наступает этап b) лавинная передача пакетов, адресованных в адрес 1 MAC, представляющий интерес, через все соответствующие интерфейсы (логические/физические) устройства коммутатора, и затем этап с) - после приема пакета из источника, имеющего адрес 1 MAC, регистрируют этот адрес 1 MAC в связи с этим портом коммутатора, через который пакет поступил в коммутатор.
Существует две распространенные в настоящее время практики для выполнения лавинной передачи:
1. Коммутатор может сканировать свою внутреннюю базу данных перенаправления FDB и удалять все очищенные MAC из FDB один за другим. В системах с большим количеством изученных MAC (100k+) это может занимать существенное время, отрицательно влияя, таким образом, на обслуживание и коммутатор.
2. В качестве альтернативы, коммутатор может входить в режим "очистки/лавинной передачи" для услуги, в котором этапы (а) и (b) комбинируют вместе. Во время режима очистки/лавинной передачи соответствующие MAC будут удалены из FDB (либо из-за устаревания или специальными операциями SW/HW/FW). Затем коммутатор может войти в комбинированное состояние "лавинной передачи/изучения" (этапы (b) и (с) = изучение). Такой подход может быть более эффективным, чем подход 1, однако, он все еще имеет недостатки. Например, во время "очистки/лавинной передачи" коммутатор выполняет лавинную передачу во все MAC, даже если эти MAC поступили из нового виртуального интерфейса, то есть "пытается обеспечить повторное изучение". Это приведет к избыточной лавинной передаче, что, в свою очередь, удлиняет процесс и может повлиять на возможность передачи при оказании услуги.
В современной практике этап (с) реального повторного изучения откладывается до конца лавинной передачи. Во всех известных в настоящее время технологиях предполагается, что этапы лавинной передачи и повторного изучения (b и c) не могут быть эффективно выполнены одновременно. Точнее, если один или более адресов MAC были повторно изучены во время операции лавинной передачи, становится невозможным выполнить правильное перенаправление этих адресов MAC до конца операции лавинной передачи.
Кроме того, следует отметить, что в реальных сетях не только адрес 1 MAC, но и много других адресов MAC могут быть связаны с конкретным портом, который в данный момент времени подвергают очистке. В случае, когда адрес 1 MAC "перемещается" на другой порт, другим адресам MAC может потребоваться оставаться зарегистрированными в обсуждаемом порте; однако, поскольку обычно всю информацию из порта очищают, когда очищают один адрес, эти "другие" адреса MAC будут удалены. Кроме того, как адрес 1 MAC, так и эти другие адреса MAC должны ожидать до окончания процесса очистки, включая лавинную передачу, и только затем они могут быть изучены и зарегистрированы снова.
Такая "полная очистка" обычно происходит, когда CPU коммутатора получает полную базу данных перенаправления (FDB) из NPU (модуль обработки сети, обычно микросхема, связанная с CPU) для каждого запроса очистки. Изучение/повторное изучение будет временно не доступным во время очистки. Как было указано, в качестве альтернативы CPU может точно удалять несколько соответствующих адресов MAC из FDB. В любом случае, эти операции являются медленными (от 10s до 100s секунд), десинхронизируют FDB и влияют на другие передачи данных CPU-NPU (например, сообщения IGMP и ОАМ).
В ряде документов предшествующего уровня техники пытались решить задачи операции очистки MAC, например:
В US 6330229 B описано управление, связанное с перенаправлением баз данных (FDB) в случае отказа соединения по мостам в соответствии с протоколом дерева охвата, ограничения при распространении уведомлений об изменениях топологии только в те части сети, на которые влияет неработоспособность соединения. Данная технология также инициирует частичную очистку, в отличие от полной очистки FDB, для повторного изучения наборов адресов, связанных с портами, на которые повлияли изменения топологии.
В CN 101572668 A описана технология для быстрого удаления адресов MAC из интерфейса, в котором производится очистка. Способ содержит этапы, на которых сохраняют все адреса MAC, соответствующие интерфейсам и изученные интерфейсами, для которых требуется быстрое удаление, выполняют поиск всех адресов MAC в таблице MAC с адресами MAC, которые должны быть удалены, и быстро удаляют адреса MAC с помощью микрокода сетевого процессора. Такое решение сокращает время удаления адресов MAC и время переключения для защиты цепи.
В US 2010027543 A описаны очистка/повторная маршрутизация MAC уровня два и предложено решение для направления пакетов на основе проверки их адреса назначения, идентификатора адреса и идентификатора события. Данное решение автоматически идентифицирует События топологии изменения и выполняет лавинную передачу пакетов в результате.
Однако, ни в US 2010027543, ни в других упомянутых выше документах не предусмотрен механизм оптимизированной, мгновенной очистки и/или повторного изучения адресов MAC.
Раскрытие изобретения
Цель изобретения - ускорить, сделать мгновенным процесс очистки в устройстве коммутации пакетов (сетевой коммутатор) для начала нормального перенаправления пакетов устройством.
Эта цель может быть достигнута путем модификации процесса очистки, который происходит в определенном порте сетевого коммутатора (логический интерфейс VPN), а именно путем обеспечения мгновенности процесса повторного изучения адресов MAC в сетях передачи данных.
Известно, что процесс очистки всегда содержит операцию удаления старых MAC, лавинную передачу в порт (логический/виртуальный интерфейс) и операцию повторного изучения адресов MAC в порте для дальнейшего перенаправления пакетов через порт в изучаемые адреса MAC.
Как описано выше, обычная операция очистки фактически означает а) удаляют предыдущую информацию о конкретном адресе 1 MAC в этом порте, b) выполняют лавинную передачу пакетов, адресованных в адрес 1 MAC, представляющий интерес, через все интерфейсы (логические/физические), относящиеся к конкретной услуге или VPN в коммутаторе; с) повторно выполняют изучение, то есть после приема первого пакета из источника, имеющего адрес 1 MAC, регистрируют этот адрес 1 MAC в связи с этим портом коммутатора, через который пакет поступил в коммутатор.
Фактически, для обеспечения мгновенного (немедленного) повторного изучения адресов MAC способ содержит этапы, на которых начинают нормальное перенаправление пакетов по адресам MAC, повторно изученным во время операции лавинной передачи, немедленно после повторного изучения упомянуты адресов. Технология, предложенная авторами изобретения, позволяет выполнять нормальное перенаправление во время процесса "очистки/лавинной передачи", а также в нормальной (без очистки)ситуации.
Следует учитывать, что в настоящее время, когда порт/логический или виртуальный интерфейс устройства коммутатора/VPN очищают (что включает в себя удаление ранее изученных адресов, лавинную передачу в порт и последующее повторное изучение адресов), «линия ввода данных» порта, которая существует в базе данных перенаправления (FDB) коммутатора, указывает состояние очистки интерфейса порта/виртуального интерфейса. Такое указание в настоящее время препятствует выполнению эффективного перенаправления (вследствие такого повторного изучения) любых адресов в этот порт во время процесса лавинной передачи.
Учитывая описанное выше, предложен способ выполнения процесса очистки в порте (виртуальном интерфейсе), причем процесс очистки содержит операцию лавинной передачи и операцию повторного изучения адресов MAC, способ характеризуется тем, что выполняют упомянутые две операции независимо, а именно путем начала операции повторного изучения адресов MAC, а также операции перенаправления пакетов в повторно изученный адрес перед завершением операции лавинной передачи.
Более конкретно, для немедленного начала перенаправления пакетов в адреса MAC, повторно изученные во время операции лавинной передачи, способ содержит этапы, на которых выполняют операцию лавинной передачи и операцию повторного изучения независимо (по отдельности, раздельно) друг от друга таким образом, что не допускают лавинную передачу пакетов в повторно изученные адреса MAC во время продолжения операции лавинной передачи.
Это может быть обеспечено путем выполнения упомянутой операции лавинной передачи и упомянутой операции повторного изучения соответственно со ссылкой на два искусственно обеспеченные (в соответствии с назначением) разные экземпляры/копии одного и того же конкретного порта/интерфейса; когда выполняют очистку порта, предложенные два различных экземпляра позволяют выполнить операции лавинной передачи и повторного изучения независимо друг от друга.
Упомянутый порт (также называемый интерфейсом IF или интерфейсом виртуального коммутатора VSI) может быть, например, физическим портом или логическим портом. Под логическим портом/интерфейсом должны пониматься, но не ограничиваясь этим: порты, схемы подключения, псевдопровода и т.д.
Более конкретно, для выполнения процесса очистки в порте/интерфейсе сетевого коммутатора, который содержит множество портов/интерфейсов, считается, что каждый порт имеет два экземпляра (один называется первым, или основным экземпляром, а другой называется вторым, или воображаемым, фиктивным экземпляром). Во время состояния очистки порта только один из упомянутых двух экземпляров имеет состояние очистки и используется для операции лавинной передачи, в то время как другой экземпляр свободен от состояния очистки и используется для операции повторного изучения и перенаправления.
Фактически, упомянутый эффект достигается потому, что операцию повторного изучения и перенаправления выполняют так, как если бы они выполнялись в отношении совершенного другого порта, который имеет свой уникальный номер.
Физически адреса MAC могут быть изучены в каждом одном из этих экземпляров, но в соответствии с правилами, описанными далее.
Способ содержит этапы, на которых
- присваивают два уникальных индекса (например, числа) каждому порту из упомянутого множества, один индекс для каждого экземпляра порта;
- присваивают два альтернативных состояния/статуса двум соответствующим экземплярам; каждый экземпляр порта имеет состояние, либо "Очистка", или "Отсутствие очистки" (или "Перенаправление");
- когда новый адрес MAC должен быть изучен в порте, всегда изучение выполняют в состоянии "Перенаправление" (отсутствие "очистки") экземпляра порта;
- в случае, когда процесс очистки требуется для конкретного порта, выполняют взаимный обмен состояниями "Очистка/перенаправление" между двумя экземплярами порта (в первый раз это может быть выполнено без обмена);
- выполняют операцию лавинной передачи для всех адресов MAC, изученных на экземпляре, которые находятся в данный момент в состоянии "Очистка";
- удаляют адреса, ранее изученные (на любом из экземпляров) упомянутого конкретного порта из-за устаревания (как обычно выполняют это в коммутаторах);
- начинают операцию повторного изучения адресов до прекращения операции лавинной передачи и выполняют ее следующим образом:
если пакет, имеющий адрес источника, неизвестный порту, в который поступает пакет (или поступает неизвестный адрес в новый порт, отличный от упомянутого конкретного порта, которому он был ранее присвоен), выполняют изучение упомянутого адреса на том экземпляре этого нового порта, который не находится в состоянии "Очистка":
если пакет, имеющий известный адрес (для FDB), поступает в тот же упомянутый конкретный порт, где он был зарегистрирован ранее, выполняют повторное изучение (повторную регистрацию) его адреса в том экземпляре конкретного порта, который не находится в состоянии "Очистка" (в нашем примере, в состоянии "Перенаправление");
тем самым отделяют упомянутую операцию лавинной передачи от упомянутой операции повторного изучения, ускоряя, таким образом, операцию повторного изучения и весь процесс очистки в упомянутом конкретном порте, и
- начинают операцию перенаправления пакетов перед окончанием операции лавинной передачи, используя экземпляр порта, имеющий состояние "Перенаправление".
Фактически, в описанном процессе лавинной передачи происходит следующее: лавинная передача продолжается для всех соответствующих (то есть соответствующих для услуги предоставления трафика или VPN, представляющего интерес) MAC, которые еще не были повторно изучены. Все соответствующие MAC, которые уже были приняты во время "лавинной передачи", будут повторно изучены и лавинная передачи в них не будет больше осуществляться.
Следует отметить, что упомянутые два индекса экземпляров порта любого порта являются уникальными (то есть отличаются друг от друга и от индексов любого другого порта в коммутаторе; оба из упомянутых индексов связаны друг с другом и, как предполагается, используются, например, в CPU или EMS, для обслуживания одного и того же упомянутого конкретного порта. Эти два индекса могут быть реализованы как две связанных записи в базе данных, например, в базе данных перенаправления (FDB) коммутатора, причем одна из записей считается основной, или обычной записью, а другая - как дополнительная, или фиктивная запись.
Для отражения двух альтернативных экземпляров порта одну запись FDB порта всегда рассматривают, как выполняющую "Перенаправление", и другую, как выполняющую "Очистку" (например, с помощью CPU). Если состояние порта изменяется (либо порт переходит в состояние очистки, либо обратно), эти два экземпляра взаимно изменяют свое состояние (например, по команде из CPU). Для выполнения переключения экземпляров система может содержать CPU и соответствующий NPU, FPGA или любой другой выделенный модуль переключения для изменения состояния записей.
Предложенное разделение и ускорение операции изучения/повторного изучения позволяет устранить проблемы, которые возникают в современных сетях передачи данных. Например, эти проблемы могут содержать
- очистку ERP, где трафик из разных колец может поступать в один и тот же коммутатор, и где очистка адресов, изученных одним кольцом, не должна влиять на адреса, изученные для другого кольца. Предложенный способ очистки позволяет быстро выполнять повторное изучение этих адресов MAC, которые должны быть повторно изучены. Для того чтобы не выполнять очитку некоторых адресов MAC в конкретном порте, способ может затем позволять дифференцировать адреса MAC (например, путем их указания для каждого кольца);
- очистку RSTP, например, когда принимают требование "очистить все, кроме меня";
- очистку в сетях MPLS, где сообщения отзыва MAC используются для очистки при удаленных изменениях топологии (например, при избыточности PW, оптимизированного отвода адреса MAC и т.д.).
Во всех упомянутых выше задачах ключевая проблема состоит в ускорении операции повторного изучения, то есть быстрого восстановления и обновления информации, очищенной из базы данных (FDB) коммутатора, и непосредственного начала нормального, правильного перенаправления.
Более конкретно, способ для выполнения процесса очистки (очистка) в порте (интерфейс IF, интерфейс виртуального коммутатора VSI) сетевого коммутатора, имеющего множество портов, может содержать этапы, на которых
- предоставляют таблицу состояния портов упомянутого коммутатора (который может представлять собой часть базы данных перенаправления FDB),
- предоставляют в таблице состояния одну обычную запись для конкретного порта коммутатора;
- предоставляют, в той же таблице состояния, дополнительную (фиктивную, альтернативную, вторую) запись для упомянутого конкретного порта коммутатора;
- выполняют маркировку одной из этих записей для конкретного порта с указанием состояния "Перенаправление";
- выполняют маркировку другой записи для конкретного порта с указанием состояния "Очистка";
- обеспечивают следующее поведение для записей, имеющих состояния "Очистка" и "Перенаправление", в случае, когда операцию очистки запрашивают для упомянутого конкретного порта коммутатора:
- запись порта с состоянием "Перенаправление" теперь получает состояние/статус "очистки", обеспечивая таким образом возможность удаления а) (в результате устаревания) адресов, ранее изученных по упомянутому конкретному порте, и b) лавинной передачи пакетов (как это обычно принято), в то время как
- альтернативная запись теперь получает состояние/статус "Перенаправление";
таким образом, используют упомянутую дополнительную запись, как замену основной записи для операции повторного изучения в упомянутом конкретном порте, в то время как в упомянутый порт все еще выполняют лавинную передачу, и как ссылку для операции перенаправления.
Предпочтительно, способ содержит этапы, на которых предоставляют таблицу состояния с описанными дополнительными объектами для всех портов коммутатора, в дополнение к их соответствующим основным записям.
Во время процесса очистки дополнительная запись будет иметь состояние альтернативное состоянию основной записи и должна использоваться как замена основной записи. Дополнительная запись обеспечивает возможность повторного изучения любого адреса MAC в конкретном порте, представляющем для нас интерес, и независимо от факта, что в порт выполняют лавинную передачу данных в это время. Само собой разумеется, что любое повторное изучение фактически выполняют путем регистрации в FDB необходимого адреса MAC в связи с портом, представляющим интерес. В нашем случае это может быть выполнено всякий раз, когда какой-либо пакет поступает в конкретный порт, в то время как он все еще выполняет процесс лавинной передачи, и регистрация адреса MAC пакета может быть выполнена в FDB через дополнительную запись, имеющую необходимую связь с упомянутым конкретным портом. Таким образом, дополнительная запись используется для повторного изучения MAC во время лавинной передачи в конкретный порт.
На практике таблица состояния портов коммутатора может содержать два участка - первый участок (А) может содержать все обычные (основные) записи всех портов коммутатора, в то время как второй участок (В) может содержать соответствующее множество дополнительных, фиктивных записей в те же самые порты, в которых каждая обычная запись (Ai), присвоенная конкретному порту, соединена со связанной с ним фиктивной записью (Bi), присвоенной тому же порту.
В рамках этого способа изучение в то время, когда конкретный порт находится в процессе "очистки" (в состоянии "очистки") может быть выполнена следующим образом:
- если пакет с известным (для коммутатора) адресом MAC поступает из нового источника (через другой, новый порт/интерфейс), выполняют так называемое перемещение MAC, то есть этот адрес MAC будет зарегистрирован по этому новому порту, используя основное обозначение нового порта (например, он может быть реализован с использованием основной записи этого нового порта, на первом участке (А) FDB коммутатора;
- если пакет с известным адресом MAC поступает в коммутатор из того же, ранее известного, источника (то есть через тот же самый известный конкретный порт/интерфейс), альтернативный экземпляр (в виде альтернативного индекса, обозначающего дополнительную запись FDB) этого порта используют для выполнения операции изучения так, как если бы она была выполнена в отношении другого порта. В таком случае операция изучения фактически представляет собой регистрацию адреса MAC в связи с альтернативным индексом упомянутого конкретного порта. На практике регистрация может быть выполнена с использованием альтернативной записи этого конкретного порта на втором участке (В) FDB коммутатора.
В соответствии с другим аспектом изобретения также предусмотрено устройство коммутации пакетов, выполненное с возможностью выполнения способа, описанного выше. В устройстве коммутации описанные таблицы состояния портов (базы данных) и управляемые таблицы адреса организованы в FDB, и соответствующее программное обеспечение и/или встроенное программное обеспечение устанавливают так, чтобы обеспечить возможность для коммутатора выполнения описанного выше способа. Различные комбинации соответствующего FW/SW можно использовать в пределах сетевого коммутатора, и все операции, соответствующие изобретению, могут быть выполнены локально в коммутаторе.
Устройство коммутации пакетов, имеющее множество портов, может содержать центральное процессорное устройство (CPU) и модуль коммутации пакетов PSM, осуществляющие связь друг с другом, причем упомянутый PSM содержит базы данных состояний упомянутых портов и базу данных перенаправления FDB, при этом FDB содержит две записи, имеющие разные индексы, для каждого из упомянутых портов, и при этом в случае, когда упомянутый конкретный порт находится в состоянии "очистки", одна из указанных двух записей конкретного порта выполнена с возможностью использования для лавинной передачи, в то время как другая из записей выполнена с возможностью одновременного использования для повторного изучения адресов MAC и перенаправления пакетов в повторно изученные адреса MAC.
Также предложен PSM для устройства коммутации. Его воплощения могут быть различными, но он должен содержать базу данных состояния портов коммутатора и базу данных перенаправления FDB, причем FDB содержит две записи с разными индексами для каждого из упомянутых портов; при этом предусмотрено, что в случае, когда требуется очистить конкретный порт, PSM выполнен с возможностью присвоения для одной записи конкретного порта состояния "очистки", что позволяет использовать запись, имеющую состояние "очистки", для пакетов лавинной передачи, в то время как другая из записей выполнена с возможностью одновременного использования для повторного изучения адресов MAC и перенаправления пакетов в повторно изученные адреса MAC.
Дополнительно может быть предусмотрен программный продукт, содержащий выполняемые компьютером команды и/или данные (такие, как FDB, содержащая таблицы адреса и таблицы состояния порта) для осуществления способа в соответствии с приведенным выше описанием, причем программный продукт содержится на соответствующем считываемом компьютером носителе данных, так чтобы программное обеспечение было выполнено с возможностью осуществления операций упомянутого способа при использовании в компьютере или в компьютерной системе. Компьютер в данном конкретном случае может быть представлен в виде блока CPU управления коммутатором или модулем коммутации пакетов, связанным с CPU. Модуль коммутации пакетов может содержать (но не ограничен этим) NPU (модуль обработки сети), FPGA или любую другую специализированную ASIC. CPU также может составлять часть такой специализированной ASIC.
Запросы на очистку в CPU или NPU могут поступать из EMS/NMS; эти запросы также могут быть специфичными, не связанными с какими-либо изменениями топологии. Внешние запросы на очистку могут поступать из сети MPLS и т.д.
При этом здесь могут быть предусмотрены следующие категории защиты: способ, считываемый компьютером носитель данных, на котором размещен программный продукт, модуль коммутации пакетов (PSM), в котором размещен программный продукт и который выполнен с возможностью использования программного продукта, и сетевой коммутатор (устройство коммутации пакетов), выполненный с возможностью выполнения операций способа и снабженный соответствующими FW/HW. FW/HW фактически составляет PSM и, предпочтительно, в нем размещен предложенный программный продукт.
Краткое описание чертежей
Изобретение будет дополнительно описано и представлено с использованием следующих не ограничивающих чертежей, на которых:
На фиг.1 схематично иллюстрируется пример базы данных/таблицы 10 состояний порта, которая модифицирует обычную базу данных перенаправления FDB.
На фиг.2 (предшествующий уровень техники) иллюстрируется пример обычной таблицы 12 адресов MAC в FDB.
На фиг.3а и фиг.3b иллюстрируются два разных случая изучения адресов MAC.
На фиг.4 схематично иллюстрируется один вариант осуществления устройства коммутации пакетов, в котором предусмотрены возможности поддержки способа в соответствии с изобретением.
На фиг.5 схематично показана блок-схема последовательности операций предложенного алгоритма для процесса перенаправления в устройстве коммутации.
На фиг.6 схематично представлена одна версия предложенного алгоритма для быстрого изучения адресов MAC в устройстве коммутации.
Осуществление изобретения
Как пояснялось в кратком описании изобретения, авторы изобретения предлагают разделить/сделать независимыми операцию лавинной передачи и операцию (повторного) изучения и перенаправления в устройстве коммутации пакетов. Это стало возможным благодаря выполнению лавинной передачи со ссылкой на основной экземпляр, "Очистка" конкретного порта при выполнении операции изучения и перенаправления с использованием дополнительного экземпляра, "Перенаправление" этого порта.
Изучение может содержать а) повторное изучение адресов во время состояния очистки порта, и/или b) изучение нового адреса для нового порта, в который поступает новый пакет с новым адресом (это может произойти также во время состояния очистки). Также следует отметить, что если какой-либо зарегистрированный адрес не появляется в течение длительного времени и таким образом не подтверждает свою регистрацию в FDB, такой адрес будет удален из нее как устаревший.
На фиг.1 схематично иллюстрируется пример базы данных/таблицы 10 состояния портов, которая модифицирует обычную базу данных перенаправления FDB. База данных/таблицы 10 состояния портов содержит две таблицы состояния порта (основную таблицу А и дополнительную таблицу В), в которой каждая запись в базе данных 10 содержит индекс (номер) конкретного логического/виртуального порта и его состояния очистки. Фактически, таблица В представляет собой копию таблицы А, поскольку обе таблицы относятся к одной и той же группе логических портов. Однако, индексы портов в таблице В другие; эти числа представляют собой всего лишь фиктивные номера тех же портов, что представлены в таблице А. Таблица А содержит реальные номера от 0 до 127 порта и формирует первый банк портов, в то время как таблица В содержит фиктивные номера 128-255 порта и формирует второй (дополнительный) банк портов. Вначале, при нормальной работе, состояние очистки всех портов в обеих таблицах А и В может быть одинаковым ("0", отсутствие очистки или перенаправление). В случае очистки в определенном порте, например в порте 1, CPU или специально выделенный логический модуль коммутатора обновляют состояние этого порта в основной таблице А ("1", очистка) при сохранении состояния того же порта в таблице В, как не осуществляющего очистку или осуществляющего перенаправление ("0"). Следует учитывать, что порт 1 в таблице В обозначен номером 129. Эти две взаимосвязанные/соединенные записи одного и того же порта схематично обозначены пунктирной кривой.
На фиг.2 (предшествующий уровень техники) иллюстрируется пример обычной таблицы 12 адресов MAC в FDB, на которой показано, как адреса MAC вначале изучают и регистрируют в FDB коммутатора, причем каждый адрес MAC связан с конкретной виртуальной частной сетью VPN и конкретным интерфейсом (виртуальный порт).
Новая модифицированная FDB в соответствии с изобретением содержит не только обычную таблицу 20 адресов MAC (фиг.2), но также и новую базу 10 данных состояния порта, состоящую из таблиц А и В (фиг.1). Сетевой коммутатор (не показан), который содержит такую FDB, и предложенный программный продукт (который обеспечивает выполнение способа очистки в соответствии с изобретением) также являются модифицированными и новыми.
Пусть теперь коммутатор регистрирует запрос на очистку всех MAC, зарегистрированных в порте 1. Состояние порта в подтаблице А (фиг.1) будет обновлено со значением "1", что обозначает состояние "Очистки" порта.
Как будет выполнено перенаправление пакетов в предложенном модифицированном коммутаторе? Пусть пакет с адресом MAC поступает в коммутатор; он должен быть перенаправлен в соответствующий порт (порты). Как обычно, выполняют поиск в FDB адреса MAC, и если он будет найден, для него проверяют его ассоциированную VPN и виртуальный порт (в таблице 12 адресов MAC, фиг.2), и затем состояние назначенного виртуального порта (Таблица В базы 10 данных, фиг.1). Если адрес MAC будет найден (например, он представляет собой MAC-99:11:22:33:44:55 в первой строке таблицы 12 адресов MAC), и состояние очистки его ассоциированного порта 1 равно "1" (см. таблицу А базы 10 данных), будет выполнена лавинная передача пакетов через все соответствующие порты коммутатора, за исключением принимающего порта. Соответствующие порты следует понимать, как порты, относящиеся к конкретной VPN (виртуальной частной сети, используемой конкретной услугой передачи данных). Если адрес MAC полученного пакета не будет найден в FDB, пакет должен быть передан в режиме лавинной передачи (перенаправлен через все соответствующие порты), поскольку это представляет собой правило для пакетов с неизвестными адресами MAC.
В модифицированной FDB предпочтительно интегрированы как таблица 12, так и таблица 10.
Как будет выполнено изучение адресов MAC в предложенном модифицированном коммутаторе после очистки порта 1?
На фиг.3а и фиг.3b иллюстрируются два разных случая изучения адресов MAC.
На фиг.3а представлено "событие" перемещения порта одного из MAC, который "переместился" в другой (неочищенный) порт. На фиг.3а показана модифицированная таблица 14 адресов MAC, которая сформирована из таблицы 12 по фиг.2, где первая строка несколько изменена в результате перемещения порта. Предположим, что в результате некоторого изменения топологии сети пакет с адресом MAC 00:11:22:33:44:55, который, как известно коммутатору, относится к конкретной VPN, появляется через новый порт (I/F) 2, а не через ранее известный порт 1. После поиска в FDB MAC и VPN будет найдена первая строка таблицы 12, и зарегистрированный порт (I/F) теперь изменится с 1 на 2 (см. первую строку в таблице 14). Это событие изменения порта называется событием перемещения MAC и иллюстрируется в первой строке таблицы 14.
На фиг.3b иллюстрируется процесс повторного изучения адреса MAC порта, в котором выполняют очистку. Другими словами, на фиг.3b представлена другая модификация 16 таблицы 12, когда пакет с известным адресом MAC поступает через тот же очищенный порт (порт, уже зарегистрированный в таблице 12 FDB, в связи с адресом MAC и конкретной VPN, и этот порт находится в его состоянии очистки (таблица 10)). Это как раз один из тех случаев, на который направлено изобретение для ускорения операции повторного изучения MAC.
Пусть адрес MAC представляет собой 00:11:22:33:44:77 ("третья строка таблицы 20"), и он поступает из порта 1. После поиска в FDB будет найден MAC в той же записи для порта, и после определения, что для записи порта выполняется очистка, будет инициирована операция повторного изучения. Индекс порта будет заменен в таблице 16 его соответствующим альтернативным индексом (взятым от таблицы В базы 10 данных состояния), и таким образом операция повторного изучения выполняется, но в связи с альтернативным индексом порта. В данном конкретном примере индекс 1 порта будет заменен на номер 129 порта. Однако следует учитывать, что номер 129 порта известен CPU, как замена номера 1 порта.
Теперь, если пакет с упомянутым адресом MAC должен быть перенаправлен, поиск этого пакета будет выполнен в FDB по MAC, VPN, номеру порта. После того, как будет найден фиктивный индекс (номер 129) порта, пакет будет перенаправлен через исходный порт 1, но со ссылкой на его фиктивный индекс 129.
Само собой разумеется, что если любой адрес MAC, который зарегистрирован в таблице 12, не появляется в прибывающих пакетах в течение длительного времени, он может быть (и будет) удален из таблицы вследствие устаревания.
CPU коммутатора предпочтительно манипулирует таблицами состояния порта. HW коммутатора пакетов (модуль PS) предпочтительно выполняет все необходимое перенаправление, лавинную передачу и повторное изучение.
На фиг.4 схематично иллюстрируется примерная структура устройства 20 коммутации пакетов данных, выполненного с возможностью выполнения предложенного способа. Порты или интерфейсы (физический, логический, виртуальный и т.д.) устройства коммутации схематично обозначены как 21. Коммутатор 20 содержит внутренний модуль 22 коммутации пакетов, отслеживаемый и управляемый модулем CPU 24 обработки управления, который связан с модулем PSM 22 коммутации пакетов, который содержит соответствующее средство HW/FW, например, NPU или ASIC, или FPGA (программируемую вентильную матрицу). В CPU 24 встроена база данных перенаправления FDB 26 и предложенный программный продукт SW 28, который обеспечивает возможность работы CPU в соответствии с предложенным способом. Программные продукты SW 28 и FDB 26 расположены в ОЗУ 27. SW28 находится во взаимодействии с двумя базами данных в пределах FDB 26: базой 10 данных состояния порта и таблицей 12 адреса MAC. CPU 24 связано с портами через PSM 32 и с внешней системой управления, например системой управления элемента EMS и, кроме того, с NMS (системой управления сетью) для обмена информацией и командами.
Предложенный вариант осуществления представляет собой только пример, при этом алгоритм может быть воплощен на основе одной ASIC без CPU; и т.д.
На фиг.5 показано, как выполняется предлагаемый процесс перенаправления пакета. Адрес MAC места назначения пакета, поступающего в коммутатор, сканируют для проверки, зарегистрирован ли он уже в базе данных перенаправления FDB коммутатора (блок 30). Если нет, пакет будет передан в режиме лавинной передачи (блок 32) во все порты, относящиеся к соответствующей услуге/VPN, которым принадлежит пакет. Если адрес MAC будет найден в FDB, в экземпляре/записи/показателе, ассоциированном с портом N, эту запись N проверяют, находится ли она в состоянии "очистки" (блок 34). Если порт действительно находится в состоянии очистки, пакет будет передан в режиме лавинной передачи (блок 36) во все соответствующие порты, связанные с указанной VPN. Если нет, пакет будет нормально перенаправлен в порт N (блок 38).
-ого
На фиг.6 схематично представлен пример нового предложенного способа для ускорения изучения MAC, где два экземпляра (основной и дополнительный) предусмотрены для каждого порта в FDB. Блок 40 проверяет, является ли адрес MAC источника пакета, принятого в коммутаторе через порт К, зарегистрированным в FDB. Предположим, что такая регистрация отсутствует. Затем проверяют, находится ли первый (основной) экземпляр/запись/показатель порта К в состоянии "очистки" (блок 42). Если это так, адрес MAC пакета будет изучен во втором (дополнительном, фиктивном) экземпляре порта К (блок 44). Перенаправление будет таким образом выполнено с использованием 2-го экземпляра. Если порт К находится в его нормальном состоянии, адрес MAC будет изучен по основному/первому экземпляру порта (блок 46), и перенаправление будет выполнено с использованием 1 экземпляра. Как видно, перенаправление будет выполнено с использованием экземпляра, который находится в нормальном (без очистки) состоянии.
В качестве альтернативы, в случае, когда адрес MAC прибывающего пакета будет найден в FDB (блок 40), способ требует проверки, является ли он зарегистрированным в первом (основном) экземпляре порта К (блок 48). Если это так, следует различить, каким из двух предоставленных экземпляров адрес зарегистрирован, и действовать соответственно. В случае, когда адрес MAC будет найден в основном (первом) экземпляре порта К, и этот экземпляр указывает, что порт К находится в состоянии "очистки" (блок 50), этот экземпляр бесполезен для повторного изучения адреса, и адрес будет повторно изучен во втором (фиктивном) экземпляре порта К (блок 52). Если основной экземпляр находится в своем нормальном состоянии, нет необходимости изменять регистрацию, которая уже существует (блок 54). Однако, в случае, когда адрес MAC будет найден во втором экземпляре (блок 48), и этот экземпляр показывает, что порт К находится в состоянии "очистки" (блок 56), это означает, что порт снова изменил свое состояние, и что теперь необходимо выполнить повторное изучение адреса MAC по альтернативному первому экземпляру порта К (блок 58). Если второй экземпляр не находится в состоянии очистки, это означает, что ситуация остается стабильной после первой очистки порта К, и что не требуется изменять существующую регистрацию адреса MAC (блок 60). Как отмечено выше, перенаправление выполняют в соответствии с экземпляром, находящимся в состоянии отсутствия очистки.
Если все-таки следующая очистка требуется в порте, два экземпляра порта выполняют взаимный обмен своими состояниями.
Следует понимать, что другие модификации предложенного способа программного продукта с модифицированной FDB, и коммутатора, выполненного с возможностью выполнения способа, могут быть предложены, и их следует рассматривать как часть изобретения в том виде, как оно определено следующей формулой изобретения.