My Junos versus Cisco IOS: Explicit versus Implicit received a huge amount of helpful comments, some of them slightly philosophical, others highly practical – from using interfaces all combined with interface disable in routing protocol configuration, to using configuration groups (more about that fantastic concept in another post).
However, understanding what’s going on is not the same as being able to explain it in one sentence ... and Dan (@jonahsfo) Backman beautifully nailed that one.
We had a lengthy chat focused on Junos MPLS implementation (yet another blog post) and stumbled across my interfaces-and-protocols confusion. He started explaining how the interface configuration actually ties in with Ethertypes accepted through that interface and per-protocol forwarding tables (actually Radix trees) and then offered the following explanation ...
You know, you configure the data-plane functionality within the interfaces and control-plane functionality within the protocols.
... and all of a sudden, it all made perfect sense:
- Control plane protocols using in-band communication can receive network-layer packets only if the data plane receives them, figures out they were sent to the local node, and forwards them to the control plane. Explains why you need to configure family iso on an interface before you add that same interface to the IS-IS routing process.
- Control plane functionality makes no sense if there’s no data plane forwarding structure to receive the results. Explains why LDP refuses to start on an interface lacking family mpls configuration.
If only someone would take those wise words and add them to Junos documentation ... adding proper error messaging when there’s a control/data plane configuration mismatch would be almost too good to hope for ;)
The only reason I learned the marginal bits & pieces I know about Junos is because Juniper kindly provided me with free access to Junosphere environment (thanks to @abnerg) ... but I was not compensated for my blog posts, or asked to write about Junos or Junosphere.