OSPF协议介绍及配置 (下)
4、特殊区域详解
为了让我们的讲解更加的通俗易懂,我们看上面这个拓扑,这是一个根据客户业务逻辑结构所涉及的OSPF网络,共有三个区域(实际上远远不止),骨干区域area0为一级行及二级行所部署,***行部署的是OSPF的常规区域,为了保证网络的畅通,我们将网络中的各个角落都宣告进了OSPF,感觉上很爽,但是其实路由器很压抑,毕竟随着设备越来越多、网络前缀越来越多,路由条目势必逐渐增多,那么路由器就亚历山大了,毕竟庞大的路由表及LSA在极大地消耗着路由器的资源。
从网络优化的角度,我们一直在试图在保证网络通畅的情况下减少网络中传递的路由条目及LSA的数量,路由汇总就是一种很好的方式,当然,从OSPF的设计规划角度,我们还有特殊区域可供我们灵活运用,下面来看看OSPF特殊区域是如何帮助我们减少LSA泛洪的。
我们拿area1做参考区域,当area1为常规区域时,区域中会有多少种LSA在泛洪呢?1类是必然有的,由于area1中存在以太网链路,因此2类LSA也有。另外其他区域的3类LSA被ABR也都注入进了本区域。再者由于area2的ASBR引入了外部路由(5类LSA),因此LSA5也会被泛洪进area1,当然4类LSA也跟着来了。那么如此一来,area1中就有1、2、3、4、5,共计5种类型的LSA,齐活了。但是仔细一想我们就发现,其实area1作为“叶”区域,没必要知道外部路由的详细情况,我只需要知道有那么一条路,让我到达域外即可,因此,第一种特殊区域:末梢区域 stub area。
实验环境介绍
本次内容讲解使用的实验环境如上:
- R1、R2、R3、R4运行OSPF;
- 设备互联地址IP如图所示;
- 所有设备配置Loopback0口,IP为x.x.x.x/32,其中x为设备编号。例如R1的Loopback0地址为1.1.1.1/32,该地址不network进OSPF,只作为设备OSPF RouterID使用;
- R4上配置Loopback1接口,IP子网为44.44.44.0/24,R4将这条直连路由import进OSPF。
R1的配置如下(省略接口Ip地址的配置):[R1] ospf 1 router-id 1.1.1.1
[R1-ospf-1] area 1
[R1-ospf-1-area-0.0.0.1] network 10.1.12.1 0.0.0.0
R2的配置如下(省略接口Ip地址的配置):
[R2] ospf 1 router-id 2.2.2.2
[R2-ospf-1] area 1
[R2-ospf-1-area-0.0.0.1] network 10.1.12.2 0.0.0.0
[R2-ospf-1] area 0
[R2-ospf-1-area-0.0.0.0] network 10.1.23.2 0.0.0.0
R3的配置如下(省略接口Ip地址的配置):
[R3] ospf 1 router-id 3.3.3.3
[R3-ospf-1] area 0
[R3-ospf-1-area-0.0.0.0] network 10.1.23.3 0.0.0.0
[R3-ospf-1] area 2
[R3-ospf-1-area-0.0.0.2] network 10.1.34.3 0.0.0.0
R4的配置如下(省略接口Ip地址的配置):
[R4] acl 2000
[R4- acl-basic-2000] rule permit source 44.44.44.0 0
[R4- acl-basic-2000] quit
[R4] route-policy RP permit node 10
[R4-route-policy] if-match acl 2000
[R4-route-policy] quit
[R4] ospf 1 router-id 4.4.4.4
[R4-ospf-1] import-route direct route-policy RP
[R4-ospf-1] area 2
[R4-ospf-1-area-0.0.0.2] network 10.1.34.4 0.0.0.0
下面我们开始介绍各种特殊区域:
1.Stub area末梢区域
我们可以通过配置,可以将一个常规区域设置为stub区域。例如下图,将area1配置为stub area。Stub区域将禁止4、5类LSA进入该区域,同时该区域的ABR将会自动下发一条默认路由(3类LSA)进该区域,以确保区域内访问区域外的路由通路没有问题。这可以形象的理解为:“外面的世界再怎么精彩,你不用告诉我细节,只要让我出去就行了”。这就是stub area的设计思路。当引入大量的外部路由进OSPF,适当的规划某些区域为stub,可以起到不错的网络优化作用,大大的降低路由器需要维护的路由条目数量。
有一点值得注意,你不能将骨干区域area0配置为stub区域,同时,让一个区域被指定为stub area,区域内将不允许注入外部路由,也就是不能做重发布。
在初始情况下R1的路由表如下:
[R1] display ip routing-table
Route Flags: R – relay, D – download to fib
——————————————————————————
Routing Tables: Public
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.1.23.0/24 OSPF 10 2 D 10.1.12.2 GigabitEthernet0/0/0
10.1.34.0/24 OSPF 10 3 D 10.1.12.2 GigabitEthernet0/0/0
44.44.44.0/24 O_ASE150 1 D 10.1.12.2 GigabitEthernet0/0/0
……
我们看到有其他区域的路由,以及外部路由44.44.44.0/24
再看一下R1的LSDB:
[R1] display ospf lsdb
OSPF Process 1 with Router ID 1.1.1.1
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 1723 36 80000005 1
Router 1.1.1.1 1.1.1.1 116 36 80000007 1
Network 10.1.12.1 1.1.1.1 116 32 80000004 0
Sum-Net 10.1.23.0 2.2.2.2 1710 28 80000002 1
Sum-Net 10.1.34.0 2.2.2.2 1655 28 80000002 2
Sum-Asbr 4.4.4.4 2.2.2.2 1572 28 80000002 2
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 44.44.44.0 4.4.4.4 1673 36 80000002 1
从上面能看到R1的LSDB里有1、2、3、4、5类LSA。
现在将area1配置为stub area:
R1的配置修改如下:
[R1] ospf 1 router-id 1.1.1.1
[R1-ospf-1] area 1
[R1-ospf-1-area-0.0.0.1] stub
[R1-ospf-1-area-0.0.0.1] network 10.1.12.1 0.0.0.0
R2的配置修改如下:
[R2] ospf 1 router-id 2.2.2.2
[R2-ospf-1] area 1
[R2-ospf-1-area-0.0.0.1] stub
[R2-ospf-1-area-0.0.0.1] network 10.1.12.1 0.0.0.0
[R2-ospf-1-area-0.0.0.1] area 0
[R2-ospf-1-area-0.0.0.0] network 10.1.23.2 0.0.0.0
需要注意的是,该命令要配置在stub区域中的所有路由器上,如果某台路由器没有配置,那么它将无法去其他stub area router建立邻接关系。
实现效果:
Area1中将不会在有4、5类LSA,也就是area2重发布进来的路由,被ABR(R2)过滤掉了,同时area1中的路由器将获取到一条ABR(R2)下发的3类LSA的默认路由。
[R1] display ip routing-table
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 OSPF 10 2 D 10.1.12.2 GigabitEthernet0/0/0
10.1.23.0/24 OSPF 10 2 D 10.1.12.2 GigabitEthernet0/0/0
10.1.34.0/24 OSPF 10 3 D 10.1.12.2 GigabitEthernet0/0/0
我们发现之前的44.44.44.0/24这条外部路由没有了,另外多了一条OSPF默认路由,这条默认路由是由ABR R2产生的,是3类LSA描述的。这个时候R1还是能ping通44.44.44.44的。
[R1]display ospf lsdb
OSPF Process 1 with Router ID 1.1.1.1
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 106 36 80000005 1
Router 1.1.1.1 1.1.1.1 109 36 80000004 1
Network 10.1.12.2 2.2.2.2 106 32 80000002 0
Sum-Net 0.0.0.0 2.2.2.2 158 28 80000001 1
Sum-Net 10.1.23.0 2.2.2.2 158 28 80000001 1
Sum-Net 10.1.34.0 2.2.2.2 158 28 80000001 2
再看R1的LSDB,我们发现4、5类LSA都没有了,只剩下1、2、3类LSA。
2. Totally stub area完全末梢区域
通过将区域规划为stub area,可以起到一定的网络优化作用,但是感觉上还不够彻底,除了外部路由,其他area的路由(LSAs)其实我也没必要知道太多细节,完全用一条默认路由替代也行嘛,那么你可以将area1配置为完全末梢区域(totally stub area),当一个区域被配置为完全末梢区域,这个区域将:
- 阻挡3、4、5类LSA进入本区域
- 区域的ABR自动下发一条3类LSA的默认路由进入本区域
这么一来,area1内路由器收到的LSA将进一步减少,在存储LSA及进行SPF算法运算的时候,耗费的资源自然也就减少了,另外当区域外拓扑出现变更的时候,对本区域的影响也将变为最小。
与stub区域类似,你无法将骨干区域area0配置为totally stub area,当然,如果一个区域被指定为totally stub area,你将不能在区域中的路由器上做路由重发布动作。
现在将area1配置为Totally stub area:
R1的配置修改如下:
[R1] ospf 1 router-id 1.1.1.1
[R1-ospf-1] area 1
[R1-ospf-1-area-0.0.0.1] stub
[R1-ospf-1-area-0.0.0.1] network 10.1.12.1 0.0.0.0
R2(ABR)的配置修改如下:
[R2] ospf 1 router-id 2.2.2.2
[R2-ospf-1] area 1
[R2-ospf-1] stub no-summary
[R2-ospf-1-area-0.0.0.1] network 10.1.12.1 0.0.0.0
[R2-ospf-1-area-0.0.0.1] area 0
[R2-ospf-1-area-0.0.0.0] network 10.1.23.2 0.0.0.0
实现效果:
完成上述配置后,area1内的路由器(ABR除外)将只有本区域内的路由,同时都能获取到ABR下发的3类的默认路由。也就是说其他区域的路由以及外部注入的路由都被ABR阻挡在外,取而代之的是一条默认路由。
[R1] display ospf lsdb
OSPF Process 1 with Router ID 1.1.1.1
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 27 36 80000008 1
Router 1.1.1.1 1.1.1.1 29 36 80000007 1
Network 10.1.12.1 1.1.1.1 25 32 80000002 0
Sum-Net 0.0.0.0 2.2.2.2 572 28 80000001 1
3. Not-So-Stubby Area 非完全末梢区域(NSSA)
在前面的知识基础上,我们已经了解到,在保证网络连通性的情况下,减少LSA的泛洪以及精简路由表,我们可以将特定区域配置为末梢区域或完全末梢区域。看下面的拓扑,我们将area2配置为stub,那么,这个区域一来将阻挡来自其他区域的4、5类LSA,同时区域内的路由器禁止重发布外部路由,那么如果此时我期望这个区域保持“阻挡其他区域过来的4、5类LSA”这个特性,同时允许我在区域本地重发布路由呢?
例如,假设area2原先是作为一个末梢区域运行的,但突然有一个外部网络,需要接入到我们这个OSPF网络中,并且连接在area2中,那么这个时候,为了保证路由的可达,就必须向area2中注入外部路由了,而这又违反了stub area的规则。
这里就引入NSSA(not-so-stubby-area)的概念,中文翻译过来,可以理解为非完全末梢区域,当你将一个区域配置为NSSA,那么这个区域一来将阻挡骨干区域过来的4、5类LSA,同时允许区域本地import-route外部路由,这些外部路由以一种特殊的LSA类型—7类LSA在NSSA中泛洪,并且7类LSA不允许进入骨干区域或常规区域,NSSA的ABR会负责将7类LSA“转换”成5类LSA,从而在常规区域中进一步泛洪。上面的“允许区域本地注入”的意思是,NSSA这个区域的路由器配置重发布,如下图。
现在将area2配置为NSSA
R3的配置修改如下:
[R3] ospf 1 router-id 3.3.3.3
[R3-ospf-1] area 2
[R3-ospf-1-area-0.0.0.2] nssa
[R3-ospf-1-area-0.0.0.2] network 10.1.34.3 0.0.0.0
[R3-ospf-1-area-0.0.0.2] area 0
[R3-ospf-1-area-0.0.0.0] network 10.1.23.3 0.0.0.0
R4(ASBR)的配置修改如下:
[R4] acl 2000
[R4- acl-basic-2000] rule permit source 44.44.44.0 0
[R4- acl-basic-2000] quit
[R4] route-policy RP permit node 10
[R4-route-policy] if-match acl 2000
[R4-route-policy] quit
[R3] ospf 1 router-id 4.4.4.4
[R3-ospf-1] import-route direct route-policy RP
[R3-ospf-1] area 2
[R3-ospf-1-area-0.0.0.2] network 10.1.34.4 0.0.0.0
[R3-ospf-1-area-0.0.0.2] nssa
实现效果:
将area2配置为nssa后,从骨干区域过来的4、5类LSA将无法进入NSSA,也就是说如果area1做了重发布,那么这些重发布的外部路由将无法进入NSSA(这是因为NSSA中不允许出现5类LSA),与此同时,area2允许本地的路由器做重发布动作,重发布进来的路由,以LSA7在NSSA中泛洪,大家在路由表中看到的这些外部路由,标记为“O_NSSA”,而这些7类LSA在“穿越”NSSA的ABR(R3)进入骨干区域之前,由ABR(R3)负责将7类LSA“转换”成5类LSA。最终area0及area1也都能学习到这些外部路由,只不过,他们路由表中呈现的是“O_ASE”标记。
我们在R3上验证一下:
[R3] display ip routing-table
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.1.12.0/24 OSPF 10 2 D 10.1.23.2 GigabitEthernet0/0/0
44.44.44.0/24 O_NSSA 150 1 D 10.1.34.4 GigabitEthernet0/0/1
……
我们看到R3学习到了44.44.44.0/24这条外部路由,并且协议类型为“O_NSSA”表示这是一条通过LSA7计算出来的路由。
[R3] display ospf lsdb
OSPF Process 1 with Router ID 3.3.3.3
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 141 36 80000014 1
Router 3.3.3.3 3.3.3.3 143 36 80000012 1
Network 10.1.23.2 2.2.2.2 141 32 80000002 0
Sum-Net 10.1.34.0 3.3.3.3 151 28 80000001 1
Sum-Net 10.1.12.0 2.2.2.2 160 28 80000006 1
Area: 0.0.0.2
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 4.4.4.4 4.4.4.4 106 36 80000004 99
Router 3.3.3.3 3.3.3.3 110 36 80000003 1
Network 10.1.34.4 4.4.4.4 111 32 80000001 0
Sum-Net 10.1.23.0 3.3.3.3 151 28 80000001 1
Sum-Net 10.1.12.0 3.3.3.3 144 28 80000001 2
NSSA 0.0.0.0 3.3.3.3 145 36 80000001 1
NSSA 44.44.44.0 4.4.4.4 158 36 80000001 1
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 44.44.44.0 3.3.3.3 106 36 80000001 1
我们看到R3的LSDB中,area2内有R4产生的7类LSA。同时R3自己做了7转5的动作,将7类LSA转换成了5类LSA,然后将这条44.44.44.0/24的5类LSA泛洪到骨干区域area0中。
所以在R2上,路由的类型就为O_ASE,这是因为描述44.44.44.0/24外部路由的LSA现在是5类LSA:
[R2] display ip routing-table
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.1.34.0/24 OSPF 10 2 D 10.1.23.3 GigabitEthernet0/0/1
44.44.44.0/24 O_ASE 150 1 D 10.1.23.3 GigabitEthernet0/0/1
……
现在我们再去R4上看一下:
[R4] display ip routing-table
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_NSSA 150 1 D 10.1.34.3 GigabitEthernet0/0/0
10.1.12.0/24 OSPF 10 101 D 10.1.34.3 GigabitEthernet0/0/0
10.1.23.0/24 OSPF 10 100 D 10.1.34.3 GigabitEthernet0/0/0
R4的路由表中,有从骨干区域area0传递过来的LSA3计算出来的路由:10.1.12.0/24及10.1.23.0/24。同时也有NSSA的ABR(R3)自动下发的7类LSA的默认路由0.0.0.0/0。
那么,既然R4有了ABR下发的默认路由,实际上是能够到达R1、R2底下的网段的,其实也就不需要其他区域的路由了,因此可以在ABR(R3)上进一步做配置,过滤掉3类LSA,进一步减少NSSA内的LSA数量,R3的配置变更如下:
[R3] ospf 1 router-id 3.3.3.3
[R3-ospf-1] area 2
[R3-ospf-1-area-0.0.0.2] nssa no-summary
[R3-ospf-1-area-0.0.0.2] network 10.1.34.3 0.0.0.0
[R3-ospf-1-area-0.0.0.2] area 0
[R3-ospf-1-area-0.0.0.0] network 10.1.23.3 0.0.0.0
如此一来,R4的路由表:
[R4] display ip routing-table
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_NSSA 150 1 D 10.1.34.3 GigabitEthernet0/0/0
就只有一条R3下发的7类默认路由了,当然这时候R3访问全网是能够通的。
四、OSPF的配置
1、基础配置
创建OSPF进程,并指定OSPF进程号及RouterID
[Router] ospf [ process-id | router-id router-id ]
其中process-id为进程号,关于进程号的详细描述,请见下文。另外Router-ID关键字指定的是本台路由器ospf的Router-ID,建议在创建OSPF进程时,采用该方法手工配置Router-ID。
在area0中宣告指定接口
[Router-ospf] area area-id
[Router-ospf-area] network ip-address wildcard-mask
上面的network命令用于在特定接口上激活OSPF。
OSPF进程号(Processor ID):
进程号取值范围1-65535,只标识ospf在本路由器内的一个进程,这个进程号只是本地有效。在同一台路由器上可以运行多个不同的OSPF进程,它们之间互不影响,彼此独立。不同OSPF 进程之间的路由交互相当于不同路由协议之间的路由交互。
进程号是本地有效,若不同的路由器之间OSPF对接,两台路由器的OSPF进程号可以不同,这是不会有任何问题的,但是为了保证网络配置的规范性和标准化,建议还是采用相同的进程号。
通配符掩码wildcard-mask:
通配符是一个用于决定哪些IP地址位该精确匹配(0代表精确匹配)哪些地址位被忽略的32位数值,通配符掩码通常用于处理访问控制列表(ACL)、OSPF和EIGRP等路由协议的网络通告。下面看一下网络掩码netmask和通配符掩码wildcard-mask的区别:
接下去看几个例子:
上面的例子中,我们在network命令后关联的IP是172.16.1.0,通配符掩码是0.0.0.255,那么将这两个数都转成二进制,其中通配符掩码位为0的位,必须严格匹配,为1的位则无所谓。那么我们就看路由器本地的接口IP,去做对应,如果能匹配上,该接口就激活OSPF,否则就不激活。
同样的拓扑,如果我们将通配符掩码换成0.0.255.255,则最后两个八位组无所谓,最终路由器的三个接口都激活了OSPF。
2、示例(单区域)
网络拓扑中包含三台路由器及两台PC;
为了能够更直观的观察到实现现象,每台路由器使用x.x.x.x的地址作为OSPF的RouterID,其中x为设备编号,例如R1的RouterID为1.1.1.1,以设备的接口编号及IP编址如图所示。
R1的配置如下:
#完成接口IP的配置
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] ip address 192.168.12.1 24
[R1] interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1] ip address 192.168.1.254 24
#创建OSPF进程1,并且设置router-ID为1.1.1.1;在R1的GE0/0/0及GE0/0/1口上激活OSPF:
[R1] ospf 1 router-id 1.1.1.1
[R1-ospf-1] area 0
[R1-ospf-1-area-0.0.0.0] network 192.168.12.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
R2的配置如下:
#完成接口IP的配置
[R2] interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0] ip address 192.168.12.2 24
[R2] interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1] ip address 192.168.23.2 24
#创建OSPF进程1,并且设置router-ID为2.2.2.2;在R1的GE0/0/0及GE0/0/1口上激活OSPF:
[R2] ospf 1 router-id 2.2.2.2
[R2-ospf-1] area 0
[R2-ospf-1-area-0.0.0.0] network 192.168.12.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0] network 192.168.23.0 0.0.0.255
R3的配置如下:
#完成接口IP的配置
[R3] interface GigabitEthernet 0/0/0
[R3-GigabitEthernet0/0/0] ip address 192.168.23.3 24
[R3] interface GigabitEthernet 0/0/1
[R3-GigabitEthernet0/0/1] ip address 192.168.2.254 24
#创建OSPF进程1,并且设置router-ID为3.3.3.3;在R3的GE0/0/0及GE0/0/1口上激活OSPF
[R3] ospf 1 router-id 3.3.3.3
[R3-ospf-1] area 0
[R3-ospf-1-area-0.0.0.0] network 192.168.2.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0] network 192.168.23.0 0.0.0.255
完成配置后我们来做一下查看及验证,首先看一下OSPF的邻居关系,这是OSPF路由收敛的基础,如果邻居关系的状态不正确,那么路由肯定是无法正常获悉的,我们在R1上先做个查看:
[R1] display ospf peer
OSPF Process 1 with Router ID 1.1.1.1
Neighbors
#以下是R1的G0/0/0口的OSPF邻居
Area 0.0.0.0 interface 192.168.12.1(GigabitEthernet0/0/0)’s neighbors
Router ID: 2.2.2.2 Address: 192.168.12.2
State: Full Mode:Nbr is Master Priority: 1
DR: 192.168.12.2 BDR: 192.168.12.1 MTU: 0
Dead timer due in 34 sec
Retrans timer interval: 5
Neighbor is up for 01:53:16
Authentication Sequence: [ 0 ]
使用display ospf peer命令能查看OSPF邻居关系,上面的输出就是R1的OSPF邻居关系,我们看到R1发现了一个OSPF邻居,这个OSPF邻居是连接在R1的GE0/0/0口上,且其RouterID为2.2.2.2,接口IP为192.168.12.2。最重要的是状态为Full,表示R1与R2的OSPF邻居关系已经为全毗邻状态。
同理在R2上应该能看到两个OSPF邻居,而在R3上能看到一个OSPF邻居。
接下去看看路由表。
[R1] display ip routing-table
Route Flags: R – relay, D – download to fib
——————————————————————————
Routing Tables: Public
Destinations : 12 Routes : 12
Destination/Mask ProtoPre CostFlags NextHop Interface
192.168.1.0/24 Direct 0 0 D 192.168.1.254 GigabitEthernet0/0/1
192.168.1.254/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
192.168.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
192.168.2.0/24 OSPF10 3 D 192.168.12.2 GigabitEthernet0/0/0
192.168.12.0/24 Direct 0 0 D 192.168.12.1 GigabitEthernet0/0/0
192.168.12.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
192.168.12.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
192.168.23.0/24 OSPF 10 2 D 192.168.12.2 GigabitEthernet0/0/0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
在上述输出中,我们看到R1已经学习到两条OSPF路由,分别是192.168.2.0/24及192.168.23.0/24;同理在R2就R3上也能看到相应的OSPF路由。现在PC1及PC2就能够互相通信了。
3、示例(多区域)
网络中包含三台路由器及两台PC;
为了能够更直观的观察到实现现象,每台路由器使用x.x.x.x的地址作为OSPF的RouterID,其中x为设备编号,例如R1的RouterID为1.1.1.1;OSPF区域的规划如图所示;
R1的配置如下:
#完成接口IP的配置
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] ip address 192.168.12.1 24
[R1] interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1] ip address 192.168.1.254 24
#在R1的GE0/0/0及GE0/0/1口上激活OSPF
[R1] ospf 1 router-id 1.1.1.1
[R1-ospf-1] area 0
[R1-ospf-1-area-0.0.0.0] network 192.168.12.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
R2的配置如下:
#完成接口IP的配置
[R2] interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0] ip address 192.168.12.2 24
[R2] interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1] ip address 192.168.23.2 24
#在R2的GE0/0/0及GE0/0/1口上激活OSPF,需留意,R2是ABR,因此要注意激活的OSPF接口所在的区域。
[R2] ospf 1 router-id 2.2.2.2
[R2-ospf-1] area 0
[R2-ospf-1-area-0.0.0.0] network 192.168.12.0 0.0.0.255
[R2-ospf-1] area 1
[R2-ospf-1-area-0.0.0.1] network 192.168.23.0 0.0.0.255
R3的配置如下:
#完成接口IP的配置
[R3] interface GigabitEthernet 0/0/0
[R3-GigabitEthernet0/0/0] ip address 192.168.23.3 24
[R3] interface GigabitEthernet 0/0/1
[R3-GigabitEthernet0/0/1] ip address 192.168.2.254 24
#在R3的GE0/0/0及GE0/0/1口上激活OSPF
[R3] ospf 1 router-id 3.3.3.3
[R3-ospf-1] area 0
[R3-ospf-1-area-0.0.0.0] network 192.168.2.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0] network 192.168.23.0 0.0.0.255
完成配置后,PC1与PC2即可互相ping通。
4、查看及验证
查看OSPF协议相关运行参数
display ospf brief
查看OSPF邻居表
display ospf peer
查看LSDB表
display ospf lsdb
查看OSPF路由
display ospf routing
更多博客文章,请访问我的独立博客:一日程博客:http://www.yiricheng.cn/