Процедуры распределения и обработки маркеров. В дальнейшем рассматривается случай (способ) распределения (доставки) маркеров ATM/LSR-коммутаторами
В дальнейшем рассматривается случай (способ) распределения (доставки) маркеров ATM/LSR-коммутаторами, именуемый как «нисходящий поток по требованию» (downstream-on-demand). Связанные с этим способом процедуры распределения маркеров должны использоваться ATM/LSR-коммутаторами, которые не обеспечивают объединение VC-соединений, и могут использоваться ATM/LSR-коммутаторами, которые обеспечивают объединение VC-соединений. Однако эти процедуры имеют некоторое отличие. Далее поочередно будут рассмотрены оба сценария. Вначале рассматривается функционирование LSR-маршрутизаторов, являющихся граничными в рамках сетевого ATM/LSR-сегмента. Такие LSR-маршрутизаторы сами по себе не являются ATM/LSR-коммутаторами, а их функционирование аналогично, вне зависимости, содержит ли сетевой сегмент LSR-маршрутизаторы, способные обеспечить объединение VC-соединений, или нет.
Функционирование граничного LSR-маршрутизатора
Рассмотрим функционирование граничного LSR-маршрутизатора из группы граничных LSR-маршрутизаторов, входящих в сетевой ATM/LSR-сегмент. Предположим, что в результате его маршрутных вычислений он выбрал ATM/LSR-коммутатор в качестве следующего РУ некоторого маршрута (FEC-класс), и что следующий РУ подключён через LC/ATM-интерфейс. Граничный LSR-маршрутизатор использует LDP-протокол для запроса данных о привязки маркера к следующему РУ относительно определённого FEC-класса. Поле «счётчик РУ» в запросе содержит значение «1». После того, как граничный LSR-маршрутизатор получит данные о привязке маркера, он может использовать процедуры MPLS-коммутации для доставки IP-пакетов определённого FEC-класса, используя для этого некоторый маркер в качестве исходящего маркера потока. (Или используя VPI/VCI-идентификатор, который соответствует определённому VCID-идентификатору, в качестве исходящего маркера, если используется VCID-метод, представленный в стандарте RFC-3038.)
(Примечание. Если на предыдущем РУ граничного LSR-маршрутизатора для запроса от него маркера в интересах определённого FEC-класса используется способ «нисходящий поток по требованию», и если граничный LSR-маршрутизатор не реализует функцию объединения LSP-маршрута, начиная с этого предшествующего РУ, с любым другим LSP-маршрутом, и если запрос от противоположной стороны предшествующего РУ содержал поле «число РУ» со значением «h», то значение в поле «число РУ» запроса, направленного граничным LSR-маршрутизатором, должно быть «h + 1», а не «1».)
Данные о привязке маркера, полученные граничным LSR-маршрутизатором, могут включать поле «счётчик РУ», содержащее значение числа РУ, которое будет пройдено IP-пакетом до пересечения границы сетевого ATM/LSR-сегмента при использовании этого маркера. Если счётчик РУ связан с привязкой маркера, то ATM/LSR-коммутатор перед тем как отправить IP-пакет должен прибавить значение этого счётчика к уже имеющемуся значению в TTL-поле заголовка данного IP-пакета. В любом случае, ATM/LSR-коммутатор, перед тем как отправить IP-пакет, обязан прибавить, по крайней мере, «1» к имеющемуся значению в TTL-поле заголовка этого IP-пакета.
Когда граничный LSR-маршрутизатор из группы граничных LSR-маршрутизаторов, входящих в сетевой ATM/LSR-сегмент, получает запрос на данные о привязке маркера потока от ATM/LSR-коммутатора, он формирует (выбирает из имеющихся) маркер и отправляет ответное LDP-сообщение, содержащее сформированный маркер, противоположной стороне, отправившей запрос. При этом он устанавливает в поле «счётчик РУ» ответного LDP-сообщения значение «1».
Когда в результате маршрутизационных вычислений граничному LSR-маршрутизатору необходимо изменить следующий РУ в интересах определённого FEC-класса, а предыдущий РУ входил в сетевой ATM/LSR-сегмент, граничный LSR-маршрутизатор должен оповестить противоположную сторону предыдущего РУ (с использованием LDP-протокола), что данные о привязке маркера, относительно данного FEC-класса, больше не нужны.
Стандартные ATM-коммутаторы (без функции объединения
VC-соединений)
Когда ATM/LSR-коммутатор получает (с использованием LDP-протокола) запрос на данные о привязке маркера относительно некоторого FEC-класса от противоположной стороны, соединённой с этим ATM/LSR-коммутатором через LC/ATM-интерфейс, он выполняет следующие действия:
¨ выбирает (или формирует) маркер;
¨ запрашивает (с использованием LDP-протокола) данные о привязке маркера относительно этого FEC-класса у противоположной стороны следующего РУ;
¨ отправляет ответное сообщение (с использованием LDP-протокола), содержащее данные о привязке, включая выбранный (сформированный) входящий маркер потока, противоположной стороне, являющейся отправителем запроса.
Введём параметр — «максимальное число РУ» MAXHOP. В режиме «по умолчанию» MAXHOP имеет значение 255., но может иметь и другие настраиваемые значения.
Значение в поле «число РУ» запроса, который был передан ATM/LSR-коммутатором (LSR-маршрутизатору на противоположной стороне следующего РУ), должно быть на единицу больше, чем значение в аналогичном поле запроса, принятого от LSRВП. Если результирующее значение числа РУ превышает MAXHOP, то запрос не должен передаваться на следующий РУ, а ATM/LSR-коммутатор обязан оповестить соседний LSRВП о том, что его запрос на получение данных о привязке не может быть удовлетворён.
В противном случае, как только ATM/LSR-коммутатор получает данные о привязке маркера от противоположной стороны следующего РУ, он начинает использовать этот маркер.
ATM/LSR-коммутатор может ожидать получение от LSRНП ответа на свой запрос, прежде чем он отправит LSRВП ответное сообщение с данными о привязке маркера. Это — форма «упорядоченного контроля LSP-маршрута» соответствующего «упорядоченного контроля со стороны выхода LSP-маршрута». В данном случае, после того, как ATM/LSR-коммутатор получит от LSRНП значение счётчика РУ, которое будет больше нуля, но меньше MAXHOP, он обязан увеличить значение счётчика РУ, которое он получил от LSRНП, и обязан включить полученный результат в ответное сообщение о привязке маркера, предназначенное для отправки LSRВП. Однако если значение счётчика РУ превышает MAXHOP, то данные о привязке маркера не должны отправляться LSRВП. Желательно, чтобы LSRВП, как противоположная сторона LDP-соединения, был проинформирован о том, что направленный им запрос на получение данных о привязке маркера не может быть удовлетворён. Если же полученное от LSRНП значение счётчика РУ равно нулю, то значение счётчика, направляемое LSRВП, также должно быть равно нулю (это означает, что реальное значение счётчика не известно).
С другой стороны, ATM/LSR-коммутатор может отправить LSRВП ответное сообщение с данными о привязке маркера, не дожидаясь ответного сообщения с данными о привязке маркера от LSRНП (независимый контроль LSP-маршрута). В таком случае, ATM/LSR-коммутатор устанавливает нулевое значение счётчика РУ в сообщении с данными о привязке маркера, указывая, таким образом, что реальное значение счётчика неизвестно. Правильное значение счётчика РУ будет передано позднее.
(Примечание. ATM/LSR-коммутатор (или LSR-маршрутизатор из группы граничных LSR-маршрутизаторов, входящих в сетевой ATM/LSR-сегмент) может получить несколько запросов на данные о привязке маркера для соответствующего FEC-класса от одного и того же, но иного ATM/LSR-коммутатора. Тогда ATM/LSR-коммутатор обязан сформировать новое ответное сообщение о привязке маркера для каждого запроса (полагая, что для этого имеются достаточные ресурсы) и отправить в нём любую(ые) существующую(ие) привязку(и) маркера. Кроме того, на каждый полученный запрос ATM/LSR-коммутатор должен сформировать новый запрос на данные о привязке маркера в интересах некоторого FEC-класса для противоположной стороны следующего РУ.)
Когда в результате маршрутизационных вычислений ATM/LSR-коммутатору необходимо изменить следующий РУ в интересах определённого FEC-класса, ATM/LSR-коммутатор должен оповестить противоположную сторону предыдущего РУ (с использованием LDP-протокола), что данные о привязке маркера, относительно данного FEC-класса, больше не нужны.
Если LSR-маршрутизатор получает извещение о том, что соответствующая привязка маркера больше не нужна, то он может аннулировать маркер, связанный с FEC-классом привязкой, а саму привязку уничтожить. В случае, когда подобное извещение получает ATM/LSR-коммутатор, и после того, как будет им уничтожена привязка, он обязан оповестить противоположную сторону следующего РУ (с использованием LDP-протокола), что данные о привязке маркера, относительно данного FEC-класса, больше не нужны. Если же LSR-маршрутизатор не уничтожает привязку, то он может использовать её повторно, но только в том случае, когда он получил запрос в интересах одного и того же FEC-класса и с одним и тем же значением счётчика РУ, как и в запросе, который был первоначальной причиной формирования привязки маркера.
При изменении маршрута, привязки маркеров переформируются с той точки маршрута, в которой последний отличается от предшествующего маршрута. LSRВП в этой точке маршрута (за одним исключением, рассмотренным ниже) «не обращают внимание» на это изменение.
Всякий раз, когда LSR-маршрутизатор изменяет свой следующий РУдля некоторого FEC-класса, и если новый следующий РУ достижим через LC/ATM-интерфейс, то для каждого маркера, который привязан к этому FEC-классу и доставляется LSRВП, LSR-маршрутизатор обязан запросить данные о новой привязке маркера от противоположной стороны нового следующего РУ.
Когда LSR-маршрутизатор получает от соседнего LSRНП сообщение о привязке маркера к соответствующему FEC-классу, он мог уже отправить соседнему LSRВП сообщение о привязке маркера к данному FEC-классу, либо потому, что он реализует независимый контроль LSP-маршрута, либо потому, что новая привязка маркера, полученная от LSRНП, явилась результатом маршрутных изменений. В данном случае, пока поступившее значение счётчика РУ не будет нулевым, LSR-маршрутизатор обязан извлекать значение счётчика из новой привязки маркера и увеличивать его на единицу. Если новое значение счётчика отличается от того, которое было доставлено ранее соседнему LSRВП (включая случай, когда соседний LSRВП получил значение «неизвестно»), то ATM/LSR-коммутатор обязан оповестить соседний LSRВП об изменении. Каждый ATM/LSR-коммутатор поочерёдно (друг за другом) должен увеличивать значение счётчика РУ и доставлять его LSRВП, пока оно не достигнет входного граничного LSR-маршрутизатора. Если в какой-либо точке LSP-маршрута значение счётчика станет равно MAXHOP, то ATM/LSR-коммутатор должен отказаться от привязки маркера, полученной от соседнего LSRВП. Если значение счётчика РУ равно нулю, то оно должно доставляться без изменений.
Всякий раз, когда ATM/LSR-коммутатор отправляет LSR-маршрутизатору, находящемуся на противоположной стороне следующего РУ, запрос на данные о привязке маркера в результате того, что он получил аналогичный запрос на данные о привязке маркера от другого LSRВП, и этот запрос, отправленный LSR-маршрутизатору, находящемуся на противоположной стороне следующего РУ, остаётся без удовлетворения, ATM/LSR-коммутатор должен уничтожить привязку маркера, сформированную в ответ на полученный запрос, и оповестить об этом запрашивающую сторону (с использованием LDP-протокола).
Если ATM/LSR-коммутатор получает сообщение о привязке маркера, в котором значение счётчика РУ превышает MAXHOP, то ATM/LSR-коммутатор обязан не формировать привязку маркер, и должен отправить запрашивающей стороне сообщение об ошибке.
Когда LSR-маршрутизатор установит, что LDP-сеанс связи с другим LSR-маршрутизатором нарушен, он должен предпринять следующие действия:
§ любая информация о привязках маркеров, полученная с помощью этого LDP-соединения, должна быть уничтожена;
§ LSR-маршрутизатор может уничтожить любые привязки маркеров, которые были сформированы в результате приёма от противоположной стороны LDP-соединения запроса на данные о привязке маркера (и открепить маркеры от этих привязок).
LSR-маршрутизатор должен использовать метод «разделения горизонта» («split-horizon», позволяющий исключить появление петлевых маршрутов), когда он отвечает на запросы о привязках маркеров, полученные от своих соседей. Т.е., если LSR-маршрутизатор получает запрос на данные о привязке маркера к соответствующему FEC-классу, и он устанавливает, что такой запрос относительно данного FEC-класса уже существует (поступил ранее от ATM/LSR-коммутатора, расположенного на противоположной стороне следующего РУ), то он не должен отправлять ответное сообщение о привязке маркера по этому маршруту.
Предполагается, что ATM/LSR-коммутаторы (без функции объединения VC-соединений) могли бы, в большинстве случаев, функционировать в «консервативном режиме сохранения маркера потока» (conservative label retention mode).
ATM-коммутаторы с функцией объединения VC-соединений
Внедрение функции объединения VC-соединений в ATM/LSR-коммутаторы (VC-merge) требует относительно небольших изменений. Первое отличие заключается в том, что для ATM/LSR-коммутаторов с функцией объединения VC-соединений необходим только один исходящий маркер для одного FEC-класса, и даже в том случае, когда от соседних LSRВП получено несколько запросов на данные о привязке маркера к некоторому FEC-классу.
Когда ATM/LSR-коммутатор с функцией объединения VC-соединений получает запрос на данные о привязке маркера к конкретному FEC-классу от LSRВП, и к этому моменту он не имеет данных о привязке исходящего маркера к этому FEC-классу (или запрос на такие данные ожидается), он должен отправить запрос на данные о привязке противоположной стороне своего следующего РУ (как это он мог бы сделать, если бы не обладал функцией объединения VC-соединений). Тем не менее, если он имеет данные о привязке исходящего маркера к некоторому FEC-классу, то ему не нужно отправлять запрос на такие данные LSRНП. Вместо этого, он может просто выделить (назначить) входящий маркер и вернуть этот маркер в ответном сообщении с данными о привязке запрашивающему LSRВП. Когда IP-пакеты с этим маркером (являющимся верхним в наборе маркеров) поступают от запрашивающей стороны, значение верхнего маркера будет замещаться значением существующего исходящего маркера, соответствующего одному и тому же FEC-классу.
Если ATM/LSR-коммутатор не имеет данных о привязке исходящего маркера для некоторого FEC-класса, но ожидает ответ на отправленный запрос о таких данных, то ему не нужно отправлять повторный запрос.
Когда передаётся маркер, привязанный к восходящему потоку, значение счётчика РУ, относящееся к соответствующей привязке и переданное LSR-маршрутизатором нисходящего потока, должно увеличиваться на единицу, а результирующее значение передаётся LSR-маршрутизатором восходящего потока, как значение счётчика, относящееся к новой привязке маркера. Однако существуют два исключения:
- значение счётчика РУ, равное нулю, должно передаваться LSR-маршрутизатору восходящего потока без изменений;
- если значение счётчика РУ уже равно MAXHOP, то ATM/LSR-коммутатор обязан не отправлять данные о привязке LSRВП, но вместо этого он обязан отправить LSRВП сообщение об ошибке.
(Примечание. Так же как и стандартные ATM-коммутаторы (без функции объединения VC-соединений) и граничные LSR-маршрутизаторы из группы граничных LSR-маршрутизаторов, входящих в сетевой ATM/LSR-сегмент, ATM/LSR-коммутатор с функцией объединения VC-соединений обязан отправлять данные о новой привязке маркера всякий раз, когда он получает запрос от LSRВП, так как могут быть коммутаторы восходящего потока, которые не реализуют функцию объединения VC-соединений. Тем не менее, ему необходимо только отправлять LSRНП запрос на соответствующие данные о привязке маркера, если только у него нет данных о привязке маркера к соответствующему маршруту.)
Когда изменение в маршрутной таблице ATM/LSR-коммутатора с функцией объединения VC-соединений вынуждает его выбрать новый следующий РУ в интересах одного из обслуживаемых им FEC-классов, он, дополнительно, может аннулировать привязку к этому маршруту от бывшего следующего РУ. Если же он ещё не имеет соответствующую привязку к новому следующему РУ, то он обязан её запросить.
Если данные о новой привязке приняты, и они содержат значение счётчика РУ, отличающееся от принятого в данных о старой привязке, то ATM/LSR-коммутатор обязан определить новое значение счётчика РУ, путём прибавления единицы к принятому значению, и оповестить о новом значении счётчика РУ все соседние LSRВП, которые имеют привязки маркеров к соответствующему FEC-классу. Так же как и в случае со стандартными ATM-коммутаторами (без функции объединения VC-соединений), это позволяет доставлять новое значение счётчика РУ обратно на вход сетевого ATM/LSR-сегмента. Если в какой-либо точке LSP-маршрута значение счётчика РУ превысит MAXHOP, то все привязки маркеров для этого LSP-маршрута, которые были ранее направлены всем соседним LSRВП по их соответствующим запросам, должны быть аннулированы. Последнее гарантирует, что любые петлевые маршруты, вызванные маршрутизационными изменениями, будут выявлены и блокированы.
Процедуры вставки
Рассматриваемые далее процедуры касаются только граничных LSR-маршрутизаторов, входящих сетевой ATM-LSR-сегмент. Сами по себе ATM/LSR-коммутаторы не могут каким-либо образом изменять вставку.
Помеченные IP-пакеты должны транслироваться с использованием пустой (null) вставки (RFC-2684).
За исключением рассматриваемых далее случаев, при передаче помеченного IP-пакета через LC/ATM-интерфейс, который интерпретирует VPI/VCI-идентификатор (или VCID) как верхний маркер в наборе маркеров, этот IP-пакет должен содержать универсальную MPLS-вставку (RFC-3032).
Если IP-пакет содержит набор маркеров с n записями, то он обязан «переносить» универсальную MPLS-вставку с n записями. Реальное значение верхнего маркера размещается в VPI/VCI-поле. Значение маркера в верхней записи универсальной MPLS-вставки (которая является только «пустой» (placeholder) строкой, предназначенной для заполнения) должно быть установлено в нулевое значение при передаче, и должно игнорироваться при приёме. Исходящее TTL-значение для IP-пакета, а также значение «Категория обслуживания», транслируются в соответствующих полях верхней записи набора маркеров универсальной MPLS-вставки.
(Примечание. Если IP-пакет содержит набор маркеров только с одной записью, это требует наличия одиночной записи в универсальной MPLS-вставки (4 байта), даже если реальное значение маркера размещается в VPI/VCI-поле. Это делается для того, чтобы гарантировать постоянное присутствие универсальной MPLS-вставки в IP-пакете. В противном случае, не было бы возможности определить, содержит IP-пакет вставку или нет, т.е. невозможно определить наличие дополнительных записей в наборе маркеров.)
Существуют только два способа для удаления этого дополнительного поля с универсальной MPLS-вставкой, а именно:
· априорное знание того, IP-пакеты содержат только одиночный маркер (например, возможно сеть поддерживает только один уровень маркеров);
· использование двух VC-соединений для одного FEC-класса, т.е. одного — для тех IP-пакетов, которые содержат только одиночный маркер, а другого — для тех IP-пакетов, которые содержат более одного маркера.
Второй способ может потребовать, чтобы имело место некоторое средство сигнализации на основе LDP-протокола, которое бы оповещало, что VC-соединение предназначено только для доставки IP-пакетов с одиночным маркером, и не предназначено для доставки универсальной MPLS-вставки. Когда реализуется функция объединения VC-соединений, тогда можно было бы не объединять VC-соединение, по которому не доставляются IP-пакеты с универсальной MPLS-вставкой, с VC-соединением, по которому такие IP-пакеты доставляются, или наоборот.
Несмотря на то, что оба способа разрешены, весьма сомнительно, что они имеют какое-либо практическое применение. Следует заметить, что если универсальная MPLS-вставка отсутствует, то исходящее TTL-значение транслируется в TTL-поле заголовка сетевого уровня.
Дата добавления: 2016-01-03; просмотров: 472;