Network statements in the OSPF process are no longer order-dependent
When I was still teaching Cisco courses, we were telling the students that the order of network statements in an OSPF process was important if their ranges were overlapping; the first network statement that matched an interface IP address would place that interface in the corresponding area. This is no longer true, Cisco IOS now properly handles overlapping network ... area configuration commands.
Consider the following example:
Consider the following example:
fw#conf tI've entered overlapping network statements, each one with a smaller address range. Not only does IOS detect that they overlap, it also prints nice syslog messages and reorders the commands in the running configuration. Well done !
Enter configuration commands, one per line. End with CNTL/Z.
fw(config)#router ospf 100
fw(config-router)#network 0.0.0.0 255.255.255.255 area 0
fw(config-router)#network 10.0.0.0 0.0.3.255 area 1
13:06:57: %OSPF-6-AREACHG: 10.0.0.0 255.255.252.0 changed from area 0 to area 1
fw(config-router)#network 10.0.0.0 0.0.0.7 area 2
13:07:10: %OSPF-6-AREACHG: 10.0.0.0 255.255.255.248 changed from area 1 to area 2
fw(config-router)#^Z
fw#show run | begin router ospf
router ospf 100
log-adjacency-changes
network 10.0.0.0 0.0.0.7 area 2
network 10.0.0.0 0.0.3.255 area 1
network 0.0.0.0 255.255.255.255 area 0
FYI: I've just performed some tests w/ 3640's image and can confirm that changes in order dependency took place somewhere between 11.3T and 12.0:
11.3(9)T:
---------
#sh startup
[snip]
!
router ospf 1
network 0.0.0.0 255.255.255.255 area 0.0.0.0
network 172.16.0.0 0.0.255.255 area 0.0.0.1
network 172.16.2.0 0.0.1.255 area 0.0.0.2
network 172.16.3.0 0.0.0.255 area 0.0.0.3
!
#sh run
[snip]
!
router ospf 1
network 0.0.0.0 255.255.255.255 area 0.0.0.0
!
Note: When I try to enter initial ospf's config via CLI it alarms for each subsequent entry after 0.0.0.0/255.255.255.255:
% OSPF: "network 172.16.0.0 0.0.255.255 area 0.0.0.1" is ignored. It is a subset of a previous entry.
12.0(14):
---------
#sh startup
[snip]
!
router ospf 1
network 0.0.0.0 255.255.255.255 area 0.0.0.0
network 172.16.0.0 0.0.255.255 area 0.0.0.1
network 172.16.2.0 0.0.1.255 area 0.0.0.2
network 172.16.3.0 0.0.0.255 area 0.0.0.3
!
#sh run
[snip]
!
router ospf 1
network 172.16.3.0 0.0.0.255 area 0.0.0.3
network 172.16.2.0 0.0.1.255 area 0.0.0.2
network 172.16.0.0 0.0.255.255 area 0.0.0.1
network 0.0.0.0 255.255.255.255 area 0.0.0.0
!
#sh log
[snip]
%OSPF-6-AREACHG: 172.16.0.0/16 changed from area 0.0.0.0 to area 0.0.0.1
%OSPF-6-AREACHG: 172.16.2.0/23 changed from area 0.0.0.1 to area 0.0.0.2
%OSPF-6-AREACHG: 172.16.3.0/24 changed from area 0.0.0.2 to area 0.0.0.3
[snip]
HTH!