有些时候,由于区域包含的路由器过多或区域的地理位置原因等,造成网络中配置的OSPF区域(非area 0)不能够与area 0相连。大家都知道,在OSPF的所有区域内,area 0 是骨干区域,非0区域都要与area0相连,才能够得知其他网络的路由信息。如下图所示情况:

拓扑中的网络为192.168.X.0 /24area 2 不能与area 0直接相连,这样R4就不能够学习到area 0区域的路由。

基本配置:

R1

En

Confi t

Host R1

Inter f0/0

Ip add 192.168.1.1 255.255.255.0

No sh

Router ospf 1

Net 192.168.1.1 0.0.0.0 area 0 ——将启用OSPF的接口通告出去。

R2:

En

Confi t

Host R2

Inter f0/0

Ip add 192.168.1.2 255.255.255.0

No sh

Inter f0/1

Ip add 192.168.2.1 255.255.255.0

No sh

Router ospf 1

Net 192.168.1.2 0.0.0.0 area 0  ——接口具体属于哪个区域,根据上图来配置。

Net 192.168.2.1 0.0.0.0 area 1

R3:

En

Conf t

Host R3

Inter f0/0

Ip add 192.168.2.2 255.255.255.0

No sh

Inter f0/1

Ip add 192.168.3.1 255.255.255.0

No sh

Router ospf 1

Net 192.168.2.2 0.0.0.0 area 1

Net 192.168.3.1 0.0.0.0 area 2

R4:

En

Conf t

Host R4

Inter f0/0

Ip add 192.168.3.2 255.255.255.0

No sh

Inter loo 0         ——这里我启用回环接口,目的是不用再增加设备。因为回环接口默认链路自动up,只需配好IPOK了。

Ip add 3.3.3.3 255.255.255.255

 

配置完以后可以看到:

R1

 

R3

R4

一般情况下,我们有以下三种方式来解决。

方法一:多进程ospf,路由重发布。

可以看出:R3上有到达所有网络的路由,但是area 0 R1、边界路由R2却学习不到。由此,我们可以使用路由重发布来将R3学习到的area2内的路由重发布到area 1中。同样的,将R3中的关于area 0area 1的路由重发布到area2中。

我们要R3 运行两个OSPF进程,接下来我们就要在不同的ospf进程之间进行路由重发布。

进程1:通告area 1的接口;

进程2:通告 area 2 的接口。

我们来配置一下:首先将R3现有的OSPF进程1内通告的192.168.3.1 no 掉。

R3(config)#router ospf 1

R3(config-router)#no net 192.168.3.1 0.0.0.0 area 2

建立一个新的ospf进程 2

R3(config)#router ospf 2

R3(config-router)#net 192.168.3.1 0.0.0.0 area 2

这样,R3又重新学习到了area 2中的网络 3.3.3.3

接下来我们来做重发布:

1)  将进程2发布到进程1

R3(config)#router ospf 1

R3(config-router)#redis ospf 2 subnets

这样R1R2上就可以看到3.3.3.3 网络的路由了。

R2 同样可以学习到3.3.3.3。

2)  将进程1发布到进程2

R3(config)#router ospf 2

R3(config-router)#redistribute ospf 1 sub

       这样,R4就可以学习到area 0 area1 中的路由信息了。

                  

         方法二:隧道技术

         还原实验环境。

         我们可以在R2R3之间建立一条双向的隧道,让area 2 在逻辑上与area 0相连。

         R2:建隧道并配置IP

         R2(config)#interface tunnel 1

         R2(config-if)#tun source 192.168.2.1

         R2(config-if)#tun des 192.168.2.2

         R2(config-if)#ip add 192.168.4.1 255.255.255.0

         R2(config-router)#net 192.168.4.1 0.0.0.0 area 0  ---通告隧道的网络到area 0

 

         R3:建隧道并配置IP

         R3(config)#interface tunnel 1

         R3(config-if)#tun source 192.168.2.2

         R3(config-if)#tun des 192.168.2.1

         R3(config-if)#ip add 192.168.4.2 255.255.255.0

         R3(config-router)#net 192.168.4.2 0.0.0.0 area 0 ---通告隧道的网络到area 0

 

         这样,R1R4就学习到了彼此的路由信息。

 

方法三:virtual-link

还原环境。

R2R3上进行配置:

R2

Router ospf 1

Area 1 virtual-link 192.168.3.1  --这里的IP是路由器的routerID,实验中我没有配置router ID,默认是最高的接口IP

R3

Router ospf 1

Area 1 virtual-link 192.168.2.1

结果:

 

成功!