annotations:
- border_color: '#00000000'
border_style: ''
color: '#000000'
rotation: 0
text_bold: true
text_content: 'CCNA Exam Prep: Back to Networking Basics with Hank Preston and
Patrick Gargano'
text_font: monospace
text_italic: false
text_size: 12
text_unit: pt
thickness: 1
type: text
x1: -438.0
y1: -266.0
z_index: 0
- border_color: '#00000000'
border_style: ''
color: '#000000'
rotation: 0
text_bold: true
text_content: 'Conquering OSPF: Optimize Your Network with OSPF'
text_font: monospace
text_italic: false
text_size: 18
text_unit: pt
thickness: 1
type: text
x1: -438.0
y1: -241.0
z_index: 0
- border_color: '#00000000'
border_style: ''
color: '#000000'
rotation: 0
text_bold: false
text_content: |-
OSPF, or Open Shortest Path First, is a widely deployed standard routing protocol that scales from small "single area"
networks to large global wide area networks. CCNA candidates need to be comfortable configuring and verifying single
area OSPFv2 deployments.
In this lab we will explore:
* Configuring IOS routers to run OSPF and share network information with neighbors
* Configure and verify neighbor adjacency details such as, Router IDs and Timers
* Designated Router/Backup Designated Router
* Sharing a default route with OSPF
text_font: monospace
text_italic: false
text_size: 12
text_unit: pt
thickness: 1
type: text
x1: -437.415294010199
y1: -208.7376460917897
z_index: 0
- border_color: '#808080FF'
border_radius: 0
border_style: ''
color: '#C5EEFF'
thickness: 1
type: rectangle
x1: 49.3683970210723
y1: 48.72779229141973
x2: 630.6316029789275
y2: 167.18451799163688
z_index: 0
- border_color: '#00000000'
border_style: ''
color: '#808080FF'
rotation: 0
text_bold: false
text_content: |-
Building 1 Networks
vl10 users 192.168.11.0/24
vl20 iot 192.168.199.0/24
vl30 security 10.1.1.0/24
vl40 guests 10.11.0.0/20
text_font: monospace
text_italic: false
text_size: 10
text_unit: pt
thickness: 1
type: text
x1: 334.97174787984807
y1: 75.84118114448668
z_index: 2
- border_color: '#D5FFD2'
border_style: ''
color: '#D5FFD2'
thickness: 1
type: ellipse
x1: 97.16925052641605
y1: 287.9891925339368
x2: 38.272718826033774
y2: 35.879856189892564
z_index: 3
- border_color: '#D5FFD2'
border_style: ''
color: '#D5FFD2'
thickness: 1
type: ellipse
x1: 143.61682664305926
y1: 261.2726717190459
x2: 35.204913397244695
y2: 33.16767687685274
z_index: 3
- border_color: '#D5FFD2'
border_style: ''
color: '#D5FFD2'
thickness: 1
type: ellipse
x1: 245.7345239243876
y1: 296.1640163661116
x2: 35.12777245494142
y2: 34.92363470866556
z_index: 3
- border_color: '#D4FFD200'
border_radius: 20
border_style: ''
color: '#D5FFD2'
thickness: 1
type: rectangle
x1: 76.26746981358835
y1: 275.4724513932729
x2: 163.73253018641165
y2: 55.558665018421436
z_index: 4
- border_color: '#D5FFD2'
border_style: ''
color: '#D5FFD2'
thickness: 1
type: ellipse
x1: 202.49992066824285
y1: 261.8532835305447
x2: 39.36374036126641
y2: 37.352572857961945
z_index: 3
- border_color: '#00000000'
border_style: ''
color: '#808080FF'
rotation: 0
text_bold: false
text_content: Building 2
text_font: monospace
text_italic: false
text_size: 12
text_unit: pt
thickness: 1
type: text
x1: 97.45800926863043
y1: 284.96097970934585
z_index: 5
- border_color: '#808080FF'
border_style: ''
color: '#FFFFFFFF'
line_end: null
line_start: null
thickness: 2
type: line
x1: -40.0
y1: 120.0
x2: 80.0
y2: 280.0
z_index: 1
- border_color: '#00000000'
border_style: ''
color: '#808080FF'
rotation: 0
text_bold: false
text_content: 10.11.15.1
text_font: monospace
text_italic: false
text_size: 8
text_unit: pt
thickness: 1
type: text
x1: 209.89880484388777
y1: 204.26761748761922
z_index: 6
- border_color: '#00000000'
border_style: ''
color: '#808080FF'
rotation: 0
text_bold: false
text_content: 192.168.11.101
text_font: monospace
text_italic: false
text_size: 8
text_unit: pt
thickness: 1
type: text
x1: 197.49768726441954
y1: 122.83010690662928
z_index: 6
- border_color: '#808080FF'
border_radius: 0
border_style: ''
color: '#C0C0C0'
thickness: 1
type: rectangle
x1: -309.95355209528157
y1: 31.260753098263688
x2: 296.93966628365354
y2: 256.1832414996226
z_index: 0
- border_color: '#00000000'
border_style: ''
color: '#FFFFFF'
rotation: 0
text_bold: true
text_content: Campus Core
text_font: monospace
text_italic: false
text_size: 14
text_unit: pt
thickness: 1
type: text
x1: -303.7474893399314
y1: 262.2316048585568
z_index: 2
- border_color: '#00000000'
border_style: ''
color: '#2D39C2'
rotation: 0
text_bold: true
text_content: |-
Core Routing
172.20.1.0/24
text_font: monospace
text_italic: false
text_size: 6
text_unit: pt
thickness: 1
type: text
x1: -76.49666902463494
y1: 153.0613194653771
z_index: 6
- border_color: '#00000000'
border_style: ''
color: '#2D39C2'
rotation: 89
text_bold: true
text_content: 172.20.0.0/30
text_font: monospace
text_italic: false
text_size: 4
text_unit: pt
thickness: 1
type: text
x1: -141.35413914042374
y1: 124.37305427271227
z_index: 6
- border_color: '#00000000'
border_style: ''
color: '#F70606'
rotation: 0
text_bold: false
text_content: Primary
text_font: monospace
text_italic: false
text_size: 10
text_unit: pt
thickness: 1
type: text
x1: -188.71318984911622
y1: 43.706313383543275
z_index: 7
- border_color: '#00000000'
border_style: ''
color: '#DD8888'
rotation: 0
text_bold: false
text_content: Backup
text_font: monospace
text_italic: false
text_size: 10
text_unit: pt
thickness: 1
type: text
x1: -182.95464318244893
y1: 241.65323840327255
z_index: 7
- border_color: '#03A717'
border_radius: 5
border_style: 4,2
color: '#FFFFFF00'
thickness: 5
type: rectangle
x1: -168.5
y1: 70.04382553738856
x2: 289.0
y2: 135.0
z_index: 1
- border_color: '#00000000'
border_style: ''
color: '#008821'
rotation: 0
text_bold: true
text_content: OSPF Area 0
text_font: monospace
text_italic: false
text_size: 12
text_unit: pt
thickness: 1
type: text
x1: -40.417540054179206
y1: 80.34477611549127
z_index: 8
nodes:
- boot_disk_size: null
configuration:
- name: ios_config.txt
content: |-
hostname cr-rtr1
!
! In order to avoid entering a configuration dialog
! on boot, please ensure that all ethernet interfaces
! have some ip configuration present here such as the
! example below:
!
interface range Ethernet 0/0 - 3
no ip address
shutdown
!
interface e0/0
description Connection to Internet
ip address dhcp
ip nat outside
no shutdown
exit
interface e0/1
description Connection to cr-rtr2
ip address 172.20.0.1 255.255.255.252
ip nat inside
no shutdown
exit
interface e0/2
description Connection to Campus Core Switch
ip address 172.20.1.1 255.255.255.0
ip nat inside
no shutdown
exit
!
interface loop99
ip address 192.168.200.1 255.255.255.255
no shutdown
exit
!
ip nat inside source list 1 interface Ethernet0/0 overload
!
ip access-list standard 1
10 permit 0.0.0.0 255.255.255.255
!
!
ip route 192.168.11.0 255.255.255.0 172.20.1.11
ip route 192.168.199.0 255.255.255.0 172.20.1.11
ip route 10.1.1.0 255.255.255.0 172.20.1.11
ip route 10.11.0.0 255.255.248.0 172.20.1.11
!
end
cpu_limit: null
cpus: null
data_volume: null
hide_links: false
id: n0
image_definition: null
label: cr-rtr1
node_definition: iol-xe
parameters: {}
ram: null
tags: []
x: -160
y: 80
interfaces:
- id: i0
label: Loopback0
type: loopback
- id: i1
label: Ethernet0/0
slot: 0
type: physical
- id: i2
label: Ethernet0/1
slot: 1
type: physical
- id: i3
label: Ethernet0/2
slot: 2
type: physical
- id: i4
label: Ethernet0/3
slot: 3
type: physical
- boot_disk_size: null
configuration:
- name: ios_config.txt
content: |-
hostname cr-rtr2
!
! In order to avoid entering a configuration dialog
! on boot, please ensure that all ethernet interfaces
! have some ip configuration present here such as the
! example below:
!
interface range Ethernet 0/0 - 3
no ip address
shutdown
!
interface e0/0
description Connection to Internet
ip address dhcp
ip nat outside
no shutdown
exit
interface e0/1
description Connection to cr-rtr1
ip address 172.20.0.2 255.255.255.0
ip nat inside
no shutdown
exit
interface e0/2
description Connection to Campus Core Switch
ip address 172.20.1.2 255.255.255.0
ip nat inside
no shutdown
exit
!
ip nat inside source list 1 interface Ethernet0/0 overload
!
ip access-list standard 1
10 permit 0.0.0.0 255.255.255.255
!
!
ip route 192.168.11.0 255.255.255.0 172.20.1.11
ip route 192.168.199.0 255.255.255.0 172.20.1.11
ip route 10.1.1.0 255.255.255.0 172.20.1.11
ip route 10.11.0.0 255.255.240.0 172.20.1.11
!
! Configure default route through cr-rtr1, backup DHCP to internet
! SLA tracking against reachability to cr-rtr1 Int e0/1 IP setup
! because IOL interface doesn't go "down" when disconnected.
ip sla 1
icmp-echo 172.20.0.1 source-interface Ethernet0/1
threshold 800
timeout 1000
frequency 2
ip sla schedule 1 life forever start-time now
track 1 ip sla 1 reachability
ip route 0.0.0.0 0.0.0.0 172.20.0.1 track 1
!
end
cpu_limit: null
cpus: null
data_volume: null
hide_links: false
id: n1
image_definition: null
label: cr-rtr2
node_definition: iol-xe
parameters: {}
ram: null
tags: []
x: -160
y: 201
interfaces:
- id: i0
label: Loopback0
type: loopback
- id: i1
label: Ethernet0/0
slot: 0
type: physical
- id: i2
label: Ethernet0/1
slot: 1
type: physical
- id: i3
label: Ethernet0/2
slot: 2
type: physical
- id: i4
label: Ethernet0/3
slot: 3
type: physical
- boot_disk_size: null
configuration:
- name: ios_config.txt
content: |-
hostname bld1-sw
!
vtp mode transparent
!
vlan 10
name users
vlan 20
name iot
vlan 30
name security
vlan 40
name guests
!
interface vlan 10
ip address 192.168.11.1 255.255.255.0
no shutdown
exit
interface vlan 20
ip address 192.168.199.1 255.255.255.0
no shutdown
exit
interface vlan 30
ip address 10.1.1.1 255.255.255.0
no shutdown
exit
interface vlan 40
ip address 10.11.0.1 255.255.240.0
no shutdown
exit
!
interface e0/0
no switchport
description Connection to Campus Core Switch
ip address 172.20.1.11 255.255.255.0
no shutdown
interface e0/1
description Link to User 1
switchport mode access
switchport access vlan 10
spanning-tree portfast
no shutdown
interface e0/2
description Link to Guest 1
switchport mode access
switchport access vlan 40
spanning-tree portfast
no shutdown
interface e0/3
description Configured as Trunk to bring up all VLANs
switchport trunk encap dot1q
switchport mode trunk
no shutdown
!
ip routing
ip route 0.0.0.0 0.0.0.0 172.20.1.1
ip route 0.0.0.0 0.0.0.0 172.20.1.2 10
!
end
cpu_limit: null
cpus: null
data_volume: null
hide_links: false
id: n2
image_definition: null
label: bld1-sw
node_definition: ioll2-xe
parameters: {}
ram: null
tags: []
x: 80
y: 120
interfaces:
- id: i0
label: Loopback0
type: loopback
- id: i1
label: Ethernet0/0
slot: 0
type: physical
- id: i2
label: Ethernet0/1
slot: 1
type: physical
- id: i3
label: Ethernet0/2
slot: 2
type: physical
- id: i4
label: Ethernet0/3
slot: 3
type: physical
- boot_disk_size: null
configuration: []
cpu_limit: null
cpus: null
data_volume: null
hide_links: false
id: n3
image_definition: null
label: int-sw
node_definition: unmanaged_switch
parameters: {}
ram: null
tags: []
x: -280
y: 120
interfaces:
- id: i0
label: port0
slot: 0
type: physical
- id: i1
label: port1
slot: 1
type: physical
- id: i2
label: port2
slot: 2
type: physical
- id: i3
label: port3
slot: 3
type: physical
- id: i4
label: port4
slot: 4
type: physical
- id: i5
label: port5
slot: 5
type: physical
- id: i6
label: port6
slot: 6
type: physical
- id: i7
label: port7
slot: 7
type: physical
- boot_disk_size: null
configuration:
- name: node.cfg
content: |-
# this is a shell script which will be sourced at boot
hostname user1
# configurable user account
USERNAME=cisco
PASSWORD=cisco
# Bring up network
ip address add 192.168.11.101/24 dev eth0
ip route add default via 192.168.11.1
cpu_limit: null
cpus: null
data_volume: null
hide_links: false
id: n4
image_definition: null
label: user1
node_definition: desktop
parameters: {}
ram: null
tags: []
x: 240
y: 80
interfaces:
- id: i0
label: eth0
slot: 0
type: physical
- boot_disk_size: null
configuration: []
cpu_limit: null
cpus: null
data_volume: null
hide_links: false
id: n5
image_definition: null
label: internet-gateway
node_definition: external_connector
parameters: {}
ram: null
tags: []
x: -400
y: 119
interfaces:
- id: i0
label: port
slot: 0
type: physical
- boot_disk_size: null
configuration: []
cpu_limit: null
cpus: null
data_volume: null
hide_links: false
id: n6
image_definition: null
label: ' '
node_definition: unmanaged_switch
parameters: {}
ram: null
tags: []
x: -40
y: 120
interfaces:
- id: i0
label: port0
slot: 0
type: physical
- id: i1
label: port1
slot: 1
type: physical
- id: i2
label: port2
slot: 2
type: physical
- id: i3
label: port3
slot: 3
type: physical
- id: i4
label: port4
slot: 4
type: physical
- id: i5
label: port5
slot: 5
type: physical
- id: i6
label: port6
slot: 6
type: physical
- id: i7
label: port7
slot: 7
type: physical
- boot_disk_size: null
configuration:
- name: node.cfg
content: |-
# this is a shell script which will be sourced at boot
hostname guest1
# configurable user account
USERNAME=cisco
PASSWORD=cisco
# Bring up network
ip address add 10.11.15.1/20 dev eth0
ip route add default via 10.11.0.1
cpu_limit: null
cpus: null
data_volume: null
hide_links: false
id: n7
image_definition: null
label: guest1
node_definition: desktop
parameters: {}
ram: null
tags: []
x: 240
y: 160
interfaces:
- id: i0
label: eth0
slot: 0
type: physical
links:
- id: l0
n1: n5
n2: n3
i1: i0
i2: i0
conditioning: {}
label: Internet-port<->int-sw-port0
- id: l1
n1: n0
n2: n3
i1: i1
i2: i1
conditioning: {}
label: cr-rtr1-Ethernet0/0<->int-sw-port1
- id: l2
n1: n1
n2: n3
i1: i1
i2: i2
conditioning: {}
label: cr-rt2-Ethernet0/0<->int-sw-port2
- id: l3
n1: n0
n2: n1
i1: i2
i2: i2
conditioning: {}
label: cr-rtr1-Ethernet0/1<->cr-rt2-Ethernet0/1
- id: l4
n1: n1
n2: n6
i1: i3
i2: i1
conditioning: {}
label: cr-rt2-Ethernet0/2<->cr-sw-port1
- id: l5
n1: n6
n2: n2
i1: i2
i2: i1
conditioning: {}
label: cr-sw-port2<->bld1-sw-Ethernet0/0
- id: l6
n1: n2
n2: n4
i1: i2
i2: i0
conditioning: {}
label: bld1-sw-Ethernet0/1<->user1-eth0
- id: l7
n1: n2
n2: n7
i1: i3
i2: i0
conditioning: {}
label: bld1-sw-Ethernet0/2<->guest1-eth0
- id: l8
n1: n0
n2: n6
i1: i3
i2: i0
conditioning: {}
label: cr-rtr1-Ethernet0/2<-> -port0
lab:
description: |-
Conquering OSPF: Optimize Your Network with OSPF
Maximize your network's potential with our in-depth focus on OSPF. This live stream event is tailored to help you master OSPF and optimize your network through dynamic routing and effective path selection. Perfect for networking professionals aiming to deepen their expertise, you'll be provided with the skills needed to ensure your network runs at peak performance. Join us to conquer OSPF and elevate your network optimization skills.
notes: |-
**CCNA Exam Prep: Back to Networking Basics with Hank Preston and Patrick Gargano**
# Conquering OSPF: Optimize Your Network with OSPF
As networks grow, become more complex, and rate of change increases, a move to dynamic routing is often a good choice. Dynamic routing leverages routing protocols to transmit network updates between routers automatically as changes occur, allowing routers to update their routing tables with the best options to reach destinations without requiring manual intervention by network engineers.
OSPF, or Open Shortest Path First, is a widely deployed standard routing protocol that scales from small "single area" networks to large global wide area networks. CCNA candidates need to be comfortable configuring and verifying single area OSPFv2 deployments. In this lab we will explore:
* Configuring IOS routers to run OSPF and share network information with neighbors
* Configure and verify neighbor adjacency details such as Router IDs and Timers
* Designated Router/Backup Designated Router election
* Sharing a default route with OSPF
## Setup and Scenario
In this set of lab-based demonstrations, you are the network engineer for a growing organization tasked with updating the network to support new network needs. The network was originally deployed using static routes as it was small, but now the network has grown from a single building to a "campus", and it is time to deploy dynamic routing.
You've been asked to:
* Enable OSPF between the core routers and the building 1 Layer 3 switch
* Ensure reliable internet access in case of a link failure to the primary router `cr-rtr1`
* Ensure the core routers provide routing updates to all building switches
*Be sure to **START** the lab before continuing to the demo labs.*
## Part 1: Reviewing the Current State of the Network
Before we jump into configuring OSPF across the network, let's check the current status of the network and how it is operating.
1. Open a VNC connection to the desktop `user1`. Open the Internet browser and navigate to https://u.cisco.com.
* You should see the Cisco U homepage.
1. Open the terminal application and `ping www.cisco.com`.
* You should see pings return successfully.
> If these steps fail, verify that your CML server is configured and deployed to allow Internet access for hosts through a NAT configured external connector node.
>
> If your server is ***not*** configured to allow this access, you can `ping 192.168.200.1` as an alternative test. This is a loopback address on `cr-rtr1`.
1. Open a VNC connection to the desktop `guest1` and repeat the tests.
* **These tests should ***not*** work.***
Uh oh... something doesn't seem to be right with the network. See if you can figure out what is wrong and why the `guest1` desktop can't reach the internet.
Answer to what is wrong
This is an example of one of the problems that can happen with static routing, mis-configurations and human error.
If you check `cr-rtr1` for a route back to `guest1`, you will see there isn't one listed.
```
cr-rtr1#show ip route 10.11.15.1
% Subnet not in table
```
Compare that to the backup `cr-rtr2`.
```
cr-rtr2#show ip route 10.11.15.1
Routing entry for 10.11.0.0/20
Known via "static", distance 1, metric 0
Routing Descriptor Blocks:
* 172.20.1.11
Route metric is 0, traffic share count is 1
```
Check the full routing table on `cr-rtr1` and you can find the mistake.
cr-rtr1#show ip route | begin Gateway
Gateway of last resort is 192.168.255.1 to network 0.0.0.0
S* 0.0.0.0/0 [254/0] via 192.168.255.1
10.0.0.0/21 is subnetted, 1 subnets
S 10.11.0.0 [1/0] via 172.20.1.11
172.16.0.0/24 is subnetted, 1 subnets
S 172.16.11.0 [1/0] via 172.20.1.11
.
.
Building 1, vlan 10's network is `10.11.0.0/20`, but `cr-rtr1` has a route for `10.11.0.0/21`. If you test a `ping 10.11.0.1` from `cr-rtr1`, you'll see that the router has reachability to the `vlan 40` interface on `bld1-sw`. But because of the incorrect subnet mask on the `ip route` command, only half of the valid IPs for guests are reachable from the router.
You can "fix" this issue, but replacing the static route statement on `cr-rtr1`.
```
no ip route 10.11.0.0 255.255.248.0 172.20.1.11
ip route 10.11.0.0 255.255.240.0 172.20.1.11
```
Test Internet access from `guest1 ` again. It should now be working.
Neighbor ID Pri State Dead Time Address Interface
172.20.1.2 1 FULL/BDR 00:00:32 172.20.1.2 Ethernet0/2
192.168.199.1 0 FULL/DROTHER 00:00:33 172.20.1.11 Ethernet0/2
192.168.200.1 10 FULL/DR 00:00:30 172.20.1.1 Ethernet0/2
> Above in red we see the automatically assigned router IDs. Can you tell which router is which?
Relying on automatic router ID assignment is not recommended, because as interface configurations on routers change, the router ID will also change. While this won't prevent OSPF from working, it can make operating and troubleshooting the network more difficult as router id values adjust.
Router IDs "look like" IP addresses, but they needn't be an IP address on a router. Any IP address can be used. We will configure some easy to see and identify router IDs for our network.
| Router | Router Id |
| ------ | --------- |
| `cr-rtr1` | `1.1.1.1` |
| `cr-rtr2` | `2.2.2.2` |
| `bld1-sw` | `11.11.11.11` |
1. Open the console for `cr-rtr1` and configure the router ID under the `router ospf` process.
```
router ospf 1
router-id 1.1.1.1
```
1. You should see a message like the one shown below. To improve stability, routers identify their router ID when the OSPF process starts up and maintain that same ID, no matter configuration changes, until the OSPF process restarts. This can occur when the router reloads, or a `clear ip ospf process` command is ran.
```
% OSPF: Reload or use "clear ip ospf process" command, for this to take effect
```
1. Another very useful verification command is `show ip protocols`. This command provides information on all routing protocols running on a router. Use it to verify the router-id on `cr-rtr1`. Notice that it still shows the automatically identified router ID value.
show ip protocols | begin ospf
! Output
Routing Protocol is "ospf 1"
.
Router ID 192.168.200.1
Number of areas in this router is 1. 1 normal 0 stub 0 nssa
Maximum path: 4
Routing for Networks:
172.20.1.0 0.0.0.255 area 0
.
1. Now restart OSPF on the router to apply the change. You will be asked to confirm because this will be a disruptive change on the network.
```
clear ip ospf process
```
1. Verify that the router ID has changed.
```
show ip protocols | inc ID
# Output
Router ID 1.1.1.1
```
1. Repeat the process on `cr-rtr2` and `bld1-sw` to set their router IDs and reset the OSPF process to apply the change.
> Note 💡: The OSPF process ID configured on each router is unique. `cr-rtr2` is `router ospf 2` and `bld1-sw` is `router ospf 11`
1. On `bld1-sw` look at the OSPF neighbors and see the new, more easily recognozied Router IDs.
```
bld1-sw# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 10 FULL/DR 00:00:38 172.20.1.1 Ethernet0/0
2.2.2.2 1 FULL/BDR 00:00:36 172.20.1.2 Ethernet0/0
```
### Advertising Dynamic Routes
Now that we have the OSPF neighbor relationships created between our three routers, the time has come to replace the static routes with dynamic routes managed by OSPF.
1. Start with the Building 1 networks. On the console for `bld1-sw`, look at the IP interfaces configured.
```
show ip int bri | exc unassigned
```
1. Compare the networks with the static routes on `cr-rtr1`.
```
show ip route static
```
1. Other than the network on `bld1-sw` interface `Ethernet0/0` which is the transit network to the routers, each of the networks on the switch should have associated static routes.
> The routers also each have a static default route. `cr-rtr1`'s static route was learned through DHCP and targets the `internet-gateway`. `cr-rtr2`'s static route was manually configured to route through `cr-rtr1` over the direct transit link.
1. OSPF is a "link state" routing protocol, which means decisions are made by exchanging details about the "links" each router has. Look at the links advertised by `bld1-sw` into OSPF.
> This command can be ran on any router.
```
show ip ospf database router adv-router 11.11.11.11
```
> * There are several different types of "LSAs" used by OSPF to describe different types of networks. The `router` LSAs are used to describe all directly connected networks
> * This command is limiting the output only to LSA data advertised by `bld1-sw` - as identified by its router ID.
1. How many links are advertised by the switch? Which links?
1. Add a `network` statement under the OSPF router process configuration on `bld1-sw` to begin advertising the Vlan 10 interface for users into area 0. Remember that OSPF uses wildcard masks for matching interfaces identified in network statements.
```
router ospf 11
network 192.168.11.0 0.0.0.255 area 0
```
1. Look at the Link State Database again, do you see the new network listed? How is this "link" different than the other "link"?
1. Now that the "user" network is included in OSPF, check the OSPF routes in the routing table on `cr-rtr1`.
```
show ip route ospf
```
* Is the route listed? Why not?