The MPLS WG Archive[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index][Thread Index][Author Index][Subject Index] LDP - question about partially setup LSPs
Here's a hypothetical network: A ----- B ----- C The network is running LDP and is configured for unordered, downstream unsolicited label distribution. Assume that the IGP knows about one prefix, which is reachable through router C. Suppose now, that B sends out a label mapping for this prefix, and C has not yet sent out its label mapping. A, since it has received a label mapping, decides to start labelling traffic for this prefix, and forwards it on to B. B now receives this traffic, but does not have a label mapping for the FEC. What should it do? I would assume, based on section 3.22 of RFC 3031 that router B should discard these packets until it receives a label mapping from C. A coworker here believes that router B should pop the label stack and forward the unlabeled packet based on its routing tables. He claims that section 3.22 doesn't really apply. His rationale is that: - We can assume no routing loops, because the LSP from ingress to this point is following the same IGP shortest path that it would be forwarding along. If there's a loop in the IGP, it will still be there after receiving a label mapping. - We know we'll be able to forwrad the packet based on its IP header, because router A used that same header against the same IGP tables when it determined the initial label for the packet. - C may (for some reason) choose to never send a label mapping for the prefix. Since the network is downstream unsolicited, it may never receive a request. It wouldn't make sense for this legal scenario to result in a black hole. I counter his arguments by claiming that: - We don't know there won't be routing loops. The IGP may not yet have converged to a stable state. When the last label mapping message is sent, the loop detection features of LDP (if turned on, of course) will detect it and prevent any traffic from flowing until the IGP stabilizes. - We can't assume that B has the same routing table that A and C has. If A and C are border routers, they may be running an EGP (like BGP) and know about far more prefixes than a core router, which would only be running an IGP (like OSPF). The FEC for the LSP may be one of C's addresses, and the packet destination may be an address many hops beyond C. B does not necessarily have any clue how to get to the destination address in the absence of the LSP. - C will eventually send a label mapping for everything in its routing table. It would be a broken implementation for it to arbitrarily choose to not map a prefix without deliberate operator intervention. If an operator chooses to configure this, then he probably intends to create a black hole. If he really wants the label to be popped, he can send a NULL label mapping an explicitly request it. So, which of us is correct here? -- David
|
|