摘 要
随着网络技术的发展,互联网正影响着各个领域的企业。企业局域网的建设的企业走向信息化发展的必经之路。模拟搭建大型企业局域网可以在条件有限的环境下研究这一意义重大的课题。企业局域网的要求概括起来可归纳为四点:高效、稳定、安全、可扩展。基于以上四点的企业局域网需求,本次课程设计决定采用基于三层网络构架的拓扑结构。利用思科模拟器来呈现整个企业局域网的环境。本次设计采用了OSPF(开放最短路径优先)协议作为主要的路由协议,使企业局域网互通。
OSPF是Open Shortest Path First(即―开放最短路由优先协议‖)的缩写。它是IETF(Internet Engineering Task Force)组织开发的一个基于链路状态的自治系统内部路由协议(IGP),用于在单一自治系统(Autonomous system,AS)内决策路由。在IP网络上,它通过收集和传递自治系统的链路状态来动态地发现并传播路由。OSPF(下称“协议”或“本协议”)仅在单一自治系统内部路由网际协议(IP)数据包,因此被分类为内部网关协议。该协议从所有可用的路由器中搜集链路状态(Link-state)信息从而构建该网络的拓扑图,由此决定提交给网际层(Internet Layer)的路由表,最终路由器依据在网际协议数据包中发现的目的IP地址,结合路由表作出转发决策。
本协议使用Dijkstra算法计算出到达每一网络的最短路径,并在检测链路的变化情况(如链路失效)时执行该算法快速收敛到新的无环路拓扑。
本协议可以通过调整路由界面的开销值来管控数据包的流向(也就是说,OSPF通过开销值来落实管理员锁制定的路由策略)。开销值是RTT、链路吞吐量、链路可用(可靠)性等衡量因素的无量纲整数表达。
一个OSPF网络可以划分成多个与骨干区域(BackboneArea,区域号为0)相连的区域,各区域的区域号可以使用正整数(如0)或点分十进制记法(如0.0.0.0)表达。0号(或0.0.0.0号)区域分配给该网络的核心,称为骨干区域,其他区域必须与骨干区域通过区域边界路由器(Area Border Router)直接或间接(通过OSPF虚链接)相连。同时,ABR负责维护全网的聚合路由,并为每个区域保留一份单独的链路状态数据库(Link-State Database)。
与大多数路由协议不同(参考BGP和RIP的工作过程),本协议不依赖于传输层协议(如TCP、UDP)提供数据传输、错误检测与恢复服务,数据包直接封装在网际协议(协议号89)内传输。
本协议使用多播(Multicast)技术提供邻居发现(NeighborDiscovery)服务,对于不支持多播(广播)功能的链路,协议提供了相应的配置选项以便正常工作。默认情况下,协议监听224.0.0.5(IPv4)、FF02::5(IPv6)组播地址(别名:AllSPFRouters)。对于DR与BDR,协议会额外监听224.0.0.6(IPv4)、FF02::6(IPv6)组播地址(别名:AllDRRouters)。本协议数据包只传输一跳(TTL或Hop Count等于且仅等于1),不能跨越广播域。
在一个广播性、多路访问的网络(例如Ethernet、TokenRing及FDDI环境)中,如果每个路由器都独立地与其他路由器进行LSU(Link State Update Packet,链路状态更新包)交换,以同步各自的LSDB,将导致一个巨大的流量增长。为了防止出现这种现象,同时使路由器保存的链路状态信息最少,OSPF在这类网络上选举出一个DR(DesignatedRouter,指定路由器)和BDR(BackupDesignated Router,备份指定路由器)。区域内那些既不是DR,也不是BDR的路由器称之为DR Other。
DR就是集中负责一个区域内各路由器间的LSU交换和邻接关系建立,相当于这个区域的负责人一样。由于OSPF路由器之间是通过建立邻接关系,及以后的泛洪来进行链路状态数据库是同步的,所以DR必须与所有同一区域的OSPF路由器建立邻接关系(其他路由器间不必建立邻接关系),负责集中管理、维护和组播下发区域内各路由器发来的链路状态信息。DR或者BDR通常是处于一个区域的中心地位,使其他路由器与它建立邻接关系的难易程度相当。BDR是用于在DR失效后接替DR的工作(也可不选举BDR),在DR正常工作时,它不担当DR的职责。在同一个OSPF区域中,每个路由器都和DR,BDR相连。
就像一个团体,其中必须要指定一个负责人。这个负责人负责其他成员的信息反馈、转发和广播(他保存有所有成员之间的联系信息),其他每个成员也都与这个负责人建立单线联系,而其他成员之间彼此不建立联系。这样就不需要每个成员都保存整个团体会员的联系信息,也不必每个成员都与其他成员建立联系,管理更加简单。这个团体的负责人就相当于这里所说的DR了。
当区域中的路由器有路由更新时,DR Other路由器不会向其他DR Other路由器发送自己的LSU,而只会向224.0.0.6这个组播地址发送,然后由224.0.0.6这个地址会把DR Other发上来的LSU组播给DR/BDR,之后DR/BDR都会收到这个DR Other的路由更新。在DR/BDR收到从224.0.0.6发过来的LSU后又会把这些LSU发给224.0.0.5这个组播地址,这时224.0.0.5会把LSU泛洪到区域内的所有DR Other路由器上。这样,区域网络上的所有DR Other路由器都会知道最这个起源的DR Other路由器的路由更新,而不用每个DR Other路由器进行SPF计算。
在如图9-3所示的示例中,假设一开始没有选举DR和BDR,则在其中的任何一台路由器的路由发生了改变时,区域内的其他路由器都得重新进行SPF计算,生成新的LSDB表项。但如果选举了R3作为DR,R4和R5均为DR Other,则当R4所连接的网络发生了变化时,R4只会把自己LSU发送到224.0.0.6这个组播地址,然后224.0.0.6会把这个LSU组播传送给R3。R3在收到R4的LSU后会对比自己的LSDB,发现LSDB里面只有关于R4的条目是需要更新,于是便把一个关于R4的LSU发送到224.0.0.5组播地址,这时224.0.0.5就会整个区域中组播R4的这一个LSU包。R5收到224.0.0.5发过来LSU之后直接更新自己LSDB,不需要重新进行SPF计算。
通过这样一种LSU发送方式规则,就变原来的"多点对多点"信息发送为"单点到多点"的信息发送,一方面可更有效地利用网络带宽资源,二则可以提高LSU信息发送效率。
DR Other仅与DR和BDR之间建立邻接关系,DR Other之间不交换任何路由信息。这样就减少了广播网和NBMA网络上各路由器之间邻接关系的数量,同时减少网络流量,节约了带宽资源。如图9-4所示,用实线代表以太网物理连接,虚线代表建立的邻接关系。可以看到,采用DR/BDR机制后,5台路由器之间只需要建立7个邻接关系就可以了,如果不选举DR和BDR的话,大家画一下,看有多少条邻接关系。
DR和BDR也不是随便担当的,是需要选举产生,就像我们在学校选正、副班长一样,也是要投票选举的。DR是通过接口优先级(Interface Priority)进行选举,最高优先级的路由器被选为DR,次高者被选为BDR;如果接口优先级相同,就按router-id进行选举,由最大到次大选举DR、BDR。
这里所说的接口优先级是由OSPF协议定义的(如Cisco路由器配置接口优先级命令是ip ospf priority),可以配置的优先级值在0~255之间(默认值为1,值越大,优先级越高)。但DR、BDR的选举不支持抢占(Preemption),也就是一旦选举完成,即使新加一个优先级更高的设备也不会进行重新的选择,相反只有在DR或者BDR出问题的时候才会发生重选。就像一个班上已选举了正、副班长,当新插入了一个学生后,也不会重新选举班委,即使新来的学生各方面能力比原班长、副班长强,除非原来的正、副班长出了问题。
本课程设计是为了让我们了解学习计算机网络的作用和意义。通过课程设计,掌握IP地址的配置以及OSPF协议的配置。培养我们在网络实践中的能力。
网络发展离不开路由协议,OSPF路由协议是典型的链路状态的路由协议,一般用于同一个路由区域内。在这里,路由域是指一个自治系统,它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。在这个自治系统中,所有的OSPF路由器都维护一个相同的描述这个自治系统结构的数据库,该数据库中存放的是路由域中相应链路的状态信息,OSPF路由器正是通过这个数据库计算出其OSPF路由表的。
利用OSPF 协议互连4个公司,具体包括:
(1) 企业总部包含3台路由器和8台交换机;
(2) 企业部分1包含3台路由器和6台交换机;
(3) 企业部分2包含2台路由器和4台交换机;
(4) 企业部分3包含2台路由器和4台交换机。
OSPF的区域及区域路由汇总规划设计如表1所示:
区域ID |
区域类型 |
区域包含的路由器接口 |
区域汇总后的网络前缀 |
0 |
骨干区域 |
路由器R1的G0/0,G0/1,G0/2,G0/3,G4/0 G5/0和路由器R2的G0/0,G1/0,G2/0,G3/0,G4/0,G5/0 |
10.1.0.0/21 |
1 |
标准区域 |
路由器R1-1、路由器R1-2、路由器R1-3的所端口,路由器R1的G6/0、路由器R2的6/0 |
10.2.0.0/22和 10.2.4.0/23 |
2 |
完全末节区域 |
路由器R2-1和路由器R2-2的所有端口 |
10.3.0.0/22 |
3 |
次末端区域 |
路由器R3-1的所有端口,路由器R3-2的G0/0,G1/0,G2/0和路由器R2的G7/0 |
10.4.0.0/22 |
表1
OSPF路由规划表如表2所示:
设备 |
路由器类型 |
路由器ID |
被动接口 |
R1 |
ABR和BR |
1.1.1.1 |
G1/0,G2/0,G3/0,G4/0 |
R2 |
ABR和BR |
2.2.2.2 |
G2/0,G3/0,G4/0,G5/0 |
R3 |
ASBR和BR |
3.3.3.3 |
|
R1-1 |
IR |
11.11.11.11 |
G3/0,G4/0 |
R1-2 |
IR |
12.12.12.12 |
G3/0,G4/0 |
R1-3 |
IR |
13.13.13.13 |
G2/0,G3/0 |
R2-1 |
IR |
21.21.21.21 |
Fa1/0,fa4/0 |
R2-2 |
IR |
22.22.22.22 |
Fa1/0,fa4/0 |
R3-1 |
IR |
31.31.31.31 |
G2/0,G3/0 |
R3-2 |
ASBR |
32.32.32.32 |
G1/0,G2/0 |
表2
DR和BDR规划如表3所示:
表3
配置每一个路由器端口的IP 地址(以R1为例):
R1:
Router>enable
Router#config t
Enter configuration commands, one perline. End with CNTL/Z.
Router(config)#interface Gig1/0
Router(config-if)#ip address 10.1.4.1255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#
%LINK-5-CHANGED: InterfaceGigabitEthernet1/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol onInterface GigabitEthernet1/0, changed state to up
Router(config-if)#exit
Router(config)#interface Gig2/0
Router(config-if)#ip address 10.1.5.1255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#
%LINK-5-CHANGED: InterfaceGigabitEthernet2/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol onInterface GigabitEthernet2/0, changed state to up
Router(config-if)#exit
Router(config)#interface Gig3/0
Router(config-if)#ip address 10.1.6.1255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#
%LINK-5-CHANGED: Interface GigabitEthernet3/0,changed state to up
%LINEPROTO-5-UPDOWN: Line protocol onInterface GigabitEthernet3/0, changed state to up
Router(config-if)#exit
Router(config)#interface Gig4/0
Router(config-if)#ip address 10.1.7.1255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#
%LINK-5-CHANGED: InterfaceGigabitEthernet4/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol onInterface GigabitEthernet4/0, changed state to up
Router(config-if)#exit
Router(config)#
Router>enable
Router#config t
Enter configuration commands, one perline. End with CNTL/Z.
Router(config)#interface Gig0/0
Router(config-if)#ip address 10.0.0.1255.255.255.252
Router(config-if)#no shutdown
Router(config-if)#
%LINK-5-CHANGED: InterfaceGigabitEthernet0/0, changed state to up
Router(config-if)#exit
Router(config)#
Router#
Router>enable
Router#config t
Enter configuration commands, one perline. End with CNTL/Z.
Router(config)#interface Gig5/0
Router(config-if)#ip address 10.0.0.5255.255.255.252
Router(config-if)#no shutdown
Router(config-if)#
%LINK-5-CHANGED: InterfaceGigabitEthernet5/0, changed state to up
Router(config-if)#exit
Router(config)#
%LINEPROTO-5-UPDOWN: Line protocol onInterface GigabitEthernet5/0, changed state to up
Router(config)#interface gig 6/0
Router(config-if)#ip address 10.0.0.13255.255.255.252
Router(config-if)#no shutdown
Router(config-if)#
%LINK-5-CHANGED: InterfaceGigabitEthernet6/0, changed state to up
exit
Router(config)#interface gig7/0
Router(config-if)#ip address 10.0.0.21 255.255.255.252
Router(config-if)#no shutdown
Router(config-if)#
%LINK-5-CHANGED: InterfaceGigabitEthernet7/0, changed state to up
Router(config-if)#exit
Router(config)#exit
Router#
划分OSPF区域(以R1为例):
Router>enable
Router#config t
Enter configuration commands, one perline. End with CNTL/Z.
Router(config)#router ospf 1
Router(config-router)#router-id 1.1.1.1
Router(config-router)#network 10.1.4.0255.255.255.0 area 0
Router(config-router)#network 10.1.5.0255.255.255.0 area 0
Router(config-router)#network 10.1.6.0255.255.255.0 area 0
Router(config-router)#network 10.1.7.0255.255.255.0 area 0
Router(config-router)#network 10.0.0.0255.255.255.252 area 0
Router(config-router)#network 10.0.0.4255.255.255.252 area 0
Router(config-router)#end
Router#
设置被动端口(以R1为例):
Router>enable
Router#config t
Enter configuration commands, one perline. End with CNTL/Z.
Router(config)#router ospf 1
Router(config-router)#passive-interfacegig1/0
Router(config-router)#passive-interfacegig2/0
Router(config-router)#passive-interfacegig3/0
Router(config-router)#passive-interfacegig4/0
Router(config-router)#end
Router#
设置路由器的优先级(以R1为例):
R1:
Router>enable
Router#config t
Enter configuration commands, one perline. End with CNTL/Z.
Router(config)#interface gig6/0
Router(config-if)#ip ospf priority 100
Router(config-if)#exit
Router(config)#interface gig 7/0
Router(config-if)#ip ospf priority 100
Router(config-if)#exit
Router(config)#interface gig5/0
Router(config-if)#ip ospf priority 100
Router(config-if)#exit
Router(config)#interface gig0/0
Router(config-if)#ip ospf priority 100
Router(config-if)#end
Router#
这里根据表3的DR和BDR规划可以得出路由器的优先级关系如下:
R1>R2>R3
R1>R1-1>R1-2>R1-3
R2>R1-2
R1>R2-1>R2-2
R2>R3-1>R3-2
因此其他路由器可以根据此优先级关系得出其他路由器的优先级,而这里我们是通过设置每一个端口的优先级来设置整个路由器的优先级。
配置R3-2的G3/0的静态路由:
Router>enable
Router#config t
Router(config)#interface gig3/0
Router(config-if)#ip address 172.16.1.1255.255.0.0
Router(config-if)#no shutdown
图2为区域0内R1键入ip showospf interface和ipshow ospf neighbor后的结果:
图2
图3为区域1的R1-1键入show ip ospfinterface和show ip ospf neighbor后的结果:
图3
图4为区域2的R2-1键入show ip ospf interface和show ip ospf neighbor后的结果:
图4
图5为区域3的R3-1键入show ip ospfinterface和show ip ospf neighbor后的结果:
图5