OSPF参考拓扑

该图显示了用于在此模块中配置OSPFv2的拓扑。拓扑中的路由器具有起始配置,包括接口地址。当前,在任何路由器上都没有配置静态路由或动态路由。R1,R2和R3上的所有接口(R2上的环回1除外)都在OSPF骨干区域内。ISP路由器用作路由域Internet的网关。

注意:在此拓扑中,环回接口用于模拟到Internet的WAN链接以及连接到每个路由器的LAN。这样做是为了在只有两个千兆位以太网接口的路由器上为演示目的复制此拓扑。

ospf 一边是点到点 一边是点到多点 ospf点到点配置_R3


OSPF的路由器配置

OSPFv2使用router ospf process-id全局配置模式命令启用,如R1的命令窗口所示。的进程ID值表示1到65,535之间的数,并且由网络管理员选择。该进程ID值是本地显著,这意味着它并不一定是其他OSPF路由器上相同的值来建立邻接关系的邻居。在所有OSPF路由器上使用相同的进程ID被认为是最佳实践。

输入router ospf process-id命令后,路由器进入路由器配置模式,如R1(config-router)#提示符所示。输入问号(?),以查看此模式下可用的所有命令。此处显示的命令列表已更改为仅显示与此模块相关的命令。

R1(config)# router ospf 10
R1(config-router)# ?
  area                   OSPF area parameters
  auto-cost              Calculate OSPF interface cost according to bandwidth
  default-information    Control distribution of default information
  distance               Define an administrative distance
  exit                   Exit from routing protocol configuration mode
  log-adjacency-changes  Log changes in adjacency state
  neighbor               Specify a neighbor router
  network                Enable routing on an IP network
  no                     Negate a command or set its defaults
  passive-interface      Suppress routing updates on an interface
  redistribute           Redistribute information from another routing protocol
  router-id              router-id for this OSPF process
R1(config-router)#

路由器ID


OSPF路由器ID是一个32位值。路由器ID用于唯一标识OSPF路由器。所有OSPF数据包均包含原始路由器的路由器ID。每个路由器都需要一个路由器ID才能参与OSPF域。路由器ID可以由管理员定义或由路由器自动分配。启用OSPF的路由器使用路由器ID来执行以下操作:

  • 参与OSPF数据库的同步–在交换状态期间,具有最高路由器ID的路由器将首先发送其数据库描述符(DBD)数据包。
  • 参与指定路由器(DR)的选举-在多路访问LAN环境中,具有最高路由器ID的路由器被选举为DR。具有第二高路由器ID的路由设备被选为备用指定路由器(BDR)。

路由器ID选择


  1. 使用OSPF router-id rid router configuration mode命令明确配置路由器ID 。该RID值是表示为IPv4地址的任何32位值。建议使用此方法分配路由器ID。
  2. 如果未明确配置路由器ID,则路由器将选择任何已配置的回送接口中的最高IPv4地址。这是分配路由器ID的下一个最佳选择。
  3. 如果未配置环回接口,则路由器将选择其任何物理接口中的最高活动IPv4地址。这是最不推荐使用的方法,因为它使管理员更难区分特定路由器。

将环回接口配置为路由器ID


在参考拓扑中,仅物理接口被配置且处于活动状态。尚未配置环回接口。在路由器上启用OSPF路由后,路由器将选择以下活动的最高配置IPv4地址作为路由器ID。

  • R1:10.1.1.14(G0 / 0/1)
  • R2:10.1.1.9(G0 / 0/1)
  • R3:10.1.1.13(G0 / 0/0)
    注意:无需在接口上启用OSPF,即可将该接口选择为路由器ID。

无需依赖物理接口,可以将路由器ID分配给回送接口。通常,应使用32位子网掩码(255.255.255.255)配置此类环回接口的IPv4地址。这有效地创建了主机路由。32位主机路由不会被通告为到其他OSPF路由器的路由。

该示例显示了如何在R1上配置回送接口。假设未明确配置路由器ID或先前未获知,则R1将使用IPv4地址1.1.1.1作为其路由器ID。假设R1尚未学习路由器ID。

R1(config-if)# interface Loopback 1
R1(config-if)# ip address 1.1.1.1 255.255.255.255
R1(config-if)# end
R1# show ip protocols | include Router ID
  Router ID 1.1.1.1
R1#

明确配置路由器ID


  • R1使用路由器ID 1.1.1.1
  • R2使用路由器ID 2.2.2.2
  • R3使用路由器ID 3.3.3.3

    使用路由器-IDRID路由器配置模式命令手动分配路由器ID。在此示例中,路由器ID 1.1.1.1被分配给R1。使用show ip protocol命令验证路由器ID。
R1(config)# router ospf 10
R1(config-router)# router-id 1.1.1.1
R1(config-router)# end
*May 23 19:33:42.689: %SYS-5-CONFIG_I: Configured from console by console
R1# show ip protocols | include Router ID
  Router ID 1.1.1.1
