Thursday, February 20, 2020

OSPF Passive Interface

When you use the network command in OSPF, two things will happen:
  • All interfaces that have a network that falls within the range of the network command will be advertised in OSPF.
  • OSPF hello packets are sent on these interfaces.
Sometimes it’s undesirable to send OSPF hello packets on certain interfaces. Take a look at the image below:
OSPF Passive Interface Lab Topology
R1 and R2 are configured for OSPF. R1 is connected to network 192.168.10 /24 which has some computers connected to a switch. R1 wants to advertise this network to R2.
Once we use the network command to advertise 192.168.10.0 /24 in OSPF, R1 will also send OSPF hello packets towards the switch. This is a bad idea, first of all because there are no routers on this network but it’s also a security risk. If someone on the computer starts an application that replies with OSPF hello packets then R1 will try to become neighbors. An attacker could advertise fake routes using this technique.
To prevent this from happening, we can use the passive-interface command. This command tells OSPF not to send hello packets on certain interfaces. Let’s see how it works…

Configuration

Here’s the OSPF configuration of R1 and R2:
R1(config)#router ospf 1
R1(config-router)#network 192.168.12.0 0.0.0.255 area 0
R1(config-router)#network 192.168.10.0 0.0.0.255 area 0
R2(config)#router ospf 1
R2(config-router)#network 192.168.12.0 0.0.0.255 area 0
With the above configuration, R2 will learn network 192.168.10.0 /24:
R2#show ip route ospf 
O    192.168.10.0/24 [110/20] via 192.168.12.1, 00:03:21, FastEthernet0/0
This is great but a side-effect of this configuration is that R1 will send hello packets on its FastEthernet 0/1 interface. We can see this with a debug:
R1#debug ip ospf hello 
OSPF hello events debugging is on

OSPF: Send hello to 224.0.0.5 area 0 on FastEthernet0/1 from 192.168.10.254

OSPF: Send hello to 224.0.0.5 area 0 on FastEthernet0/0 from 192.168.12.1
Above you can see that hello packets are sent in both directions.
EIGRP Sending Hello Packets
Let’s fix this. We will configure OSPF to stop the hello packets towards the switch:
R1(config)#router ospf 1
R1(config-router)#passive-interface FastEthernet 0/1
You only have to use the passive-interface command under the OSPF process. You can verify our work with the following command:
R1#show ip protocols 
Routing Protocol is "ospf 1"
  Outgoing update filter list for all interfaces is not set
  Incoming update filter list for all interfaces is not set
  Router ID 192.168.12.1
  Number of areas in this router is 1. 1 normal 0 stub 0 nssa
  Maximum path: 4
  Routing for Networks:
    192.168.10.0 0.0.0.255 area 0
    192.168.12.0 0.0.0.255 area 0
 Reference bandwidth unit is 100 mbps
  Passive Interface(s):
    FastEthernet0/1
  Routing Information Sources:
    Gateway         Distance      Last Update
  Distance: (default is 110)
Show ip protocols will tell us which interfaces are configured as passive interface(s). If you left the debug enabled you will see that the hello packets are blocked:
R1#
OSPF: Send hello to 224.0.0.5 area 0 on FastEthernet0/0 from 192.168.12.1
That’s looking good, they are only sent towards R2 now.
EIGRP Passive Interface
hostname R1
!
interface FastEthernet 0/1
 ip address 192.168.10.254 255.255.255.0
!
interface FastEthernet 0/0
 ip address 192.168.12.1 255.255.255.0
!
router ospf 1
 network 192.168.12.0 0.0.0.255 area 0
 network 192.168.10.0 0.0.0.255 area 0
 passive-interface FastEthernet 0/1
!
end
hostname R2
!
interface FastEthernet 0/0
 ip address 192.168.12.2 255.255.255.0
!
router ospf 1
 network 192.168.12.0 0.0.0.255
!
end

If you have many interfaces then it might be annoying to configure each of them as a passive interface. For example let’s imagine that R1 is used as a router on a stick for VLANs that are configured on the switch. It will have many sub-interfaces, on each of those it will send OSPF hello packets:
OSPF Sub-interfaces
We could use the passive-interface command for each of these sub-interfaces but there’s a better solution for this:
R1(config)#router ospf 1
R1(config-router)#passive-interface default
R1(config-router)#no passive-interface FastEthernet 0/0
The configuration above will make all interfaces passive and you have to tell the router which interfaces should send OSPF hello packets. This is easier and it will prevent OSPF from sending hello packets when someone creates a new sub-interface and forgets to make it passive.
hostname R1
!
interface FastEthernet 0/1
 ip address 192.168.10.254 255.255.255.0
!
interface FastEthernet 0/0
 ip address 192.168.12.1 255.255.255.0
!
router ospf 1
 network 192.168.12.0 0.0.0.255 area 0
 network 192.168.10.0 0.0.0.255 area 0
 passive-interface default
 no passive-interface FastEthernet 0/0
!
end
hostname R2
!
interface FastEthernet 0/0
 ip address 192.168.12.2 255.255.255.0
!
router ospf 1
 network 192.168.12.0 0.0.0.255
!
end

RIP and EIGRP also support the passive-interface command. It works similar for EIGRP but RIP works a bit different. It doesn’t create neighbor adjacencies so it just suppresses route advertisements on the passive interface.
Hopefully these examples have been useful, if you have any questions feel free to leave a comment!

No comments:

Post a Comment