CafeTeleNetwork Foundations MEFNF-700 Enroll now ↗
Course/Day 1/IP Foundations & Layer 3 Routing
01
1
Day One · The MEF-NF IP/WAN prerequisite

IP Foundations & Layer 3 Routing

Understand the TCP/IP model and IP addressing, then configure and verify Layer 3 routing — static and OSPF — in an emulated network. Everything above this layer (SDN, NFV, MEF services) assumes you own it.

Day objective — design an IP addressing plan with VLSM, understand longest-prefix-match forwarding, and bring up single-area OSPF across a 3-router network. Pick a sub-topic on the left — it opens here as its own panel.

1.1

TCP/IP Model & Encapsulation

The four-layer TCP/IP model is the operating map of every network you will touch this week. Each layer hands a PDU to the one below, which wraps it in its own header — encapsulation — until bits hit the wire.

Why this matters in three hours — every OSPF Hello you capture in today's lab is a live instance of this diagram: an OSPF message riding directly inside an IP header (source = your VLSM plan), wrapped in an Ethernet frame to 01:00:5e:00:00:05 (the L2 multicast MAC for 224.0.0.5). If you can't read this stack, you can't read the Wireshark capture in Lab 1 step 8.

Layered model — TCP/IP vs OSI, and where the week's tech livesreference view
maps to
OSI 7-layer
7 Application
6 Presentation
5 Session
4 Transport
3 Network
2 Data Link
1 Physical
TCP/IP L4
Application
HTTP · DNS · APIs
TCP/IP L3
Transport
TCP · UDP · ports
TCP/IP L2
Internet
IPv4 · IPv6 · routing
TCP/IP L1
Network Access
Ethernet · MAC · PHY
this course
LSO APIs · Sonata
Day 4 — service orchestration
this course
TCP/UDP · sockets
Day 1 — transport context
this course
IP plans · OSPF (proto 89) · IP-VPN
Day 1 + MEF 61.1 L3 services
this course
Carrier Ethernet
Day 3 — E-Line/E-LAN/E-Tree
why two models
OSI = vocabulary, TCP/IP = reality
Engineers say "L2 service" / "L3 service" using OSI numbers, but the protocols deployed are the TCP/IP suite. MEF service definitions rely on exactly this distinction.
layer mapping the layer this day owns
Encapsulation → wire → decapsulation · the full round trip
SENDER · encapsulate ↓
L4ApplicationHTTP · builds data
L3Transport+TCP/UDP · ports
L2Internet+IP · proto · TTL
L1Network Access+Eth · +FCS
RECEIVER · decapsulate ↑
L4Applicationreads data
L3Transportport → socket
L2InternetProtocol demux
L1Network AccessFCS · EtherType
the medium — bits · +preamble · +IFG
PDU:
Pick HTTPS, DNS or OSPF and press ▶ Run. Watch the payload gain a header at each layer descending the sender (building the frame), cross the wire, then get stripped layer-by-layer as the receiver de-multiplexes it back up — FCS → EtherType → Protocol → port. OSPF reveals the "no transport" path.
On-the-wire byte map — click a field for its size, offset & captured value
Click any field above — this is the exact byte layout Wireshark shows for the frame the engine just built.
PDU chain + demultiplexing keys — how the receiver walks back UP the stack
LayerPDU nameHeader added (min)Demux key the receiver readsIn today's OSPF capture
Applicationdataapp-definedOSPF Hello / DBD / LSU message
Transportsegment (TCP) · datagram (UDP)20 B TCP · 8 B UDPDestination portskipped entirely — OSPF uses no transport layer
Internetpacket20 B IPv4 (no options)Protocol field: 6=TCP · 17=UDP · 89=OSPF · 1=ICMPProtocol 89, dst 224.0.0.5, TTL 1
Network Accessframe14 B header + 4 B FCS trailerEtherType: 0x0800=IPv4 · 0x86DD=IPv6 · 0x8100=802.1Q tagdst MAC 01:00:5e:00:00:05
Wirebits8 B preamble+SFD, 12 B IFG (never captured)invisible to Wireshark
Demux engine — fire a packet, watch the receiver decide
0x0800 0x86DD proto 6 + port proto 89
wire
Frame arrives
preamble locks clock
NIC
FCS check
bad CRC = silent drop
demux ①
EtherType?
strip 14 B header
demux ②
IPv4 · Protocol?
strip 20 B header
IPv6 stack
Next Header chain
NDP · apps
demux ③
TCP → port 443
socket → application
no transport!
OSPF process
proto 89 · no port exists
[demux] This is the PDU table above, running. Each hop UP the stack strips one header and reads one key: FCS → EtherType → Protocol → port. Fire ② to see why OSPF never reaches a port lookup.
Frame anatomy & the real overhead math

