OSPF是link state protocol,主要是interface状态(如ip address,mask,Hello time…)这些信息在Routers间建立adjency的过程中会通过LSAs被互换,直到同Area收敛,所有Routers有同样的link state database,然后以自己为根(root)建立SPF tree,最后在根据SPF计算出route table.Area内任何一个interface的变化都会被Update.
我们再看看OSPF执行时的过程:(简单举例)
int s1
ip add 10.1.1.1 255.255.255.0 (10.1.1.1/24)
int s2
ip add 172.2.0.1 255.255.255.0 (172.2.0.1/24)
int s3
ip add 172.3.0.1 255.255.0.0 (172.3.0.1/16)
int s4
ip add 172.4.0.1 255.255.0.0 (172.4.0.1/16)
route ospf 10
network 10.1.1.1 0.0.0.0 area 0
network 172.2.0.0 0.0.255.255 area 0
当进入OSPF 10,OSPF首先执行network 10.1.1.1 0.0.0.0,查找interface address,有匹配s0,分配至Area 0,然后再执行network 172.2.0.0.0.0.255.255 aera 0,匹配s2->Area 0,最后我们在其它Routers上看到的信息是:
172.16.0.0/24 is subnetted, 1 subnets
O 172.16.0.0 [110/128] via 192.168.0.1, 00:00:00, Serialx
10.0.0.0/24 is subnetted, 1 subnets
O 10.1.1.0 [110/74] via 192.168.0.1, 00:00:05, Serialx
在着里可以看到submask是24,忽略了在network中配制的inverse mask,为什么?
我们再看当添加新的network后有什么结果?
route ospf 10
network 10.1.1.1 0.0.0.0 area 0
network 172.2.0.0 0.0.255.255 area 0
network 172.0.0.0 0.255.255.255 area 1
network 0.0.0.0 0.0.0.0 area 2
show ip route