R1#

修改路由器ID

路由器选择路由器ID后,活动的OSPF路由器将不允许更改路由器ID,直到重新加载路由器或重置OSPF进程为止。

清除OSPF进程是重置路由器ID的首选方法(clear ip ospf process),您可以验证R1正在使用新的路由器ID命令,并通过管道将show ip protocol命令显示为仅显示路由器ID部分。

R1# show ip protocols | include Router ID
  Router ID 10.10.1.1
R1# conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)# router ospf 10 
R1(config-router)# router-id 1.1.1.1
% OSPF: Reload or use "clear ip ospf process" command, for this to take effect
R1(config-router)# end
R1# clear ip ospf process
Reset ALL OSPF processes? [no]: y
*Jun  6 01:09:46.975: %OSPF-5-ADJCHG: Process 10, Nbr 3.3.3.3 on GigabitEthernet0/0/1 from FULL to DOWN, Neighbor Down: Interface down or detached
*Jun  6 01:09:46.975: %OSPF-5-ADJCHG: Process 10, Nbr 2.2.2.2 on GigabitEthernet0/0/0 from FULL to DOWN, Neighbor Down: Interface down or detached
*Jun  6 01:09:46.981: %OSPF-5-ADJCHG: Process 10, Nbr 3.3.3.3 on GigabitEthernet0/0/1 from LOADING to FULL, Loading Done
*Jun  6 01:09:46.981: %OSPF-5-ADJCHG: Process 10, Nbr 2.2.2.2 on GigabitEthernet0/0/0 from LOADING to FULL, Loading Done
R1# show ip protocols | include Router ID
  Router ID 1.1.1.1
R1#

注意:router-id命令是首选方法。但是,某些旧版本的IOS无法识别router-id命令;因此,在这些路由器上设置路由器ID的最佳方法是使用环回接口。

点对点OSPF网络配置

使用OSPF的一种网络类型是点对点网络。您可以通过配置network命令来指定属于点对点网络的接口。您也可以使用ip ospf命令直接在接口上配置OSPF ,这将在后面介绍。

这两个命令用于确定哪些接口参与OSPFv2区域的路由过程。network命令的基本语法如下:

Router(config-router)# network network-address wildcard-mask area area-id

通配符掩码通常是在该接口上配置的子网掩码的逆。在子网掩码中,二进制1等于匹配项,而二进制0不等于匹配项。在通配符掩码中,情况与此相反,如下所示:

  • 通配符掩码位0-匹配地址中的相应位值。
  • 通配符掩码位1-忽略地址中的相应位值。

network宣告网络

在路由配置模式下,有两种方法可以识别将参与OSPFv2路由过程的接口。该图显示了参考拓扑。

ospf 一边是点到点 一边是点到多点 ospf点到点配置_OSPF_02


在第一个示例中,通配符掩码基于网络地址标识接口。配置有属于该网络的IPv4地址的任何活动接口都将参与OSPFv2路由过程。

R1(config)# router ospf 10
R1(config-router)# network 10.10.1.0 0.0.0.255 area 0
R1(config-router)# network 10.1.1.4 0.0.0.3 area 0
R1(config-router)# network 10.1.1.12 0.0.0.3 area 0
R1(config-router)#

被动接口(Passive Interface)

  • 带宽使用效率低 -传输不必要的消息会消耗可用带宽。
  • 资源利用效率低下-LAN上的所有设备都必须处理并最终丢弃该消息。
  • 增加的安全风险 -如果没有其他OSPF安全配置,则可以使用数据包嗅探软件截取OSPF消息。可以修改路由更新,并将其发送回路由器,使用错误的度量标准破坏路由表,从而误导流量。

配置被动接口

R1(config)# router ospf 10
R1(config-router)# passive-interface loopback 0
R1(config-router)# end

环回和点对点网络

我们使用环回为各种目的地址提供其他接口。在这种情况下,我们使用环回来模拟超出设备支持范围的网络。缺省情况下,环回接口被通告为/ 32主机路由。例如,R1会将10.10.1.0/24网络作为10.10.1.1/32广告发布给R2和R3。

R2# show ip route | include 10.10.1 
O        10.10.1.1/32 [110/2] via 10.1.1.5, 00:03:05, GigabitEthernet0/0/0

为了模拟真实的LAN,将Loopback 0接口配置为点对点网络,以便R1将完整的10.10.1.0/24网络通告给R2和R3。

R1(config-if)# interface Loopback 0
R1(config-if)# ip ospf network point-to-point

现在,R2收到更准确的模拟LAN网络地址10.10.1.0/24。

R2# show ip route | include 10.10.1
O        10.10.1.0/24 [110/2] via 10.1.1.5, 00:00:30, GigabitEthernet0/0/0