本期介绍OSPF(Open Shortest Path First)协议相关知识,。OSPF协议是基于链路状态的路由协议,收敛快速,层次化多区域设计,部署在各种规模网络上。OSPF协议原理较为复杂,但是很成熟稳定而广为使用。
区别于上期介绍的需要网络工程师逐条指定数据走向的静态路由,动态路由是网络设备之间互相学习彼此的路由条目,从而规划从自己到相关目的网段的路径走向。举一个最简单的例子,如下图所示,A网络设备有10.0.11.0/24, 10.0.12.0/24, 10.0.13.0/24,B网络设备有10.0.130.0/24,10.0.131.0/24, 10.0.133.0/24网段,那么A设备和B设备分别把自己知道的网段通告出去,A B之间互相学习到对方设备通告的网段的过程。当然A与B之间互相学习的前提是A与B能够通信,且运行相同的路由协议,能够相互交流,读懂对方发送的信息。
OSPF有如下特点:
1、 支持大型网络:基于层次化多区域设计,可支持几百台路由器的大型网络。
2、 无自环:与二层环路易造成广播风暴耗尽设备资源原理相同,三层环路也会造成报文在网络中空转。OSPF路由器以自己为根,将收集到的链路状态通过最短路径算法(SPF算法)计算路由,从算法本身保证了不会生成环路,一般正常配置是极其不容易造成环路的。
3、 快速收敛:OSPF网络运行时,机制复杂,可能需要数十秒才能计算完成,网络进入稳定状态。网络稳定后,拓扑的变更和路由条目的增加都通过优化的方式来进行处理,只需要计算变化的部分,这样减少了CPU负荷,提升了网络收敛性能。
4、 无类路由:一般应用场合通常用C类地址,熟知的192.168.1.0/24(可用地址为192.168.1.1到192.168.1.254共254个IP地址),但是在一些场合,比如网络出口位置,可能只需要2个或者3个IP地址,这时候在给接口分配24位掩码IP地址就是不合适的,此时可以将掩码设置为30位(可用IP地址2)或者29位(可用IP地址6)。如上的能够分辨出掩码信息,叫无类,不能分别出掩码信息,见到192.168就默认它是24位掩码叫有类。古老的RIP v1版本路由协议是有类路由协议,其他的主流的路由协议都是无类路由协议。
5、 区域化设计:OSPF协议中以Area0为骨干区域,普通区域(Area)之间的通信必须经由骨干区域(Area0)中转才能实现。这种设计可参考我们自动化项目中的模块化设计,区域内问题尽可能不影响其他区域。
6、 层次化设计:自动化网络往往通过工业防火墙与其他区域交换路由条目,自动化系统可能不关心除自动化系统之外的其他网段的具体条目(如果需要了解其他Area的具体路由条目可将自动化系统配置为普通Area或者骨干Area0),这时可以考虑将自动化系统设置为末节区域或者完全末节区域(Stub或者Totally Stub区域),减少计算资源的消耗,对网络稳定性也有一定的积极作用。另外,自动化系统路由设备尽可能减小路由条目且需要引入外部路由时可考虑NSSA和Totally NSSA区域。
7、 支持验证:可以对OSPF报文进行加密,保证路由计算的安全性,防止非法路由器干扰。
OSPF的基本配置:
通过配置OSPF,两台核心交换机互相学到对方机器的直连网段。如下截图均来自192.168.8.4所在机器,另外一台机器配置相似。
1、 配置各个子网接口
2、 OSPF开启(西门子交换机XM400、XR500系列、之前的X400才有三层功能)
Layer3(IPv4)→Configuration下开启Routing。
Layer3(IPv4)→OSPFv2下开启OSPFv2,另外OSPFv2 RFC1583 Compatibility与外部路由引入时计算方式有关,一般可开启也可不开启,区域内路由器统一即可。
Router ID必须指定,且每台设备的ID不能相同。西门子SCALANCE交换机必须手工指定,避免了设备自行挑选自身最大的IP地址作为Router id,对网络管理和分析造成不利影响。Router ID形如IP地址,但是不具备通信功能,所以一般可将其配置成设备的管理地址或者形如4.4.4.4形式,方便记忆。本例中两台设备的Router ID分别为4.4.4.4 和5.5.5.5。
3、 西门子SCALANCE X交换机默认已经建立了骨干区域Area 0.0.0.0。本例中只需要将需要通告的网段通告到骨干区域中即可。
4、 查看OSPF工作状态
Information→IPv4 Routing目录OSPFv2 Neighbors选项卡下可查看到neighbors,状态为full,表示两台设备已经交换完路由条目,建立了邻接关系,网络已经稳定。
Information→IPv4 Routing目录OSPFv2 LSDB下可查看链路状态数据库,两台路由器的LSDB是相同的。
Information→IPv4 Routing目录Routing Table可看到已经学到了对端的路由条目。
System→ping目录下输入对端IP地址,可以验证通信情况。
5、 安全问题
将PC接入交换机的一个Trunk口(允许vlan 1、11 、12、13带标签通过),可以抓到各个接口的OSPF的hello报文。
借助于Wireshark的报文分析功能,可直观看出区域,路由器掩码等很多信息,对网络安全不利。
我们可以借助于认证功能,通过认证后才可以建立邻居邻接关系,交换路由条目。
在选择simple加密类型时,密码是明文传输,通过抓包可以很容易看到密码,如我设置的密码为Siemens。
在选择md5加密类型时,密码是加密传输,密码仍为Siemens但是抓包显示是一串数字,即使抓到数据包也不容易分析出密码,在一定程度上保证了网络安全。
6、 在上一个条目中,我们在Trunk口可以看到多个hello报文,甚至在接入终端设备的接口也可以抓到相关vlan的hello报文。这些报文有优化的空间吗?三层交换机在配置OSPF时有哪些需要注意的地方,我们下期在继续探讨。