配置OSPF的基本功能
通过使能OSPF和建立邻居,配置OSPF的基本功能,实现OSPF网络中各节点的互通。
使能OSPF
创建OSPF进程,指定路由器的Router ID,使能OSPF。配置完成后,在区域中指定运行OSPF协议的接口和接口所属的区域,达到在自治区域中发现并计算路由的目的。
背景信息
路由器如果要运行OSPF协议,必须存在Router ID。Router ID是一个32比特无符号整数,是路由器在自治系统中的唯一标识。为保证OSPF运行的稳定性,在进行网络规划时应该确定Router ID的划分并手工配置。
OSPF协议通过将自治系统(AS)划分成不同的区域(Area)来解决LSDB增大的问题。区域是从逻辑上将路由器划分为不同的组,每个组用区域号(Area ID)来标识。区域的边界是路由器,不是链路,一个网段(链路)只能属于一个区域,或者说每个运行OSPF的接口必须指明属于哪一个区域。
操作步骤
- 执行命令system-view,进入系统视图。
- 创建OSPF进程。执行命令ospf [ process-id | router-id router-id ] *,启动OSPF进程,进入OSPF视图。
NE40E支持OSPF多实例,可以配置OSPF在VPN实例中运行,此时需执行命令ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] *。
NE40E支持OSPF多进程,可以根据业务类型划分不同的进程。进程号不影响与其它路由器之间的报文交换。因此,不同的路由器之间,即使进程号不同也可以进行报文交换。
router-id router-id是路由器的ID号。
缺省情况下,路由器会在当前接口的IP地址中自动选取一个作为Router ID。人为配置Router ID时,必须保证自治系统中任意两台Router ID都不相同。通常的做法是将Router ID配置为与该设备某个接口的IP地址一致。
每个OSPF进程的Router ID要保证全网唯一,否则会导致邻居不能正常建立、路由信息不正确的问题。建议在OSPF设备上单独为每个OSPF进程配置全网唯一的Router ID。如果路由器检测到Router ID冲突,则有两种处理方式:
- 手动通过命令ospf router-id router-id配置新的Router ID。
- 执行undo ospf router-id auto-recover disable命令,使能Router ID冲突后的自动恢复功能,自动分配新的Router ID。
- 使能Router ID冲突自动恢复功能后,如果OSPF区域内非直连的路由器存在Router ID冲突,则当前已经生效的Router ID会被修改为路由器自动计算出的Router ID,即使用户手动配置的Router ID也会被修改。
- 更改Router ID后,如果OSPF区域内依然存在Router ID冲突,最多重新选择3次。
Router ID改变后需要执行reset ospf [ process-id ] process命令使新的Router ID生效。
如果指定了VPN实例,则此OSPF进程属于指定的VPN实例。如果未指定VPN实例,则此OSPF进程属于公网实例。
为了方便识别特殊进程,通过description命令为OSPF进程配置描述信息。
- 执行命令area area-id,进入OSPF区域视图。
OSPF区域分为骨干区域(Area 0)和非骨干区域。骨干区域负责区域之间的路由,非骨干区域之间的路由信息必须通过骨干区域来转发。
为了方便识别特殊区域,通过description命令为OSPF区域配置描述信息。
- 使能OSPF功能,包含在接口上使能OSPF功能和配置area区域所包含的网段两种方式,根据实际情况选择。
配置area区域所包含的网段。执行network address wildcard-mask [ description text ]命令配置区域。其中,description字段用来为OSPF指定网段配置描述信息。
满足下面两个条件,接口上才能正常运行OSPF协议:
接口的IP地址掩码长度≥network命令指定的掩码长度。
当network命令配置的wildcard-mask为全0时,如果接口的IP地址与network address命令配置的IP地址相同,则此接口也会运行OSPF协议。接口的主IP地址必须在network命令指定的网段范围内。
缺省情况下,OSPF以32位主机路由的方式对外发布Loopback接口的IP地址,与Loopback接口上配置的掩码长度无关。如果要发布Loopback接口的网段路由,需要在接口下配置网络类型为NBMA或广播型。请参考配置接口的网络类型。
- 使能接口的OSPF。
- 执行两次quit命令,返回系统视图;
- 执行命令interface interface-type interface-number,进入接口视图。
- 执行命令ospf enable [ process-id ] area area-id,在接口上使能OSPF。其中,区域ID可以采用十进制整数或IPv4地址形式输入,但显示时使用IPv4地址形式。
- 执行命令commit,提交配置。
使能在DD报文中填充接口的实际MTU
通过使能在DD报文中填充接口的实际MTU,将使用接口的实际MTU值填写DD报文的Interface MTU字段。
背景信息
由于其他厂商可能会使用不同的MTU缺省设置,所以为了提高设备兼容性,缺省情况下OSPF发送DD报文中的MTU值0,接收DD报文时不检查邻居DD报文所携带的MTU值,使得当邻居两端设备配置的接口MTU不一致时,OSPF邻居也可以建立。
但是其他厂商接收到实际长度大于MTU的OSPF报文时,可能会丢弃该报文。如果LSU报文被丢弃,则会发生OSPF邻居正常建立,但是LSU报文携带的路由无法学习,导致业务中断的问题。
建议使用ospf mtu-enable命令手工设定指定接口在发送DD报文时填充MTU值,同时检查邻居DD报文所携带的MTU是否超过本端的MTU值,使得当邻居两端设备配置的接口MTU不一致时,OSPF邻居无法达到Full状态,从而提前识别接口MTU值不一致的问题。
当配置DD报文MTU值后,会引起邻居关系重新建立。
(可选)创建虚连接
建立OSPF骨干区域之间的逻辑链路,保证OSPF网络的互通性。
背景信息
在划分OSPF区域之后,非骨干区域之间的OSPF路由更新是通过骨干区域来交换完成的。因此,OSPF要求所有非骨干区域必须与骨干区域保持连通,并且骨干区域之间也要保持连通。但在实际应用中,因为各方面条件的限制,可能无法满足这个要求,这时可以通过配置OSPF虚连接解决。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令ospf [ process-id ],进入OSPF进程视图。
- 执行命令area area-id,进入OSPF区域视图。
- 执行命令vlink-peer router-id [ dead dead-interval | hello hello-interval | retransmit retransmit-interval | trans-delay trans-delay-interval | [ simple [ [ plain ] plain-text | cipher cipher-text ] | { md5 | hmac-md5 | hmac-sha256 } [ key-id { plain plain-text | [ cipher ] cipher-text } ] | authentication-null | keychain keychain-name ] | smart-discover ] *,创建并配置虚连接。
在虚连接的另一端也需要配置此命令。
创建虚连接时的参数建议采用缺省值。当网络有特殊要求时,根据实际情况修改参数值。配置参数值时有以下几点建议:- hello参数值越小,路由器感知网络变化的速度越快,消耗的网络资源也会越多。
- retransmit参数值设置的太小会引起不必要的LSA重传,建议在网络速度较慢的网络中,该值可以设置得大一些。
- 虚连接的验证模式必须与骨干区域的验证方式一致。
- 执行命令commit,提交配置。
(可选)配置路由器的路由选路规则
(可选)配置OSPF的协议优先级
当多个路由协议发现相同的路由时,通过配置OSPF的协议优先级来改变路由的优先选择顺序。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令ospf [ process-id ],进入OSPF进程视图。
- 执行命令preference [ ase | inter | intra ] { preference | route-policy route-policy-name | route-filter route-filter-name } *,配置OSPF协议的优先级。
ase表示设置AS-External路由的优先级。
inter表示设置区域间路由的优先级。
intra表示设置区域内路由的优先级。
preference表示OSPF协议路由的优先级,值越小,优先级越高。
route-policy-name表示对特定的路由通过路由策略设置优先级。
route-filter-name表示对特定的路由通过过滤策略设置优先级。
- 执行命令commit,提交配置。
(可选)配置OSPF更新LSA的泛洪限制
检查配置结果
OSPF基本功能配置成功后,您可以通过命令查看到邻居、接口和OSPF路由表信息。
操作步骤
- 执行命令display ospf [ process-id ] abr-asbr [ router-id ]查看OSPF的区域边界路由器和自治系统边界路由器信息。
- 执行命令display ospf [ process-id ] cumulative查看OSPF的统计信息。
- 执行命令display ospf [ process-id ] peer查看OSPF邻居的信息。
- 执行命令display ospf [ process-id ] nexthop查看OSPF的下一跳信息。
- 执行命令display ospf [ process-id ] error [ lsa | interface interface-type interface-number ]查看OSPF的错误信息。
- 执行命令display ospf [ process-id ] vlink查看OSPF的虚连接信息。
- 执行命令display ospf [ process-id ] interface [ all | no-peer | interface-type interface-number ] [ verbose ]查看OSPF接口的信息。
- 执行命令display ospf [ process-id ] routing查看OSPF路由表的信息。
- 执行命令display ospf [ process-id ] topology [ area area-id ] [ statistics | verbose ]查看OSPF路由计算的拓扑信息。
- 执行命令display ospf [ process-id ] spf-statistics [ verbose ]查看OSPF进程下路由计算的统计信息。
- 执行命令display ospf [ process-id ] request-queue [ interface-type interface-number ] [ neighbor-id ]查看OSPF的请求列表信息。
- 执行命令display ospf [ process-id ] retrans-queue [ interface-type interface-number ] [ neighbor-id ]查看OSPF的重传列表信息。
- 执行命令display ospf [ process-id ] statistics updated-lsa [ originate-router advertising-router-id | history ]查看LSDB内频繁更新的LSA信息。
- 执行命令display ospf [ process-id ] router-id conflict查看网络中可能存在的Router ID冲突信息。