Core routing underlay: IS-IS backbone with an OSPF edge
Role in the network
The interior gateway protocol in a carrier network has one job: carry loopback reachability between routers quickly and predictably, so that MPLS label distribution and internal BGP sessions have something stable to run over. It should not carry customer routes, it should converge in tens of milliseconds where the transport allows it, and every adjacency should be authenticated.
This reference uses IS-IS level 2 throughout the core because it scales without area design decisions and is transparent to the address family, and OSPF at the aggregation edge where existing equipment only speaks OSPF. The two are kept separate; controlled redistribution happens in one direction only.
Addressing and identifiers
| Router loopback | 203.0.113.1/32, 2001:db8:113::1/128 |
|---|---|
| IS-IS network entity title | 49.0001.0203.0113.0001.00 |
| Core links | 203.0.113.64/30 and 203.0.113.68/30, point to point |
| OSPF aggregation area | area 0.0.0.10, 203.0.113.128/26 |
Configuration
interfaces {
lo0 {
description "Router ID, IS-IS NET carrier, MPLS LSP endpoint";
unit 0 {
family inet {
address 203.0.113.1/32;
}
family iso {
address 49.0001.0203.0113.0001.00;
}
family inet6 {
address 2001:db8:113::1/128;
}
}
}
et-0/0/0 {
description "Core link to core-rtr-02";
mtu 9192;
unit 0 {
family inet {
address 203.0.113.65/30;
}
family iso;
family inet6 {
address 2001:db8:113:40::1/64;
}
family mpls;
}
}
et-0/0/1 {
description "Core link to core-rtr-03";
mtu 9192;
unit 0 {
family inet {
address 203.0.113.69/30;
}
family iso;
family inet6 {
address 2001:db8:113:44::1/64;
}
family mpls;
}
}
ge-0/0/4 {
description "Aggregation edge, OSPF area 10";
unit 0 {
family inet {
address 203.0.113.129/26;
}
}
}
}
routing-options {
router-id 203.0.113.1;
/* The IGP carries infrastructure only. Customer routes live in BGP. */
autonomous-system 64512;
}
protocols {
isis {
/* Level 2 only: a flat backbone needs no level 1 and no area design. */
level 1 disable;
level 2 {
authentication-key "$9$removed"; /* HMAC over the PDU */
authentication-type hmac-sha-256;
wide-metrics-only; /* RFC 5305 wide metrics */
}
reference-bandwidth 400g;
/* Sub-second detection without waiting for hello timers. */
interface et-0/0/0.0 {
point-to-point;
level 2 metric 100;
bfd-liveness-detection {
minimum-interval 100;
multiplier 3;
}
}
interface et-0/0/1.0 {
point-to-point;
level 2 metric 100;
bfd-liveness-detection {
minimum-interval 100;
multiplier 3;
}
}
interface lo0.0 {
passive;
}
/* Precomputed backup next hop, installed before the SPF runs. */
backup-spf-options {
use-post-convergence-lfa;
per-prefix-calculation;
}
traffic-engineering {
family inet-vpn {
shortcuts;
}
}
}
ospf {
area 0.0.0.10 {
interface ge-0/0/4.0 {
interface-type p2mp;
authentication {
md5 1 key "$9$removed";
}
hello-interval 3;
dead-interval 12;
metric 1000;
}
interface lo0.0 {
passive;
}
}
reference-bandwidth 400g;
export ISIS-TO-OSPF;
}
mpls {
interface et-0/0/0.0;
interface et-0/0/1.0;
}
ldp {
interface et-0/0/0.0;
interface et-0/0/1.0;
interface lo0.0;
/* Do not withdraw labels the instant a link flaps. */
session-protection {
timeout 300;
}
}
bfd {
no-adaptation;
}
}
policy-options {
/* One-way leak: the core is advertised into the OSPF edge, never the
reverse. A two-way redistribution between IGPs is how you build a
routing loop that only appears under failure. */
policy-statement ISIS-TO-OSPF {
term core-loopbacks {
from {
protocol isis;
route-filter 203.0.113.0/24 prefix-length-range /32-/32;
}
then {
metric 2000;
external type 2;
accept;
}
}
term default-deny {
then reject;
}
}
}
Verification
| Command | Expected result |
|---|---|
show isis adjacency |
Both core interfaces Up at level 2. A missing adjacency with a
matching interface list is almost always an authentication type mismatch. |
show isis interface detail |
Level 2 metric 100 on core links, lo0.0 listed as passive. |
show route 203.0.113.2/32 detail |
An active next hop plus a Backup next hop entry, which is the proof
that loop-free alternate protection actually computed a backup. |
show bfd session summary |
Sessions Up with a 300 ms detection time (100 ms interval,
multiplier 3). |
show ldp session |
Operational sessions to each core neighbour; label bindings present for every core loopback. |
show ospf neighbor |
Aggregation neighbours in Full state in area 0.0.0.10. |
Operational notes
- Reference bandwidth. Set it once, network wide, above your fastest interface. Mixed reference bandwidths produce metrics that look right on each router and route traffic the wrong way across the network.
- Wide metrics.
wide-metrics-onlymust be enabled consistently before any metric above 63 is configured, otherwise routers running narrow metrics will ignore the link. - MTU. Core links use 9192 so that a labelled customer frame of
1500 bytes plus two label stack entries still fits without fragmentation. Verify with
ping 203.0.113.2 size 8000 do-not-fragment. - Redistribution direction. The export policy ends in an explicit
reject. Junos applies a default accept in some contexts; writing the deny keeps the intent readable and survives a future edit.
Standards
- ISO/IEC 10589 — Intermediate System to Intermediate System routeing.
- RFC 1195 — Use of OSI IS-IS for routing in TCP/IP environments.
- RFC 5305 — IS-IS extensions for traffic engineering, including wide metrics.
- RFC 5308 — Routing IPv6 with IS-IS.
- RFC 5310 — IS-IS generic cryptographic authentication.
- RFC 5286 — Basic specification for IP fast reroute, loop-free alternates.
- RFC 2328 — OSPF version 2.
- RFC 5880 — Bidirectional Forwarding Detection.
- RFC 5036 — LDP specification.