Hub and Spoke Redux #2

Continuing from a previous update, I will now explore OSPF over Frame-Relay Point-to-Multipoint non-broadcast networks.

I have configured R1 as the HUB router, R2 and R3 will represent the spoke sites.
As this is a non-broadcast point-to-multipoint configuration, we will have to configure OSPF as such and make sure that R2 and R3 will be able to communicate and exchange routes through R1.

First up, here’s the initial configuration that we start out with.

hostname R1
!
interface Loopback1
ip address 1.1.1.1 255.255.255.0
!
interface Serial0/0
ip address 10.0.0.1 255.255.255.0
encapsulation frame-relay
clock rate 2000000
no frame-relay inverse-arp
!
router ospf 10
log-adjacency-changes

hostname R2
!
interface Loopback1
ip address 2.2.2.2 255.255.255.0
!
interface Serial0/0
ip address 10.0.0.2 255.255.255.0
encapsulation frame-relay
clock rate 2000000
no frame-relay inverse-arp
!
router ospf 10
log-adjacency-changes

hostname R3
!
interface Loopback1
ip address 3.3.3.3 255.255.255.0
!
interface Serial0/0
ip address 10.0.0.3 255.255.255.0
encapsulation frame-relay
clock rate 2000000
no frame-relay inverse-arp
!
router ospf 10
log-adjacency-changes

As this is a non-broadcast network I will configure the interface’s “frame-relay map” commands without the broadcast keyword and instead configure it with the command “ip ospf network point-to-multipoint non-broadcast“.

Two important facts about these kind of networks:

1. We can statically configure neighbours and even define a cost per-neighbour with the OSPF process command “neighbour ip-address cost 100“. This command is useful in case you have multipe paths and want one preferred over the other.

2. As these links will be treated as point-to-point links, we will not require a DR/BDR on any router.

Let’s get this going;

R1(config)#interface serial 0/0
R1(config-if)#frame-relay map ip 10.0.0.2 102
R1(config-if)#frame-relay map ip 10.0.0.3 103
R1(config)#router ospf 10
R1(config-router)#network 10.0.0.0 0.0.0.255 area 0
R1(config-router)#network 1.1.1.1 0.0.0.255 area 0

R2(config)#int se 0/0
R2(config-if)#frame-relay map ip 10.0.0.1 201
R2(config-if)#frame-relay map ip 10.0.0.3 201
R2(config)#router ospf 10
R2(config-router)#network 10.0.0.0 0.0.0.255 area 0
R2(config-router)#network 2.2.2.2 0.0.0.255 area 0

R3(config)#int se 0/0
R3(config-if)#frame-relay map ip 10.0.0.1 301
R3(config-if)#frame-relay map ip 10.0.0.2 301
R3(config)#router ospf 10
R3(config-router)#network 10.0.0.0 0.0.0.255 area 0
R3(config-router)#network 3.3.3.3 0.0.0.255 area 0

Let’s check how our network is now behaving;

R1#ping 10.0.0.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/7/28 ms
R1#ping 10.0.0.3

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/10/32 ms

R1 seems to have full connectivity, how about R2 and R3 ?

R2#ping 10.0.0.3

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/10/40 ms
R2#ping 3.3.3.3

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
…..
Success rate is 0 percent (0/5)

Looks like all routers have interconnectivity but the networks are not being advertised.

R2#sh ip route
Gateway of last resort is not set

2.0.0.0/24 is subnetted, 1 subnets
C       2.2.2.0 is directly connected, Loopback1
10.0.0.0/24 is subnetted, 1 subnets
C       10.0.0.0 is directly connected, Serial0/0

R2#sh ip ospf 10 neighbor
R2

Let’s configure our interfaces with the command “ip ospf network point-to-multipoint non-broadcast

R1(config)#int se 0/0
R1(config-if)#ip ospf network point-to-multipoint non-broadcast

R2(config)#int se 0/0
R2(config-if)#ip ospf network point-to-multipoint non-broadcast

R3(config)#int se 0/0
R3(config-if)#ip ospf network point-to-multipoint non-broadcast

And statically assign our neighbours under R1’s OSPF router process.
There’s no need to configure neighbour statements on the other two routers because R1 will initiate the neighbour process.

R1(config-router)#neighbor 10.0.0.2
R1(config-router)#neighbor 10.0.0.3

Now when doing a “show ip ospf neighbours” you can see the relationships have formed with a state of FULL/-.
As stated earlier, they will not form DR/BDR relationships because of the point-to-point topology.

Looking at the interface, we can see it’s indeed on the correct network type, with the non-broadcast timers configured.

R1# sh ip ospf interface se 0/0
Serial0/0 is up, line protocol is up
Internet Address 10.0.0.1/24, Area 0
Process ID 10, Router ID 1.1.1.1, Network Type POINT_TO_MULTIPOINT, Cost: 64
Transmit Delay is 1 sec, State POINT_TO_MULTIPOINT
Timer intervals configured, Hello 30, Dead 120, Wait 120, Retransmit 5

Let’s look at the routing table on R2.

R2#sh ip route

Gateway of last resort is not set

1.0.0.0/32 is subnetted, 1 subnets
O       1.1.1.1 [110/65] via 10.0.0.1, 00:04:12, Serial0/0
2.0.0.0/24 is subnetted, 1 subnets
C       2.2.2.0 is directly connected, Loopback1
3.0.0.0/32 is subnetted, 1 subnets
O       3.3.3.3 [110/129] via 10.0.0.1, 00:03:30, Serial0/0
10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
O       10.0.0.3/32 [110/128] via 10.0.0.1, 00:03:30, Serial0/0
C       10.0.0.0/24 is directly connected, Serial0/0
O       10.0.0.1/32 [110/64] via 10.0.0.1, 00:04:13, Serial0/0
R2#
R2#ping 3.3.3.3

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/11/44 ms

And we can now ping the loopback address on R3 from R2.
One thing that you might have noticed is that the other router’s loopback addresses are being advertised as /32 routes.
This is because OSPF knows it is a loopback address.

R1#sh ip ospf 10 interface loopback 1
Loopback1 is up, line protocol is up
Internet Address 1.1.1.1/24, Area 0
Process ID 10, Router ID 1.1.1.1, Network Type LOOPBACK, Cost: 1
Loopback interface is treated as a stub Host

For lab purposes, you can force OSPF to recognize this as an actual network with the interface command “ip ospf network point-to-point”.

R1(config)#int lo 1
R1(config-if)#ip ospf network point-to-point

And when we now look at R2’s routing table again;

R2#sh ip route 2.2.2.2 longer-prefixes

Gateway of last resort is not set

2.0.0.0/24 is subnetted, 1 subnets
C       2.2.2.0 is directly connected, Loopback1

This route is now being advertised as a /24 and looks like an actual network.

References:
OSPF Point-to-Multipoint Networks with Neighbors
Configuring OSPF