Ethernet II costs 14 B of header (6 dst MAC + 6 src MAC + 2 EtherType) plus a 4 B FCS trailer — 18 B of frame overhead total, but never call it an "18 B header". Stack it up:

headers before 1 B of data = 20 (IP) + 20 (TCP) + 14 (Eth) + 4 (FCS) = 58 Bmin Ethernet payload = 46 B → a 40 B TCP ACK gets +6 B padding (min frame 64 B)true wire cost of that ACK = 64 + 8 preamble/SFD + 12 IFG = 84 B
0 B an empty TCP ACK, byte by byte

Zero application bytes anywhere in that bar — 84 B of pure protocol machinery. PRE/IFG never appear in Wireshark; PAD exists because the minimum Ethernet payload is 46 B.

Same math drives throughput engineering: on a 1500 B MTU, MSS = 1500 − 40 = 1460 B, so max TCP efficiency = 1460 ÷ 1538 wire-bytes ≈ 94.9% — before a single retransmission. Every "why is my iperf below line rate?" ticket starts here.

Footnote for the "IP addresses stay constant" rule: that holds for unicast forwarding without NAT — true everywhere inside your Lab 1 OSPF domain, not guaranteed once traffic crosses an Internet edge.

89
Where does OSPF itself sit? — OSPF is IP protocol 89: it rides directly inside the IP header with no TCP or UDP segment — which is why OSPF has no port number and why the Wireshark filter is just ospf. Skipping TCP means OSPF must supply its own reliability: DBD sequence numbers, LSR retransmission and explicit LSAck packets replace TCP's ACK machinery. Compare: RIP=UDP 520, BGP=TCP 179, OSPF=neither.
Three frames, one packet — watch the headers at every hop
LIVE HEADERS Eth: — → — IP: 10.0.1.11 → 172.16.40.7 TTL —
frame #1 frame #2 frame #3 Host A10.0.1.11 · MAC aa R1strips + rebuilds L2 R2strips + rebuilds L2 Server172.16.40.7 · MAC sv
[hop-by-hop] The Ethernet header lives for exactly one link; the IP header survives the whole journey. Press ▶ and watch the blue chip change at every router while the pink chip never does.
  • Layered model vs OSI — TCP/IP collapses OSI 5–7 into Application and OSI 1–2 into Network Access; the middle layers map one-to-one
  • Encapsulation — each layer adds its own header (Ethernet also appends the FCS trailer); the receiver strips them in reverse (de-encapsulation), demuxing on EtherType → Protocol → port
  • PDU names — data → segment/datagrampacketframe → bits (the #1 interview micro-question)
  • Header cost — 20 B IP + 20 B TCP + 14 B Eth header + 4 B FCS = 58 B before one byte of data; 46 B minimum payload padding and 20 B of preamble/IFG raise the true wire cost
  • Not everything uses transport — OSPF (proto 89) and ICMP (proto 1) live directly on IP; port-based thinking fails for both
Why MEF cares — a Carrier Ethernet service (Day 3) forwards frames and never inspects the IP packet inside; an IP-VPN service (MEF 61.1 IP Service Attributes) forwards packets and participates in routing. Which header the provider reads defines the whole service taxonomy.
60-second interview drill — click a question to reveal the expert answer
Q1 · What is the PDU at the Transport layer for UDP vs TCP?
Q2 · Why does OSPF have no port number?
Q3 · At a router hop, which header is rewritten and which stays constant?
Q4 · Minimum overhead for a TCP/IPv4/Ethernet II frame carrying 0 B of payload?
1.2

Layer 2 vs Layer 3

Switching moves frames inside a broadcast domain using MAC addresses; routing moves packets between networks using IP. ARP and the default gateway are the glue where the two meet.

One subnet, one gateway — where L2 stops and L3 beginsforwarding scopes
MAC frames ARP → gateway MAC routed packet
Host A
10.0.1.11/24
MAC aa:…:01 · GW 10.0.1.1
Host B
10.0.1.12/24
same subnet → direct L2
L2 switch
MAC table forwarding
floods unknowns · one broadcast domain
Default gateway
Router 10.0.1.1
rewrites L2 · decrements TTL · routes on IP
Remote network
172.16.40.0/24
different subnet — reachable only via routing
L2 scope (frames, MAC) L3 scope (packets, IP)
ARP — how a host finds the gateway's MAC
1
Destination on another subnet?

Host A ANDs its own mask with the destination IP: 172.16.40.7 ∉ 10.0.1.0/24 → send to default gateway, not directly.

2
ARP request (broadcast)

Who has 10.0.1.1? Tell 10.0.1.11 — an L2 broadcast to ff:ff:ff:ff:ff:ff; every host in the domain receives it.

3
ARP reply (unicast)

The router answers with its MAC. Host A caches it (ARP table) and now frames to the gateway MAC carry packets to the remote IP.

4
Router rewrites, IP survives

At each hop the Ethernet header is replaced and TTL decrements — but source/destination IP stay constant end-to-end. That asymmetry is the essence of L2 vs L3. (Assumes no NAT hop — always true inside your Lab 1 OSPF domain.)

ARP resolution — broadcast question, unicast answer
HOST A · ARP CACHE 10.0.1.1 → incomplete
access link gateway port Host A.11 · needs GW MAC Host B.12 · will ignore Host C.13 · will ignore L2 Switch · one broadcast domainfloods ff:ff:ff:ff:ff:ff out every port Gateway .1MAC 11:…:01
[arp] Host A has the gateway's IP (its default route) but not its MAC — and a frame needs a destination MAC. Press ▶: the question floods to everyone, only the owner answers.
Same job, two machines — click a property, watch L2 and L3 divergethe table below, animated
L2 Switching · frames & MAC
L3 Routing · packets & IP
Layer 2 vs Layer 3 — engineering contrast (quick reference)
PropertyLayer 2 — switchingLayer 3 — routing
AddressMAC 48-bit, flat, burned-inIP 32/128-bit, hierarchical, assigned
Forwarding tableMAC table (learned by source)Routing table (connected · static · dynamic)
Lookup ruleExact match on destination MACLongest-prefix match on destination IP
Unknown destinationFlood out all portsDrop (unless default route exists)
ScopeOne broadcast domain / VLANBetween networks, global
Loop controlSTP (or fabric tech)TTL + routing-protocol logic
MEF service analogE-Line · E-LAN · E-Tree (Day 3)IP-VPN / L3 services · SD-WAN (Days 3–4)
The two lookups, live — exact-match MAC table vs longest-prefix-match routing table
One packet from Host A (10.0.1.11/24) — pick a destination and watch each layer decide
L2 · switch MAC address tableexact match
VLANMAC addressPort
10aa:bb:cc:00:00:11 · Host AGi0/1
10aa:bb:cc:00:00:12 · Host BGi0/2
1011:22:33:00:00:01 · GatewayGi0/24
48-bit destination MAC → one exact row → one port. No "closest" — it either matches or it floods.
L3 · router routing table / FIBlongest-prefix
PrefixNext-hopIfaceProto
0.0.0.0/0203.0.113.1Gi0/0Static
10.0.1.0/24Vlan10Connected
172.16.0.0/1610.0.2.2Gi0/1OSPF
172.16.40.0/2410.0.2.6Gi0/2OSPF
172.16.40.0/2810.0.2.10Gi0/3OSPF
32-bit destination IP → many prefixes can match → the longest (most specific) wins.
[forwarding] A switch does an exact match on a flat 48-bit MAC; a router does a longest-prefix match on a hierarchical 32-bit IP. Pick a destination — watch the MAC table land on one port while the routing table narrows many candidates to the most specific prefix.
The four mechanics — each one animated end-to-end
Core mechanics — pick one, watch it runthe summary below, animated
  • MAC addressing & switching — switches learn source MACs per port and forward on exact destination match▶ replay the full animation ↑
  • IP addressing & routing — routers strip L2, look up the destination IP, re-encapsulate on the egress link▶ replay the full animation ↑
  • ARP — resolves next-hop IP → MAC inside a subnet; gratuitous ARP announces changes▶ replay the full animation ↑
  • Default gateway — the router a host uses for every off-subnet destination▶ replay the full animation ↑
1.3

IPv4 Addressing, Subnetting & VLSM

An IPv4 address is 32 bits split by the mask into network and host. CIDR made the split arbitrary; VLSM lets each subnet take exactly the size it needs — the skill Lab 1 grades you on.

The 32-bit split — drag the mask boundary and watch every number move
/26
octet 1octet 2octet 3octet 4
network
host
Subnet mask
255.255.255.192
Wildcard
0.0.0.63
Block size
64
Usable hosts
62
Network
192.168.10.64
Broadcast
192.168.10.127
Usable range
.65 – .126
Subnets per /24
4

Pink = network bits, grey = host bits. Slide toward /32 and the host space collapses to a single address; slide toward /8 and one network swallows 16 million hosts.

Historic classes (context for CIDR)
ClassFirst octetDefault maskNote
A1–126/8127/8 = loopback
B128–191/16
C192–223/24
D224–239multicast (OSPF uses 224.0.0.5/6)
E240–255experimental
Private ranges — RFC 1918
BlockRangeSize
10.0.0.0/810.0.0.0 – 10.255.255.25516,777,216
172.16.0.0/12172.16.0.0 – 172.31.255.2551,048,576
192.168.0.0/16192.168.0.0 – 192.168.255.25565,536
Private space never routes on the public Internet — NAT translates at the edge. Public = everything else, allocated via RIRs.
Subnetting = borrowing host bits — watch one block halve, then halve again
Borrow-a-bit splitter — 192.168.10.0/24
.0.64.128.192.255
/25prefix
2subnets
126usable / subnet
1host bits borrowed

Each borrowed bit doubles the number of subnets and halves the hosts in each — the exact trade-off you balance when you design a plan. VLSM (below) just applies a different prefix to each branch instead of one uniform split.

VLSM address-plan designer — the Lab 1 planning tool live

Two /30 point-to-point links (HQ↔B1, HQ↔B2) are added automatically — exactly the Lab 1 topology. Allocation is largest-first so every subnet lands on its natural boundary.

From address plan to live network — watch the /24 become a routed topology
VLSM → topology · the Lab 1 network, wired
192.168.10.0/24256 addresses · the pool R-HQ · LAN.0/25 · 126 hosts .10.20 R-B2 · LAN.192/27 · 30 hosts R-B1 · LAN.128/26 · 62 hosts .130 .224/30 .228/30
[topology] This is your VLSM plan as a real network. Carve the /24 to allocate the five subnets, then send a packet within a subnet vs between subnets to see exactly why the split matters.
  • CIDR notation — RFC 4632 killed classes: /26 means "26 network bits", routing aggregates on any boundary
  • Subnetting a block — borrowing host bits doubles subnets and halves hosts per subnet each time
  • VLSM — different masks inside one block; allocate largest requirement first to avoid overlap
  • Efficient plan design — reserve growth headroom, keep p2p links in /30 (or /31, RFC 3021), summarize per site
1.4

IPv6 Essentials

128-bit addresses written as eight hextets, a fixed /64 host boundary in practice, and no broadcast at all — IPv6 is not "IPv4 with more digits", it changes the neighbor-discovery and planning model.

Address explorer — type any IPv6 address and watch it compress & classify
◂ first 64 bits · prefix (routing + subnet)last 64 bits · interface ID
/64 prefix · 2⁶⁴ subnets under a /48 = 65,536
interface ID · 2⁶⁴ hosts
Compression — the two rules, applied live
full (128-bit)
rule 1 · drop leading 0s
rule 2 · collapse :: run
2000::/3 GUA fe80::/10 link-local fc00::/7 ULA ff00::/8 multicast ::1 loopback

one /48 site = 216 = 65,536 /64 subnetsa /64 has 264 interface IDs — subnet size is fixed, planning is by subnet count, not host count
Address types you must recognize on sight
PrefixTypeScope / use
2000::/3Global Unicast (GUA)Internet-routable — the IPv6 "public" space
fe80::/10Link-LocalAuto-configured on every interface; next-hops and OSPFv3/ND run over it; never routed
fc00::/7Unique Local (ULA)Private-like space (in practice fd00::/8)
ff00::/8MulticastReplaces broadcast entirely (e.g. ff02::1 all-nodes, ff02::5 OSPFv3)
::1/128LoopbackSame role as 127.0.0.1
  • Address format — 8 × 16-bit hextets, hex, :: compression once per address
  • Prefix lengths — sites get /48s, LANs are /64s, p2p links commonly /127 (RFC 6164)
  • Link-local vs Global Unicast — every interface always has an fe80:: address; GUAs come from RA/SLAAC, DHCPv6, or static
  • Migration rationale — IPv4 exhaustion (RIR pools empty), NAT complexity/cost, end-to-end addressing for IoT/5G scale; dual-stack is the dominant transition strategy
i
Neighbor Discovery replaces ARP — IPv6 resolves neighbors with NDP (ICMPv6 NS/NA over multicast), and hosts can self-configure with SLAAC from Router Advertisements. Broadcast storms are structurally impossible: there is no broadcast.
1.5

Transport & WAN Context

TCP and UDP decide how traffic behaves end-to-end — which is exactly what SD-WAN application policies (Day 4) match on. Ports + IPs form the socket 5-tuple that classifies every flow.

TCP vs UDP — the trade-off table
PropertyTCPUDP
Connection3-way handshake (SYN → SYN/ACK → ACK)None — fire and forget
ReliabilitySequencing, ACKs, retransmissionNone (application's job)
OrderingGuaranteed in-order deliveryNo ordering
Flow / congestion controlSliding window · AIMD congestion controlNone — constant rate possible
Header20 B minimum8 B fixed
Typical trafficWeb/API (HTTP), file transfer, emailVoice/video (RTP), DNS, QUIC underlay
SD-WAN policy meaningThroughput-sensitive → prefer high-CIR pathLatency/jitter-sensitive → prefer low-delay path
Watch the conversation — TCP's handshake vs UDP's fire-and-forget
Transport behaviour · same two hosts, two protocols
STATE idle
Clientephemeral :52344 Server:443
[transport] TCP connection sets up state before sending and guarantees delivery; UDP datagrams just leave — no setup, no retransmit. Watch both and see why voice picks UDP.
Sockets — the 5-tuple that names a flow
flow = ⟨protocol, src IP, src port, dst IP, dst port⟩

Well-known ports (0–1023) identify services: 80/443 HTTP/HTTPS, 53 DNS, 22 SSH, 179 BGP. Registered (1024–49151) and ephemeral (49152–65535) complete the space. Everything from firewall rules to MEF 70.1 application flows is ultimately a predicate over this 5-tuple (plus, in SD-WAN, application identity).

  • TCP vs UDP — reliability vs immediacy; know the handshake and why voice never uses TCP
  • Ports and sockets — the 5-tuple uniquely names a conversation; NAT rewrites parts of it
  • WANs — sites interconnected over provider services: leased line → MPLS VPN → Carrier Ethernet → broadband/LTE/5G underlays
  • Next Generation Networks — the shift this course tracks: hardware-defined, manually-provisioned WANs → software-driven, API-ordered NaaS (Days 2–4)
!
Exam trap — "UDP is unreliable" does not mean "bad": RTP voice would rather lose a packet than wait for a retransmission. Match transport behavior to application need — that's also the core idea of SD-WAN policy.
1.6

How Routing Works

A router is a database machine: the RIB holds every candidate route, administrative distance arbitrates between sources, metric arbitrates within a source, and longest-prefix match arbitrates at forwarding time.

Longest-prefix match — try it live
LPM visualizer — which route wins? live

The FIB below is a typical enterprise table. The most-specific (longest) matching prefix always wins — regardless of the order the routes were learned, their protocol, or their metric.

match ⇔ (dst AND mask) = network
Interactive routing playground — drag the routers, the wires follow, watch the packet re-route
Live topology · grab any node, then click a source and a destination
drag routers to rearrange · click A then D to route
zoom
[playground] This is a real React-Flow canvas: every node is draggable and every wire re-routes live. A router forwards on whatever topology exists right now — drag R4 across the canvas and the path bends with it; cut a link on the path and it reroutes.
Administrative distance (FRR/Cisco defaults)
Route sourceADTrust logic
Connected0It's my own interface
Static1An engineer said so
eBGP20External policy routing
OSPF110Link-state, full topology view
IS-IS115Link-state (carrier IGP)
RIP120Legacy distance-vector
iBGP200Internal BGP, least preferred
The 3-question lookup
1
Which routes match? (LPM)

All prefixes containing the destination — the longest one is used for forwarding.

2
Same prefix from two protocols?

Lower AD wins the RIB slot (static /24 beats OSPF /24).

3
Same prefix, same protocol?

Lower metric wins; equal metrics → ECMP load-sharing.

FRRouting — reading the RIB (vtysh)R-HQ# show ip route Codes: K - kernel, C - connected, S - static, O - OSPF, B - BGP * - FIB route, > - selected route O>* 10.20.30.0/24 [110/20] via 10.0.12.2, eth1, 00:12:40 ← [AD/metric] C>* 10.0.12.0/30 is directly connected, eth1 S>* 0.0.0.0/0 [1/0] via 203.0.113.1, eth0 ← default route
  • Routing tables — RIB (all candidates) vs FIB (winners, programmed into forwarding)
  • Longest-prefix match — /26 beats /24 beats /8 beats /0, always
  • Connected vs learned routes — connected appear when an interface gets an IP + comes up; learned arrive via static config or protocols
  • AD and metrics — AD compares protocols, metric compares paths within one protocol
1.7

Static & Dynamic Routing

Static routes are deterministic and silent; dynamic protocols discover, converge and heal. Real networks blend both — statics at the edge, an IGP in the core, BGP between domains.

FRRouting — static & default routes (Lab 1, step 3)R-HQ(config)# ip route 192.168.10.128/26 10.0.12.2 ! Branch-1 LAN via p2p link R-HQ(config)# ip route 192.168.10.192/27 10.0.13.2 ! Branch-2 LAN R-B1(config)# ip route 0.0.0.0/0 10.0.12.1 ! default: everything → HQ R-B1(config)# ip route 0.0.0.0/0 10.0.99.1 250 ! floating static (backup, AD 250)
When static is right — and when it breaks
Use caseStatic ✓Why / limit
Stub site with one uplinkidealOne default route; nothing to converge
Deterministic security pathidealNo protocol chatter to attack or leak
Provider handoff (L3 UNI)commonStatic or BGP at the MEF IP UNI (Day 3/4)
Meshed multi-site corebreaksn(n−1)/2 links × manual routes = unmaintainable; no failover
Any topology that changesbreaksStatic routes don't know the link died
Dynamic protocol families
Distance-vector vs link-state vs path-vector
ProtocolFamilyAlgorithmMetricWhere it lives
RIPDistance-vectorBellman-Ford — "routing by rumor"Hop count (max 15)Legacy / tiny networks
OSPFLink-stateDijkstra SPF on a shared map (LSDB)Cost (bandwidth-derived)Enterprise IGP — this course
IS-ISLink-stateDijkstra SPF (CLNS heritage)Configured metricCarrier / ISP cores
BGPPath-vectorPolicy over AS-pathAttributes (LOCAL_PREF, AS-path…)Between providers — the MEF inter-provider context
How each family actually learns a route — three mechanisms, animated
Protocol families · watch each one discover & converge
The convergence race — cut a link and watch static blackhole while OSPF heals
Static vs Dynamic · same failure, two outcomes
STATIC ROUTE primary path armed A · sourcestatic → via B B · primary C · backup D · dest OSPF (link-state) primary path · cost 20 A · sourceOSPF · SPF B · primary C · backup D · dest
[convergence] Both networks have a primary path A→B→D and an unused backup A→C→D. Send traffic, then cut A–B and watch: the static route keeps aiming at a dead link; OSPF re-runs SPF and heals onto the backup.
  • Static routes — explicit next-hop or exit interface; AD 1; floating statics as backup with raised AD▶ see the convergence race ↑
  • Default routes0.0.0.0/0, the shortest possible prefix: matches everything, loses to everything more specific▶ replay a routing demo ↑
  • Distance-vector vs link-state — neighbors' conclusions vs a full shared topology map▶ watch both mechanisms ↑
  • RIP, OSPF, IS-IS, BGP overview — know each family's algorithm, metric and habitat for the exam▶ open the family explorer ↑
1.8

OSPF Deep-Dive

OSPFv2 (RFC 2328) floods link-state advertisements so every router computes shortest paths on an identical map. You will watch every step of this happen in Wireshark during Lab 1.

Adjacency — the neighbor state machine you'll capture
1
Down → Init

Hellos to 224.0.0.5 (IP protocol 89) every 10 s on broadcast media; dead interval 40 s. A router that sees a Hello enters Init.

2
2-Way — and DR/BDR election

Both routers see themselves in each other's Hello. On a LAN the highest priority (tie-break: highest router-ID) becomes DR; the DR pairs with everyone, others stay 2-Way with each other. Hello fields must match: area, timers, subnet, authentication.

3
ExStart → Exchange

Master/slave negotiation, then Database Description packets summarize each LSDB.

4
Loading → Full

Missing LSAs requested (LSR) and flooded (LSU, acknowledged by LSAck). At Full, both LSDBs are identical — adjacency complete.

5
SPF run

Every router runs Dijkstra over the LSDB, taking itself as root → shortest-path tree → routes installed with AD 110.

Adjacency FSM — the exact packets you'll capture on a /30 p2p link
NEIGHBOR STATE R1 Down R2 Down step 0 / 7
10.0.12.0/30 · area 0 R1 · RID 1.1.1.1eth1 10.0.12.1 R2 · RID 2.2.2.2eth1 10.0.12.2
[FSM] A point-to-point OSPF link — no DR/BDR election (that's a LAN thing). Watch seven packet exchanges walk both routers Down → Init → 2-Way → ExStart → Exchange → Loading → Full. Auto-play runs the whole sequence, or Step one packet at a time.
DR/BDR election — why a shared LAN elects a "designated" router
Multi-access segment · 4 routers, one election
multi-access segment · 10.0.20.0/24 R1 · pri 1RID 1.1.1.1 R2 · pri 1RID 2.2.2.2 R3 · pri 10RID 3.3.3.3 R4 · pri 5RID 4.4.4.4
[DR/BDR] On a shared LAN, letting every router form a full adjacency with every other explodes to n(n−1)/2 relationships. OSPF elects a Designated Router so everyone syncs through it instead. Run the election.
LSA types (know 1–5 cold)
LSANameScope
1Router LSAEvery router, intra-area
2Network LSAFrom the DR, intra-area
3Summary LSAABR advertises inter-area prefixes
4ASBR-SummaryWhere the ASBR is
5AS-ExternalRedistributed (e.g. default) routes
7NSSA-ExternalLSA-5 stand-in inside an NSSA
OSPF cost engine live
interface cost1
formulamax(1, ⌊ref ÷ bw⌋)

LSA flooding explorer — where each LSA type is born and exactly how far it floods
Multi-area OSPF · click an LSA type to watch its scopescope
Area 1 Area 0 · backbone Area 2 external AS R1internal R2internal ABR1A1 ↔ A0 ABR2A0 ↔ A2 ASBRredistributes R3internal ext 7→5 convert
FRRouting — single-area OSPF (Lab 1, step 5)R-HQ(config)# router ospf R-HQ(config-router)# ospf router-id 1.1.1.1 R-HQ(config-router)# network 192.168.10.0/25 area 0 R-HQ(config-router)# network 10.0.12.0/30 area 0 R-HQ(config-router)# auto-cost reference-bandwidth 10000 ! set EVERYWHERE or costs skew R-HQ# show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 2.2.2.2 1 Full/DR 36.502s 10.0.12.2 eth1:10.0.12.1
  • Areas — area 0 is the backbone; ABRs summarize between areas; this course deploys single-area (area 0)▶ open the LSA explorer ↑
  • Neighbors and adjacencies — Hello matching rules, DR/BDR on LANs, the 7-state FSM to Full▶ run the DR/BDR election ↑
  • LSAs and SPF — typed advertisements build the LSDB; Dijkstra computes the tree; partial/incremental SPF limits churn▶ open the LSA explorer ↑
  • Single-area deployment — router-id, network statements, passive interfaces on LANs, consistent reference bandwidth▶ tune the cost engine ↑
!
Field gotcha — with the default reference bandwidth of 100 Mb/s, a 1G and a 100G link both cost 1 — OSPF sees them as equal. Raise auto-cost reference-bandwidth (identically on every router) before trusting any path decision. Verify in the calculator above.
1.9

Routing into MEF Services & Troubleshooting

In a Layer 3 connectivity service the provider's network is your WAN router. Where your routes meet theirs — and how you prove reachability when they don't — closes Day 1.

IP routing in an L3 connectivity service + inter-provider handoverMEF 61.1 view
IP UNI · static/BGP IPVC ENNI handover
Subscriber CE
Your router
advertises LAN routes at the UNI
Provider PE
L3 service edge
learns/filters routes · provider handles transit routing
Provider core
IP-VPN backbone
invisible to subscriber
Partner provider
Off-net reach via ENNI
ordered inter-provider through LSO Sonata (Day 4)
route-exchange points provider-internalDay 3 formalizes UNI/ENNI; Day 4 automates the handover with Sonata.
The Day-1 troubleshooting kit
ping · traceroute · table inspection — what each really tests
ToolMechanismProvesSilent failure mode
pingICMP Echo Request/ReplyBidirectional L3 reachability + RTTICMP filtered ≠ host down
tracerouteTTL 1,2,3… → ICMP Time-Exceeded per hop (UDP high ports on Linux, ICMP on Windows)The forward path, hop by hopAsymmetric return path stays invisible; * * * may be rate-limiting
show ip route / ip route getRIB/FIB queryWhat the router will actually do with a destinationA route can exist while the return route doesn't — always check both ends
The 5-step L3 triage (memorize)1 ping own gateway → local subnet + ARP OK? 2 ping far-side p2p address → link routing OK? 3 ping destination → end-to-end forward path? 4 traceroute destination → WHERE does it die? 5 show ip route (both ends!) → forward AND return route present?
  • IP routing in L3 connectivity services — the provider participates in routing; you exchange routes (static or BGP) at the IP UNI
  • Inter-provider handover — off-net sites reached through a partner provider across an ENNI; automated ordering is LSO Sonata's job
  • Ping / traceroute — know the ICMP mechanics, not just the commands
  • Routing-table inspection — most "network down" tickets are a missing return route
LAB

Lab 1 · Subnet an Addressing Plan and Route a Multi-Router Network

Goal — design an IP addressing plan and build Layer 3 reachability across an emulated multi-router topology. Everything from panels 1.1–1.9 gets exercised here.

Lab topology — HQ + two branches on /30 p2p linksGNS3 / Containerlab
10.0.12.0/30 10.0.13.0/30
HQ LAN
.0/25 · 100 hosts
192.168.10.0/25
R-HQ
FRRouting
RID 1.1.1.1
R-B1
Branch 1
RID 2.2.2.2
R-B2
Branch 2
RID 3.3.3.3
B1 LAN
.128/26 · 50 hosts
192.168.10.128/26
B2 LAN
.192/27 · 20 hosts
192.168.10.192/27
/30 p2p links site LANs (VLSM designer output)
Hands-on · Day 1

Lab activities

  1. 1Build the 3-router topology in GNS3 / Containerlab with FRRouting nodes
  2. 2Design & apply the VLSM plan for HQ, Branch 1, Branch 2 (use the designer in panel 1.3 — 100/50/20 hosts from 192.168.10.0/24)
  3. 3Configure static routes (HQ→branch LANs, branch defaults→HQ)
  4. 4Verify connectivity with ping and traceroute from every LAN
  5. 5Replace statics with single-area OSPF (router-ids, network statements, area 0)
  6. 6Observe adjacency formation — watch the FSM reach Full/DR
  7. 7Verify route population: show ip route ospf, note [110/metric]
  8. 8Capture & inspect OSPF Hello and LSA exchanges in Wireshark (filter: ospf) — identify Hello timers, DBD, LSU/LSAck
Deliverables — addressing-plan spreadsheet · working OSPF configuration set · annotated Wireshark capture
GNS3 / ContainerlabFRRouting (FRR)Wireshark + tsharkdraw.ioLibreOffice Calc
Pass criteria — any host in any LAN pings any other LAN; show ip ospf neighbor shows Full on both p2p links; your capture contains at least one full DBD exchange; removing a static route changes nothing (OSPF owns the paths now).
Prove it — the Day-1 mastery quiz (100+ questions, every topic)