OSPF
uses different types of networks to efficiently form neighbors in respect to the
media that connects it to them.
These networks
can be categorized as three main types.
- Broadcast
- Point to Point
- Non-Broadcast Multi-Access (NBMA)
Yet one
interface isn’t by default categorized as any of the above mentioned which is
our beloved loopback address. The reason is Loopback is a logical interface
that doesn’t carry transient traffic, it is initially used to route traffic
from the router to itself or to terminate incoming traffic to the router
itself, Thus; loopback advertisements by default are always generated as an Intra-Area
/32 Stub host with a metric of 1
Let’s
check the below topology
R3 is advertising
the Loopback interface to ospf via a network or interface command directly. The
IP configured under the loopback interface is 3.3.3.3/24.
Let’s
first check the configuration on R3 and how it generated an LSA for that
loopback address
R3#
interface Loopback0
ip address 3.3.3.3 255.255.255.0
ip ospf 1 area 1
R3#show ip
ospf inter lo0
Loopback0 is up, line
protocol is up
Internet Address 3.3.3.3/24, Area 1
Process ID 1, Router ID 3.3.3.3, Network Type
LOOPBACK, Cost: 1
Enabled by interface config, including
secondary ip addresses
Loopback interface is treated as a stub
Host
R3#show ip
ospf database router 3.3.3.3 self-originate
OSPF Router with ID (3.3.3.3)
(Process ID 1)
Router Link States (Area 1)
LS age: 557
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 3.3.3.3
Advertising Router: 3.3.3.3
LS Seq Number: 80000003
Checksum: 0x2387
Length: 48
Number of Links: 2
Link connected to: a Transit Network
(Link ID) Designated Router address:
10.0.23.3
(Link Data) Router Interface address:
10.0.23.3
Number of TOS metrics: 0
TOS 0 Metrics: 10
Link connected to: a Stub Network
(Link ID) Network/subnet number: 3.3.3.3
(Link Data) Network Mask: 255.255.255.255
Number of TOS metrics: 0
TOS 0 Metrics: 1
Let’s also
check how the other routers see this network
R1#show ip
route 3.3.3.3
Routing entry for 3.3.3.3/32
Known via "ospf 1", distance 110,
metric 21, type inter area
Last update from 10.0.12.2 on
FastEthernet0/0, 00:00:04 ago
Routing Descriptor Blocks:
* 10.0.12.2, from 2.2.2.2, 00:00:04 ago, via
FastEthernet0/0
Route metric is 21, traffic share count
is 1
R1#show ip
ospf database summary 3.3.3.3
OSPF Router with ID (1.1.1.1)
(Process ID 1)
Summary Net Link States (Area
0)
Routing Bit Set on this LSA
LS age: 77
Options: (No TOS-capability, DC, Upward)
LS Type: Summary Links(Network)
Link State ID: 3.3.3.3 (summary Network
Number)
Advertising Router: 2.2.2.2
LS Seq Number: 80000001
Checksum: 0x31EC
Length: 28
Network Mask: /32
TOS: 0
Metric: 11
From the
above outputs, there are two things to notice here.
·
As stated in OSPF RFC#2328 page 225, the host
routes is advertised as a router-LSA stub network with a hexa mask of
0xFFFFFFFF (255.255.255.255) and they indicate the router interfaces or looped
router interfaces. Which tells why it was advertised as a /32 subnet
·
The other thing to notice in the output is that
it is linked to two networks. A stub network, which we already discussed and to
a transient network which is the IP address of the physical interface of the
router connected to R3.
This is because if an incoming packet is
destined to the router itself through physical interface, the network is attached
to the through that physical interface
There
are several ways to change this behavior
1. Change the
loopback OSPF network Type à will be advertised as configured mask and
propagates in a Router-LSA
2. Summarize the
route to the desired network mask on an ABR à depending if this loopback is in a
different area or not, will be propagated in a Summary-LSA
3. Redistribute the
loopback address to OSPF instead of using the network command à will be flooded with it’s
configured subnet mask in an External-LSA
Let’s
apply each one of the three solutions
1. Solution 1 – change the OSPF network type under the loopback interface
We’ll
begin by configuring the loopback interface as an OSPF point-to-point, one
thing to notice here is that the only manual applicable network type is point
to point. The broadcast, non-broadcast and point-to-multipoint are not allowed
to be configured on loopback interface
interface
Loopback0
ip address 3.3.3.3 255.255.255.0
ip ospf network point-to-point
ip ospf 1 area 1
Now let’s
do our checks again
R3#show ip ospf inter
loopback 0
Loopback0 is up, line
protocol is up
Internet Address 3.3.3.3/24, Area 1
Process ID 1, Router ID 10.0.23.3, Network Type
POINT_TO_POINT, Cost: 1
Enabled by interface config, including
secondary ip addresses
Transmit Delay is 1 sec, State POINT_TO_POINT
Timer intervals configured, Hello 10, Dead
40, Wait 40, Retransmit 5
oob-resync timeout 40
Supports Link-local Signaling (LLS)
Cisco NSF helper support enabled
IETF NSF helper support enabled
Index 1/1, flood queue length 0
Next 0x0(0)/0x0(0)
Last flood scan length is 0, maximum is 0
Last flood scan time is 0 msec, maximum is 0
msec
Neighbor Count is 0, Adjacent neighbor count
is 0
Suppress hello for 0 neighbor(s)
R3#show ip ospf
database router 3.3.3.3 self-originate
OSPF Router with ID (3.3.3.3)
(Process ID 1)
Router Link States (Area 1)
LS age: 32
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 3.3.3.3
Advertising Router: 3.3.3.3
LS Seq Number: 80000004
Checksum: 0xD4D8
Length: 48
Number of Links: 2
Link connected to: a Transit Network
(Link ID) Designated Router address:
10.0.23.2
(Link Data) Router Interface address:
10.0.23.3
Number of TOS metrics: 0
TOS 0 Metrics: 10
Link connected to: a Stub Network
(Link ID) Network/subnet number: 3.3.3.0
(Link Data) Network Mask: 255.255.255.0
Number of TOS metrics: 0
TOS 0 Metrics: 1
The
network is still advertised as a Stub, but notice how the subnet mask is now
changed to /24 as configured under the loopback interface.
2. Solution 2 – Summarize the loopback route to the desired network mask at
an ABR
R2 Is an
ABR between Area 0 and Area 1, we can summarize the network 3.3.3.3/32 into a
bigger network /24. Even though it’s a viable workaroud, but the fact remains
that this is a very poor way to resolve the issue and can introduce various
problems in your network. Unless you exactly know every little detail about
your network architecture, don’t start summarizing single host routes here and
there otherwise it will be a mess.
R2#show
ip route 3.3.3.3
Routing
entry for 3.3.3.3/32
Known via "ospf 1", distance 110,
metric 11, type intra area
Last update from 10.0.23.3 on
FastEthernet0/0, 00:09:25 ago
Routing Descriptor Blocks:
* 10.0.23.3, from 3.3.3.3, 00:09:25 ago, via
FastEthernet0/0
Route metric is 11, traffic share count
is 1
Now let’s
summaries that route into a /24 and propagate it to Area 0
R2(config)#router
ospf 1
R2(config-router)#area
1 range 3.3.3.0 255.255.255.0
Checking
R2 database after summarization
R2#show
ip ospf database summary 3.3.3.0 self-originate
OSPF Router with ID (2.2.2.2)
(Process ID 1)
Summary Net Link States (Area
0)
LS age: 113
Options: (No TOS-capability, DC, Upward)
LS Type: Summary Links(Network)
Link State ID: 3.3.3.0 (summary Network
Number)
Advertising Router: 2.2.2.2
LS Seq Number: 80000001
Checksum: 0x4FD1
Length: 28
Network Mask: /24
TOS: 0
Metric: 11
R2#show
ip route
1.0.0.0/32 is subnetted, 1 subnets
O 1.1.1.1 [110/11] via 10.0.12.1,
00:04:01, FastEthernet0/1
2.0.0.0/32 is subnetted, 1 subnets
C 2.2.2.2 is directly connected, Loopback0
3.0.0.0/8 is variably subnetted, 2
subnets, 2 masks
O 3.3.3.3/32 [110/11] via 10.0.23.3,
00:04:01, FastEthernet0/0
O 3.3.3.0/24 is a summary, 00:04:01, Null0
10.0.0.0/24 is subnetted, 2 subnets
C 10.0.12.0 is directly connected,
FastEthernet0/1
C 10.0.23.0 is directly connected,
FastEthernet0/0
And here’s
what R1 see
R1#show
ip route 3.3.3.0
Routing
entry for 3.3.3.0/24
Known via "ospf 1", distance 110,
metric 21, type inter area
Last update from 10.0.12.2 on
FastEthernet0/0, 00:03:40 ago
Routing Descriptor Blocks:
* 10.0.12.2, from 2.2.2.2, 00:03:40 ago, via
FastEthernet0/0
Route metric is 21, traffic share count
is 1
3. Redistribute the loopback address in OSPF
We’ll go
directly under OSPF and redistribute all the connected interfaces since we only
have the loopback and the interface towards R2. Of course it’s recommended to
filter the undesired networks during the redistribution, but we’ll skip that
for the sake of simplicity.
R3#show run int lo0
interface Loopback0
ip address 3.3.3.3 255.255.255.0
router ospf 1
redistribute
connected subnets
and
finally, R3 is now flooding an external LSA for 3.3.3.0/24
R3#show ip ospf
database external 3.3.3.0 self-originate
OSPF Router with ID (3.3.3.3)
(Process ID 1)
Type-5 AS External Link States
LS age: 139
Options: (No TOS-capability, DC)
LS Type: AS External Link
Link State ID: 3.3.3.0 (External Network
Number )
Advertising Router: 3.3.3.3
LS Seq Number: 80000001
Checksum: 0x216A
Length: 36
Network Mask: /24
Metric Type: 2 (Larger than any
link state path)
TOS: 0
Metric: 20
Forward Address: 0.0.0.0
External Route Tag: 0
And here’s
how R1 see it
R1#show ip route
3.3.3.0
Routing entry for 3.3.3.0/24
Known via "ospf 1", distance
110, metric 20, type extern 2, forward metric 20
Last update from 10.0.12.2 on
FastEthernet0/0, 00:04:09 ago
Routing Descriptor Blocks:
* 10.0.12.2, from 3.3.3.3, 00:04:09 ago, via
FastEthernet0/0
Route metric is 20, traffic share count
is 1
Notice
that by default, OSPF redistributes external network as a Type-2 with a seed metric of 20. So depending on your design, make sure you convert that to Type-1
if you need that metric to increment throughout your network.