> For the complete documentation index, see [llms.txt](https://linkmeup.gitbook.io/sdsm/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://linkmeup.gitbook.io/sdsm/10.-base-mpls/03.-label_distribution/00.-modes/00.-du_dod.md).

# DU против DoD

***Во-первых***, маршрутизатор может распространять метки всем своим соседям сразу же и без лишних вопросов, а может выдавать по запросу от вышестоящих (мы помним, да, какое направление называется Upstream?)\
Первый режим называется *\*\*DU — \_Downstream Unsolicited*\*\*\_. Как только LSR узнаёт про FEC, он рассылает всем своим MPLS-соседям метки для этого FEC.\
Выглядит это примерно так:

![](/files/-LXhLM9soWX0DdokplPZ)

Все LSR узнают обо всех FEC по всем возможным путям. Сначала соответствие FEC-метка расходится по всей сети от соседа к соседу, почти как это происходит с сообщениями [BootStrap](http://lookmeup.linkmeup.ru/#term302) в PIM SM. А потом каждый LSR выбирает только тот, который пришёл по лучшему пути, и его использует для LSP — точно так же работает [Reverse Path Forwarding](http://lookmeup.linkmeup.ru/#term332) в том же [PIM SM](https://linkmeup.ru/blog/129.html#PIM-SM).

Быстро, просто, понятно, хотя и не всегда нужно, чтобы все знали обо всём.

Второй режим — *\*\*DoD — \_Downstream-on-Demand*\*\*\_. LSR знает FEC, у него есть соседи, но пока они не спросят, какая для данного FEC метка, LSR сохраняет молчание.

![](/files/-LXhLM9vUaYdDn-Bb-Ij)

Этот способ удобен, когда к LSP предъявляются какие-то требования, например, по ширине полосы. Зачем слать метку просто так, если она тут же будет отброшена? Лучше вышестоящий LSR запросит у нижестоящего: мне нужна от тебя метка для данного FEC — а тот: «ок, на».

Режим выделения меток специфичен для интерфейса и определяется в момент установки соединения. В сети могут быть использованы оба способа, но на одной линии, соседи должны договориться только об одном конкретном.
