Files
isp-backbone-course/modules/01-isis.md

145 lines
5.1 KiB
Markdown
Raw Normal View History

# Module 1: The Underlay — IS-IS
> **Course**: [ISP Backbone Lab Course](../README.md)
> **Next**: [Module 2: MPLS](02-mpls.md)
---
## Network Diagram
![IS-IS Level 2 Topology](../diagrams/Module1_ISIS_Topology.png)
*IS-IS Level 2 domain — all P and PE routers with NET addresses and link subnets*
---
## Why IS-IS and Not OSPF?
Every major ISP on the planet runs IS-IS as their IGP (Interior Gateway Protocol). Here's why:
1. **IS-IS runs on Layer 2** — it doesn't need IP to function. OSPF runs on top of IP. This means IS-IS is more resilient; if your IP config is broken, IS-IS still forms adjacencies.
2. **Protocol-agnostic** — IS-IS carried IPv4, IPv6, and MPLS labels long before OSPF could. It was designed to carry *any* protocol (it originally carried CLNS).
3. **Scales better** — IS-IS uses a flat TLV (Type-Length-Value) structure, making it trivially extensible. Adding Segment Routing support to IS-IS was easy. Adding it to OSPF required new LSA types and was messy.
4. **Faster convergence** — IS-IS partial route calculations (PRC) are more efficient than OSPF's.
5. **Convention** — When everyone uses IS-IS, interop is easier. It's the industry standard for SP networks.
## IS-IS Key Concepts
**Levels:**
- **Level 1 (L1)** = Intra-area routing (like OSPF's intra-area routes)
- **Level 2 (L2)** = Inter-area / backbone routing (like OSPF Area 0)
- **Level 1-2** = A router that participates in both (most PE routers)
For our ISP: **Everything runs Level 2 only.** This is standard practice in SP networks. We're one big backbone — no need for L1 areas. Keeps it simple and fast.
**NET (Network Entity Title):**
This is IS-IS's address format. It looks weird but it's simple:
```
49.0001.0000.0000.0001.00
│ │ │ │
│ │ └──────────────┘── System ID (unique per router, often based on loopback IP)
│ └── Area ID
└── AFI (49 = private, always use this in labs)
```
**Metric:**
IS-IS uses a flat metric (default: 10 on every link). We'll use **wide metrics** (mandatory for Segment Routing) and set costs based on link speed to influence traffic paths.
## Lab 1 Config: IS-IS on the Core
**Goal:** Full IS-IS adjacency across all P and PE routers. Every router can ping every other router's loopback.
**Addressing Plan:**
| Router | Loopback0 | IS-IS NET | Role |
|--------|-----------|-----------|------|
| P1 | 10.0.0.1/32 | 49.0001.0000.0000.0001.00 | Core P |
| P2 | 10.0.0.2/32 | 49.0001.0000.0000.0002.00 | Core P |
| P3 | 10.0.0.3/32 | 49.0001.0000.0000.0003.00 | Core P |
| P4 | 10.0.0.4/32 | 49.0001.0000.0000.0004.00 | Core P |
| P-CORE | 10.0.0.5/32 | 49.0001.0000.0000.0005.00 | Core P / RR |
| PE-EDGE1 | 10.0.0.11/32 | 49.0001.0000.0000.0011.00 | PE (AS65000 border) |
| PE-EDGE2 | 10.0.0.12/32 | 49.0001.0000.0000.0012.00 | PE (AS65000 cust) |
| PE-EDGE3 | 10.0.0.13/32 | 49.0001.0000.0000.0013.00 | PE (AS65100 border) |
| PE-EDGE4 | 10.0.0.14/32 | 49.0001.0000.0000.0014.00 | PE (AS65100 cust) |
**Link Addressing (point-to-point, /30s):**
| Link | Subnet | Router A IP | Router B IP |
|------|--------|-------------|-------------|
| P1 — PE-EDGE1 | 10.1.1.0/30 | .1 | .2 |
| P1 — P-CORE | 10.1.1.4/30 | .5 | .6 |
| P1 — P2 | 10.1.1.8/30 | .9 | .10 |
| P2 — PE-EDGE2 | 10.1.1.12/30 | .13 | .14 |
| P2 — P-CORE | 10.1.1.16/30 | .17 | .18 |
| P3 — PE-EDGE3 | 10.1.1.20/30 | .21 | .22 |
| P3 — P-CORE | 10.1.1.24/30 | .25 | .26 |
| P3 — P4 | 10.1.1.28/30 | .29 | .30 |
| P4 — PE-EDGE4 | 10.1.1.32/30 | .33 | .34 |
| P4 — P-CORE | 10.1.1.36/30 | .37 | .38 |
| PE-EDGE1 — IXP | 172.16.0.0/24 | .1 | — |
| PE-EDGE3 — IXP | 172.16.0.0/24 | .3 | — |
**Sample Config — P1 (IOS-XE / IOSv):**
```
hostname P1
!
interface Loopback0
ip address 10.0.0.1 255.255.255.255
ip router isis YOURSP
!
interface GigabitEthernet0/1
description TO PE-EDGE1
ip address 10.1.1.1 255.255.255.252
ip router isis YOURSP
isis network point-to-point
isis metric 10
no shutdown
!
interface GigabitEthernet0/2
description TO P-CORE
ip address 10.1.1.5 255.255.255.252
ip router isis YOURSP
isis network point-to-point
isis metric 10
no shutdown
!
interface GigabitEthernet0/3
description TO P2
ip address 10.1.1.9 255.255.255.252
ip router isis YOURSP
isis network point-to-point
isis metric 10
no shutdown
!
router isis YOURSP
net 49.0001.0000.0000.0001.00
is-type level-2-only
metric-style wide
log-adjacency-changes
passive-interface Loopback0
```
## Verification Commands
```
show isis neighbors ! Are adjacencies UP?
show isis database detail ! What LSPs do we have?
show ip route isis ! Are all loopbacks in the table?
ping 10.0.0.5 source 10.0.0.1 ! Can P1 reach P-CORE?
show isis topology ! Visual of the IS-IS graph
```
## Understanding Check
Before moving on, you should be able to answer:
1. Why does the ISP use Level 2 only?
2. What's the System ID in the NET, and why do we derive it from the loopback?
3. Why `isis network point-to-point` on every link?
4. What happens if you forget `metric-style wide`? (Hint: Segment Routing won't work)
---
> **Next Module**: [Module 2: MPLS — Labeling the Backbone →](02-mpls.md)