全网路由一条条敲到崩溃?华为交换机OSPF两区域配置自动学全网

公司网络刚起步时静态路由确实够用:三五个网段,ip route-static 一条条敲上去完事。可怕的是网络长大之后——每接一个新楼层,全网每台三层设备都得补一条路由;哪条链路坏了,静态路由不会自己绕道,业务就停在那里等人来改。OSPF 就是解这道题的:开放式最短路径优先,基于链路状态的内部网关协议,路由由设备之间互相通告自动生成,拓扑一变自动重算。华为官方文档给它的定位很直接:目前主流的 IGP 协议,企业、运营商、政府、金融、教育、医疗各行业都在用。它还支持区域划分,把大网切成分区管理,这是网络扩到一定规模后绕不开的姿势。

华为官方配置指南给了一个最小可跑的双区域示例。三台交换机,SwitchA 居中,下连 SwitchB 和 SwitchC,要求三台互通,且以后以 SwitchA 和 SwitchB 所在区域为骨干继续扩展全网。配置思路两条:先在各交换机的 VLANIF 接口上配 IP 并把物理口划进 VLAN,实现网段内互通;再在各交换机上配置 OSPF 基本功能,以 SwitchA 为 ABR 把 OSPF 网络划分为 Area0 和 Area1 两个区域。

配置步骤

第一步,接口和 VLAN。SwitchA 的 GE1/0/1 走 VLAN10、GE1/0/2 走 VLAN20:

<HUAWEI> system-view
[HUAWEI] sysname SwitchA
[SwitchA] vlan batch 10 20
[SwitchA] interface gigabitethernet 1/0/1
[SwitchA-GigabitEthernet1/0/1] port link-type trunk
[SwitchA-GigabitEthernet1/0/1] port trunk allow-pass vlan 10
[SwitchA-GigabitEthernet1/0/1] quit
[SwitchA] interface gigabitethernet 1/0/2
[SwitchA-GigabitEthernet1/0/2] port link-type trunk
[SwitchA-GigabitEthernet1/0/2] port trunk allow-pass vlan 20
[SwitchA-GigabitEthernet1/0/2] quit

再给两个 VLANIF 配地址,SwitchB 和 SwitchC 的配置与 SwitchA 类似:

[SwitchA] interface vlanif 10
[SwitchA-Vlanif10] ip address 192.168.0.1 24
[SwitchA-Vlanif10] quit
[SwitchA] interface vlanif 20
[SwitchA-Vlanif20] ip address 192.168.1.1 24
[SwitchA-Vlanif20] quit

第二步,OSPF 本体。SwitchA 一个进程挂两个区域,这台就是 ABR:

[SwitchA] ospf 1 router-id 10.1.1.1   //创建进程号为1,Router ID为10.1.1.1的OSPF进程
[SwitchA-ospf-1] area 0   //创建area 0区域并进入area 0视图
[SwitchA-ospf-1-area-0.0.0.0] network 192.168.0.0 0.0.0.255   //配置area 0所包含的网段
[SwitchA-ospf-1-area-0.0.0.0] quit
[SwitchA-ospf-1] area 1   //创建area 1区域并进入area 1视图
[SwitchA-ospf-1-area-0.0.0.1] network 192.168.1.0 0.0.0.255   //配置area 1所包含的网段
[SwitchA-ospf-1-area-0.0.0.1] return

SwitchB 只进骨干区域 Area0,SwitchC 只进 Area1:

[SwitchB] ospf 1 router-id 10.2.2.2
[SwitchB-ospf-1] area 0
[SwitchB-ospf-1-area-0.0.0.0] network 192.168.0.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] return
[SwitchC] ospf 1 router-id 10.3.3.3
[SwitchC-ospf-1] area 1
[SwitchC-ospf-1-area-0.0.0.1] network 192.168.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.1] return

配置到这里,三台设备的路由就开始自动互相学了——不需要在任何一台上手工写过指向另外两个网段的静态路由。

验证

先看邻居。SwitchA 上执行 display ospf peer,两段邻居各自对应 Vlanif10 和 Vlanif20,State 都要到 Full 才算建立完成:

<SwitchA> display ospf peer
          OSPF Process 1 with Router ID 10.1.1.1
                  Neighbors
 Area 0.0.0.0 interface 192.168.0.1(Vlanif10)'s neighbors
Router ID: 10.2.2.2      Address: 192.168.0.2
   State: Full  Mode:Nbr is  Master  Priority: 1
   DR: 192.168.0.2  BDR: 192.168.0.1   MTU: 0
   Dead timer due in 36  sec

再看路由。SwitchC 上 display ospf routing,能查到 192.168.0.0/24 的路由,Type 标识为 Inter-area 区域间路由——这个网段 SwitchC 从来没直连过,是 OSPF 从 ABR 学来的:

<SwitchC> display ospf routing
          OSPF Process 1 with Router ID 10.3.3.3
                   Routing Tables
 Routing for Network
 Destination      Cost  Type         NextHop         AdvRouter       Area
 192.168.1.0/24    1    Transit      192.168.1.2     10.3.3.3        0.0.0.1
 192.168.0.0/24    2    Inter-area   192.168.1.1     10.1.1.1        0.0.0.1
 Total Nets: 2
 Intra Area: 1  Inter Area: 1  ASE: 0  NSSA: 0

最后在 SwitchB 上 ping 192.168.1.2 测连通性,五个包全通、0 丢包,双区域互通收工。

配置注意事项里有三条最值钱:每个 OSPF 进程的 Router ID 必须在全网唯一,重复了邻居建不起来、路由信息也会出错;区域号 0 是骨干区域,所有非骨干区域必须与骨干区域保持连通,骨干区域的设备之间也要连通;链路两端 OSPF 接口的网络类型和 IP 掩码要一致,不一致双方建不起邻居关系。

多楼层、多机房的网络一旦过了五六台三层设备的规模,就值得把静态路由换成动态路由。贵州诚鑫致达科技在给客户做园区网络改造时,交换机侧 OSPF 分区域部署是标准动作,扩网段不用再全网敲路由。你的网络现在有多少条静态路由?评论区报个数。