4 mins read

LDP deaggregate

When an LDP egress router advertises multiple prefixes, the prefixes are bound to a single label and aggregated into a single forwarding equivalence class (FEC). By default, LDP maintains this aggregation as the advertisement traverses the network.

On a random PE, we can see how multiple prefixes are bound to one single label:

Apply the deaggregate knob:

[edit]
root@PE1# show | compare 
[edit protocols ldp]
+   deaggregate;

[edit]
root@PE1# commit 
commit complete

### Now each prefix has its own label: 

root@PE1# run show ldp database 
Input label database, 17.0.0.1:0--17.0.0.2:0
Labels received: 5
  Label     Prefix
 299856      17.0.0.1/32
      3      17.0.0.2/32
 299840      17.0.0.3/32
 299872      17.0.0.4/32
 299776      17.0.0.5/32
 299776      172.168.1.0/24
 299776      172.168.2.0/24

Output label database, 17.0.0.1:0--17.0.0.2:0
Labels advertised: 7
  Label     Prefix
      3      17.0.0.1/32
 299904      17.0.0.2/32
 299776      17.0.0.3/32
 299872      17.0.0.4/32
 299952      17.0.0.5/32
 299968      172.168.1.0/24
 299920      172.168.2.0/24

Input label database, 17.0.0.1:0--17.0.0.3:0
Labels received: 5
  Label     Prefix
 299776      17.0.0.1/32
 299904      17.0.0.2/32
      3      17.0.0.3/32
 299872      17.0.0.4/32
 299888      17.0.0.5/32
 299888      172.168.1.0/24
 299888      172.168.2.0/24

Output label database, 17.0.0.1:0--17.0.0.3:0
Labels advertised: 7
  Label     Prefix
      3      17.0.0.1/32
 299904      17.0.0.2/32
 299776      17.0.0.3/32
 299872      17.0.0.4/32
 299952      17.0.0.5/32
 299968      172.168.1.0/24
 299920      172.168.2.0/24

root@PE1# run show route table mpls.0 label 299920 extensive 

299920 (1 entry, 1 announced)
TSI:
KRT in-kernel 299920 /52 -> {Swap 299888}
        *LDP    Preference: 9
                Next hop type: Router, Next hop index: 614
                Address: 0x7bbece4
                Next-hop reference count: 2, key opaque handle: 0x0, non-key opaque handle: 0x0
                Kernel Table Id: 0
                Next hop: 17.8.1.2 via ge-0/0/2.0, selected
                Label operation: Swap 299888
                Load balance label: Label 299888: None; 
                Label element ptr: 0x9f65888
                Label parent element ptr: 0x0
                Label element references: 1
                Label element child references: 0
                Label element lsp id: 0
                Session Id: 320
                State: <Active Int>
                Age: 1:29       Metric: 1 
                Validation State: unverified 
                Task: LDP
                Announcement bits (1): 1-KRT 
                AS path: I 
                Prefixes bound to route: 172.168.2.0/24
                Thread: junos-main 

root@PE1# run show route table mpls.0 label 299952 extensive 

299952 (1 entry, 1 announced)
TSI:
KRT in-kernel 299952 /52 -> {Swap 299888}
        *LDP    Preference: 9
                Next hop type: Router, Next hop index: 613
                Address: 0x7bbec04
                Next-hop reference count: 2, key opaque handle: 0x0, non-key opaque handle: 0x0
                Kernel Table Id: 0
                Next hop: 17.8.1.2 via ge-0/0/2.0, selected
                Label operation: Swap 299888
                Load balance label: Label 299888: None; 
                Label element ptr: 0x9f64eb0
                Label parent element ptr: 0x0
                Label element references: 1
                Label element child references: 0
                Label element lsp id: 0
                Session Id: 320
                State: <Active Int>
                Age: 1:29       Metric: 1 
                Validation State: unverified 
                Task: LDP               
                Announcement bits (1): 1-KRT 
                AS path: I 
                Prefixes bound to route: 17.0.0.5/32
                Thread: junos-main 

root@PE1# run show route table mpls.0 label 299968 extensive 

299968 (1 entry, 1 announced)
TSI:
KRT in-kernel 299968 /52 -> {Swap 299888}
        *LDP    Preference: 9
                Next hop type: Router, Next hop index: 619
                Address: 0x7bbeff4
                Next-hop reference count: 2, key opaque handle: 0x0, non-key opaque handle: 0x0
                Kernel Table Id: 0
                Next hop: 17.8.1.2 via ge-0/0/2.0, selected
                Label operation: Swap 299888
                Load balance label: Label 299888: None; 
                Label element ptr: 0x9f65d10
                Label parent element ptr: 0x0
                Label element references: 1
                Label element child references: 0
                Label element lsp id: 0
                Session Id: 320
                State: <Active Int>
                Age: 1:29       Metric: 1 
                Validation State: unverified 
                Task: LDP
                Announcement bits (1): 1-KRT 
                AS path: I 
                Prefixes bound to route: 172.168.1.0/24
                Thread: junos-main 

The use of the deaggregate statement in LDP is a standard practice that we recommend for LDP deployments.. Deaggregating a FEC allows the resulting multiple LSPs to be distributed across multiple equal-cost paths and distributes LSPs across the multiple next hops on the egress segments but installs only one next hop per LSP.

Note: Deaggregation only happens on this router (local significance knob).


External Resources:


Leave a Reply

Your email address will not be published. Required fields are marked *