文章目录

  • 前言
  • 网络拓扑
  • 静态路由方式
  • 动态路由方式
    • Openwrt下 Quagga 安装
    • Quagga 配置
      • R1路由器zebra配置
      • R1路由器ospf配置
      • R2路由器zebra配置
      • R2路由器ospf配置
    • OSPF协议分析
  • REF

本文将在两台openwrt系统上安装配置quagga, 搭建一套完整环境,来验证OSPF动态路由的基本功能和实际效果,验证过程中详细展示了OSPF控制台基本命令使用和配置前后路由信息、OSPF控制台信息的变化,另外对OSPF协议进行了简单分析。

前言

最短路径协议是计算网络中数据包传输的最短路径的一种算法。它用于在网络中选择最佳路径来传输数据,使得数据包能够以最快的速度到达目的地。

最短路径协议在网络中起到了非常重要的作用,它能够提高网络的性能和可靠性,减少数据传输的延迟和丢失。常见的最短路径协议有RIP(Routing Information Protocol)、OSPF(Open Shortest Path First)和BGP(Border Gateway Protocol)等。

在OSPF出现前,网络上广泛使用RIP(Routing Information Protocol)作为内部网关协议。RIP,即路由信息协议,是一个很老的协议,RIP 路由器向网络中周期性多播它的整个路由表,而不是像 OSPF 那样只多播网络的变化。RIP 通过跳数来测量路由,任何超过 15 跳的路由它均视为不可到达。RIP 设置很简单,但是 OSPF 在速度、效率以及弹性方面更佳。由于RIP是基于距离矢量算法的路由协议,存在着收敛慢、路由环路、可扩展性差等问题,所以逐渐被OSPF取代。

OSPF 的意思是 最短路径优先(Open Shortest Path First)。OSPF 是一个内部网关协议(IGP);它可以用在局域网和跨因特网的局域网互联中。在你的网络中的每个 OSPF 路由器都包含整个网络的拓扑,并计算通过网络的最短路径。OSPF 会通过多播的方式自动对外传播它检测到的网络变化。你可以将你的网络分割为区域,以保持路由表的可管理性;每个区域的路由器只需要知道离开它的区域的下一跳接口地址,而不用记录你的网络的整个路由表。

Quagga 是一个支持 OSPFv2、OSPFv3、RIP v1 和 v2、RIPng、以及 BGP-4 的路由协议套件,并全部由 zebra 守护程序管理。OSPF作为基于链路状态的协议,能够解决RIP所面临的诸多问题。此外,OSPF还有以下优点:

  • OSPF采用组播形式收发报文,这样可以减少对其它不运行OSPF路由器的影响。
  • OSPF支持无类型域间选路(CIDR)。
  • OSPF支持对等价路由进行负载分担。
  • OSPF支持报文加密。

网络拓扑

本实验涉及四台设备,2台路由器R1、R2, 2台主机,R1/R2路由器分别使用两台嵌入式ARM板来模拟, Host1为一台ubuntu嵌入式板,host2为windows PC。 各网元网口及地址信息如下图所示。以下将分别采用静态路由和动态路由两种方式验证如何打通三个网段。

静态路由方式

为与动态路由方式进行对照,先采用静态路由方式实现跨网段互通。然后再用动态路由的方式达到相同的效果。

各网元IP及初始路由表信息如下:

#R1 IP信息eth1 UP 192.168.2.2/24 br-lan UP 192.168.1.1/24 #eth0#R1 router信息192.168.1.0/24 dev br-lan proto kernel scope link src 192.168.1.1 192.168.2.0/24 dev eth1 proto kernel scope link src 192.168.2.2# R2 IP信息# ip -br aeth0 UP 192.168.3.1/24 eth1 UP 192.168.1.104/24# R2 router信息# ip r192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.104 192.168.3.0/24 dev eth0 proto kernel scope link src 192.168.3.1# host1 IP信息# ip -br aeth0 UP 192.168.2.1/24 #host1 router 信息192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.1 metric 100 

在各个设备上配置静态路由,打通各网段

#R1ip r a 192.168.3.0/24 via 192.168.1.104 dev br-lanip r192.168.1.0/24 dev br-lan proto kernel scope link src 192.168.1.1 192.168.2.0/24 dev eth1 proto kernel scope link src 192.168.2.2 192.168.3.0/24 via 192.168.1.104 dev br-lan#R2ip r a 192.168.2.0/24 via 192.168.1.1 dev eth1ip r