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
OSPF协议介绍及配置 (下)的更多相关文章
- OSPF协议介绍及配置 (上)
		
OSPF协议介绍及配置 (上) 一.OSPF概述 回顾一下距离矢量路由协议的工作原理:运行距离矢量路由协议的路由器周期性的泛洪自己的路由表,通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加 ...
 - OSPF协议介绍及配置
		
一.OSPF概述 回顾一下距离矢量路由协议的工作原理:运行距离矢量路由协议的路由器周期性的泛洪自己的路由表,通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中,而对于这个网 ...
 - OSPF协议原理及配置3-邻居关系的建立
		
OSPF协议原理及配置3-邻居关系的建立 OSPF协议的邻居关系是通过交换Hello报文建立的,所以我们先对OSPF的报文的种类,及Hello报文的结构做一了解. 1 OSPF协议有5种协议报文( ...
 - OSPF协议原理及配置4-邻接关系的建立和LSDB同步
		
OSPF协议原理及配置4-邻接关系的建立和LSDB同步 进入ExStart状态后,广播和NBMA型网络要等待4倍的Hello时间,确定DR和BDR.然后建立邻接关系,并交互链路状态通告,以使用LS ...
 - OSPF协议原理及配置5-LSA分析
		
OSPF协议原理及配置5-LSA分析 前面,已经介绍了邻接关系的建立和LSDB的同步.通过同步过程的介绍,我们可以了解LSDB的同步是通过交互LSA实现的. 不同角色的路由器发出的LSA的内容是不 ...
 - OSPF协议原理及配置2-理解邻居和邻接关系
		
OSPF是一个动态路由协议,运行OSPF的路由器之间需要交换链路状态信息和路由信息,在交换这些信息之前首先需要建立邻接关系.邻接关系用来交换链路状态及路由信息. 注意:并非所有的邻居关系都可以成为邻接 ...
 - H3C路由器配置——动态路由OSPF协议
		
一.介绍 1.OSPF协议介绍 (1).OSPF(Open Shortest Path First,开放最短路径优先)路由协议是用于网际协议(IP)网络的链路状态路由协议.是一个被各厂商设备广泛支持的 ...
 - 路由器配置——OSPF协议(2)
		
一.实验目的:使用OSPF协议达到全网互通的效果 二.拓扑图 三.具体步骤配置 (1)R1路由器配置 Router>enableRouter#configure terminalEnter co ...
 - 路由器配置——OSPF协议(1)
		
一.实验目的:用OSPF协议使全网互通 二.拓扑图 三.具体步骤配置 (1)R1路由器配置 Router>enableRouter#configure terminalEnter configu ...
 
随机推荐
- PHP 中的mktime()函数本周时间
			
上周写一个接口,用到了本周的开始时间和结束时间作为筛选条件去筛选数据,我只记得有mktime()这个函数,具体怎么用的不太清楚,于是百度之,找到了这个: 本周开始时间:date("Y-m-d ...
 - jquery.validate使用 - 3
			
自定义jquery-validate的验证行为 1: 自定义表单提交 设置submitHandler来自定义表单提交动作 $(".selector").validate({ ...
 - 180729-Quick-Task 动态脚本支持框架之任务动态加载
			
Quick-Task 动态脚本支持框架之任务动态加载 前面几篇博文分别介绍了整个项目的基本架构,使用说明,以及整体框架的设计与实现初稿,接下来则进入更细节的实现篇,将整个工程中核心实现捞出来,从为什么 ...
 - Linux大全
			
Linux 基本指令介紹 一定要先學會的指令:ls, more, cd, pwd, rpm, ifconfig, find 登入與登出(開機與關機):telnet, login, exit, sh ...
 - NO.06--聊一聊“币”吧!
			
近期博主更新的频率明显慢来 ,一来是最近的工作比较忙碌,几个项目几乎同时要上线.二来是在思考是不是把我平时生活中的一些事情写进来博客,不只是分享分享技术. 趁着区块链.比特币火爆,博主也算是略有涉猎, ...
 - SICP读书笔记 1.2
			
SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 ...
 - 华为笔试——C++进制转换
			
题目:2-62进制转换 题目介绍:输入一个n1 进制的整数(包括负数),将其转换成n2 进制,其中n1 .n2 的范围是 [ 2,62 ] .每个数字的范围是0-9.a-z.A-Z.不用考虑非法输入. ...
 - Python学习小目录汇总
			
python其他知识目录 python基础知识-1 1.typora软件使用 2.python解释器安装 3.Python解释器环境变量添加 4.计算机编码知识: 5.输出print(): 6.变量 ...
 - 【转】SWFUpload 官方说明文档(2.5.0版)
			
原文出自:http://www.runoob.com/w3cnote/swfupload-document.html SWFUpload使用指南请查阅:http://www.w3cschool.cc/ ...
 - Farm Irrigation ZOJ 2412(DFS连通图)
			
Benny has a spacious farm land to irrigate. The farm land is a rectangle, and is divided into a lot ...