如何用OSPF搭建与物理网络通信的桥梁
如何用OSPF搭建与物理网络通信的桥梁,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
创新互联建站是专业的阿拉善盟网站建设公司,阿拉善盟接单;提供网站设计、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行阿拉善盟网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
前言
随着新基建建设速度的不断加快、建设规模的不断扩大,云计算中对网络的要求也越来越高,尤其以大型数据中心网络上云为代表,构建云数据中心,如何解决云数据中心与物理数据中心联接的问题也愈发明显。以往,多数云平台一般是通过加载“外部网络”到达物理交换机或防火墙设备上,然后再通过物理交换机或防火墙,与物理数据中心网络实现路由互通;但这种方式也增加了硬件及运维的成本。在此情况下,OSPF就成了能够很好解决云平台内部网络和物理外部网络之间连接问题的“桥梁”。
OSPF路由协议简
在了解OSPF的基本概念之前,我们先大概介绍下路由。
众所周知,路由分为直连路由、静态路由和动态路由。其中,动态路由通过动态路由协议进行维护,动态路由协议包括了RIP、OSPF、IS-IS等内容。动态路由协议通过路由信息的交换生成并维护转发所需的路由表,当网络拓扑结构改变时动态路由协议可以自动更新路由表,并负责决定数据传输的最佳路径。在此环境下,管理员不需要像对待静态路由一样,通过人工方式对路由器上的路由表进行维护,而是在每台路由器上运行一个路由协议。这个路由协议会根据路由器上接口的配置及所连接的链路状态,生成路由表中的路由表项。
OSPF是一种基于SPF算法的链路状态的内部网关路由协议,全称叫开放最短路径优先协议。
每台运行OSPF的路由器都了解整个网络的链路状态信息。首先,OSPF的收敛过程由链路状态公告LSA(Link State Advertisement)泛洪开始,收到LSA的路由器根据LSA提供的信息,建立自己的链路状态数据库LSDB(Link State Database)。之后,通过SPF算法,在LSDB的基础上自行计算,构建起到每个网络的最短路径树。最后,通过最短路径树,得出到达目的网络的最优路由,并将其加入到IP路由表中。
在此过程中,只有建立起邻接关系才会计算路由信息。在使用OSPF之后,路由器会周期性的发送Hello报文;当收到邻居发来的Hello包以后,状态变更为Init状态;路由器互相收到了从邻居发来的Hello报文,就会切换为2-Way状态;在此状态下,双向通信已经建立,但是尚未与邻居建立起邻接关系,这是建立邻接关系以前的最高级状态。
如果网络为广播网络,这个时候就会选举DR/BDR(DR:广播网络中的指定路由器,所有邻居只和DR/BDR同步LSA条目,以此减少OSPF流量;BDR:备份指定路由器),与后续所有路由器建立关系,减少邻居会话;再之后,网络会经过ExStart、Exchange、Loading、Full状态建立起邻接关系,再由DR将计算出的整个网络的拓扑信息发送给所有路由器;最后,所有路由器以自己为根,根据算法计算出到各网段的最优路径并写入路由表。该段所描述过程如下图所示:
数据链路层协议分为多种,Ethernet、PPP、HDLC及帧中继等,一般常用的为Ethernet。那么当数据链路层协议是Ethernet的时候,OSPF支持的默认网络类型为广播类型,在此网络类型下,需要进行DR和BDR的选举,选举的目的是减少邻居会话,产生网络LSA。一般在邻居发现完成之后,路由器会根据网段类型、以及参与选举的每个接口的优先级,进行DR选举,值越高越优先,默认为1;当优先级相同时,再去比较Router ID,值越大越优先。为了给DR做备份,还要选举一个BDR。DR、BDR会与网络上所有的路由器建立邻接关系。
为了控制LSA 泛洪的范围,减小LSDB的大小,实现网络快速地收敛,OSPF协议会按照一定标准,将一个自治系统划分为不同区域,用于分层管理路由器。
1、Standard:标准区域(Standard Area),支持所有类型的LSA;
2、Stub:末节区域(Stub Area),不支持第4、5类型的LSA;
3、NSSA:Stub衍变的末节区域(Not So Stubby Area),只支持学习第7类型的LSA。
其中,Stub区域中路由器的路由表规模,以及路由信息传递的数量,都会大大减少。Stub区域是不能引入外部路由的,这样可以避免大量外部路由对Stub区域路由器带宽和存储资源的消耗。
那么,对于既需要引入外部路由又要避免外部路由带来资源消耗的场景,Stub区域就不再满足需求了。因此,Stub区域的变形——NSSA区域(not so stub area)就产生了。
OSPF在ZStack云平台中的实现
我们在ZStack云平台中的网络资源-VPC-路由协议资源里面,可以配置OSPF路由协议。
区域ID:在一个自治系统中,每个OSPF区域采用区域ID标识,全局唯一。0号区域(区域ID:0.0.0.0)称为骨干区域,所有区域必须与骨干区域连通。
区域类型:OSPF区域包括Standard、Stub及NSSA三种类型。同一VPC路由器可以添加到不同OSPF区域;但同一VPC路由器上的网络(VPC网络、公有网络)只能添加到一个OSPF区域。
认证方式:为增强协议包的安全性,OSPF协议支持区域认证加密,OSPF区域共支持三种认证方式。1、None:接收报文时不进行身份认证;2、Plaintext:接收报文时通过报文中携带的密码进行身份认证;3、MD5:接收报文时通过报文中携带的Key ID和密码散列值进行身份认证。
OSPF的应用场景
场景一:用户存在于云平台上的两个不同的虚拟VPC网络环境。为了两个VPC网络环境能够相互通信,在ZStack环境中,创建同一区域的OSPF区域,将两个三层网络隔离的虚拟VPC路由器加入到同一个OSPF区域;路由器间通过OSPF协议建立邻居关系,相互通信,即可实现两个不同的虚拟VPC路由器中网络之间的相互通信。过程如下图所示:
场景二:用户存在两套网络环境:一套为云平台上的虚拟VPC网络环境、一套为物理环境中已配置OSPF协议的传统网络环境。为了两套网络环境能够相互通信,在ZStack环境中,创建一个与物理环境中一样的OSPF区域,将三层网络隔离的虚拟VPC路由器和传统路由器加入到同一个OSPF区域;路由器间通过OSPF协议建立邻居关系,相互通信,就可实现虚拟VPC路由器中的网络与传统网络间相互通信。
不同VPC网络通过OSPF实现网络互通实战
最后,我们通过实战来演示OSPF的配置过程。我们先看下OSPF的配置流程图,这里我们拿应用场景一为例。首先,创建两个VPC网络,验证未使用OSPF协议时网络的连通性;然后,创建OSPF区域,将VPC路由器加入OSPF区域;最后,验证OSPF协议生效后的网络连通性。
具体步骤如下:
第一步:创建两个VPC网络,分别为VPC网络-01(192.168.3.0/24)和VPC网络-01(192.168.4.0/24)。
第二步:分别使用两个VPC网络创建两台云主机,分别为VPC云主机-01(地址:192.168.3.254)和VPC云主机-02(地址:192.168.4.101)。
第三步:验证未使用OSPF协议时网络的连通性,在VPC云主机-01上ping测试VPC云主机-02,可以看到无法正常通信。
第四步:创建OSPF区域并将VPC路由器加入到OSPF区域中,区域ID为0.0.0.0,类型为Standard标准区域,认证方式None。
等待一段时间后,可以看到DR和BDR已经选举成功,且邻居状态为Full状态,邻接关系建立成功。
第五步:验证使用OSPF协议时网络的连通性,在VPC云主机-01上ping测试VPC云主机-02,可以看到能够正常通信。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。
本文名称:如何用OSPF搭建与物理网络通信的桥梁
链接URL:http://myzitong.com/article/gspoeg.html