Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
ospf配置命令实例_交换机配置命令软件,希望能够帮助你!!!。
一台路由器如果要运行OSPF协议,必须存在Router ID。路由器的Router ID是一个32比特无符号整数,是一台路由器在自治系统中的唯一标识。为保证OSPF运行的稳定性,在进行网络规划时应该确定Router ID的划分并手工配置。
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name //启动OSPF进程,进入OSPF视图 例如:ospf 1 router-id 1.1.1.1 //创建opsf进程1,并设置router-id为1.1.1.1
process-id为进程号,缺省值为1。
路由器支持OSPF多进程,可以根据业务类型划分不同的进程。进程号是本地概念,不影响与其它路由器之间的报文交换。因此,不同的路由器之间,即使进程号不同也可以进行报文交换。
router-id router-id为路由器的ID号。
缺省情况下,路由器系统会从当前接口的IP地址中自动选取一个最大值作为Router ID。手动配置Router ID时,必须保证自治系统中任意两台Router ID都不相同。通常的做法是将Router ID配置为与该设备某个接口的IP地址一致
说明:
每个OSPF进程的Router ID要保证在OSPF网络中唯一,否则会导致邻居不能正常建立、路由信息不正确的问题。建议在OSPF设备上单独为每个OSPF进程配置全网唯一的Router ID。
vpn-instance vpn-instance-name表示VPN实例。
如果指定了VPN实例,那么此OSPF进程属于指定的VPN实例,如果未指定则属于公网实例。
区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area
ID)来标识。区域的边界是设备,而不是链路。一个网段(链路)只能属于一个区域,或者说每个运行OSPF的接口必须指明属于哪一个区域。
[OSPF进程下] area area-id //创建并进入ospf区域视图
创建OSPF进程后,还需要配置区域所包含的网段。一个网段只能属于一个区域,或者说每个运行OSPF协议的接口必须指明属于某一个特定的区域。该处的网段是指运行OSPF协议接口的IP地址所在的网段。
OSPF需要对接收到的Hello报文做网络掩码检查,当接收到的Hello报文中携带的网络掩码和本设备不一致时,则丢弃这个Hello报文,即不能建立邻居关系。
宣告OSPF网段有两种方法: //1、区域下宣告 [区域视图下] network ip-address wildcard-mask //配置区域所包含的网段 //2.接口下宣告 [接口视图下] ospf enable [process-id] area [area-id] //在接口上使能OSPF。
[OSPF区域视图下] vlink 1.1.1.1 //创建并配置虚连接
OSPF路由器发送完DD报文、LSU报文、LSR报文,这三种报文后,若没有在规定时间内收到相应的LSAck报文,会再次重传。当达到限定报文重传次数后,本端就断开和对方的邻接关系。
[AR1-ospf-1]retransmission-limit ? INTEGER<2-255> The Number of Retransmission Limitation //配置OSPF重传限制功能 //缺省情况下,不使能此功能。最大重传限制数的缺省值是30。
建立虚连接后,不同的设备制造商可能会使用不同的MTU缺省设置。为了保证一致,应该设置接口发送DD报文时MTU值为缺省值0。
[AR1-GigabitEthernet0/0/0]ospf mtu-enable //使能接口发送DD报文时填充MTU值,同时还会检查邻居DD报文所携带的MTU是否超过本端的MTU值。 //缺省情况下,接口发送DD报文的MTU值为0。
注意:当配置DD报文MTU值后,会引起邻居关系的从新建立。
网络类型 | 特点 | 缺省选择 |
---|---|---|
广播类型(Broadcast) | 在该类型的网络中,通常以组播形式发送Hello报文、LSU报文和LSAck报文,以单播形式发送DD报文和LSR报文。 | 当链路层协议是Ethernet、FDDI时,缺省情况下,OSPF认为网络类型是Broadcast。 |
NBMA类型(Non-broadcast multiple access) | 在该类型的网络中,以单播形式发送Hello报文、DD报文、LSR报文、LSU报文、LSAck报文。NBMA网络必须是全连通的,即网络中任意两台路由器之间都必须直接可达。 | 当链路层协议是ATM时,缺省情况下,OSPF认为网络类型是NBMA。 |
点到点P2P类型(point-to-point) | 在该类型的网络中,以组播形式发送Hello报文、DD报文、LSR报文、LSU报文、LSAck报文。 | 当链路层协议是PPP、HDLC和LAPB时,缺省情况下,OSPF认为网络类型是P2P。 |
点到多点P2MP类型(Point-to-Multipoint) | 在该类型的网络中:以组播形式发送Hello报文,以单播形式发送DD报文、LSR报文、LSU报文、LSAck报文。 | 没有一种链路层协议会被缺省的认为是P2MP类型,P2MP必须是由其他的网络类型强制更改的。 |
[进程视图下] prefix-priority {
critical | high | medium } ip-prefix ip-prefix-name //配置OSPF路由的收敛优先级。
配置OSPF路由的收敛优先级后,OSPF路由可以按照优先级来计算和泛洪LSA、同步LSDB,从而提高路由收敛速度。当一个LSA满足多个策略优先级时,最高优先级生效。OSPF依次按区域内路由、区域间路由、自治系统外部路由顺序进行LSA计算,该命令可以计算OSPF的收敛优先级。收敛**优先级的优先级顺序为:critical>high>medium>low。**为了加速处理高优先级的LSA,泛洪过程中,需要按照优先级将相应的LSA分别存放在对应的critical、high、medium和low的队列中。
注:该命令仅在公网配置时有效
[AR1-GigabitEthernet0/0/0]ospf timer hello 10 //配置接口发送hello报文的时间间隔
缺省情况下,P2P、Broadcast类型接口发送Hello报文的时间间隔的值为10秒;P2MP、NBMA类型接口发送Hello报文的时间间隔的值为30秒;且同一接口上邻居失效时间是Hello间隔时间的4倍。
[AR1-GigabitEthernet0/0/0]ospf timer dead 40 //配置相邻邻居失效的时间
缺省情况下,P2P、Broadcast类型接口的OSPF邻居失效时间为40秒,P2MP、NBMA类型接口的OSPF邻居失效时间为120秒;且同一接口上失效时间是Hello间隔时间的4倍。
建议配置的失效时间大于20秒。如果失效的时间小于20秒,可能会造成邻居会话的中断。
修改了网络类型后,Hello与Dead定时器都将恢复缺省值。
路由器的邻居状态或者多址网络(广播型或NBMA)上的DR、BDR发生变化时,需要等到Hello定时器到时才会向邻居发送Hello报文,影响了设备间建立邻居的速度。通过配置Smart-discover,网络中邻居状态,或者DR、BDR发生变化时,设备不必等到Hello定时器到就可以立刻主动的向邻居发送Hello报文。从而提高建立邻居的速度,达到网络快速收敛的目的。
[AR1-GigabitEthernet0/0/0]ospf smart-discover //配置接口的Smart-discover功能
OSPF协议规定LSA的更新时间间隔5秒,是为了防止网络连接或者路由频繁动荡引起的过多占用网络带宽和设备资源。
在网络相对稳定、对路由收敛时间要求较高的组网环境中,可以指定LSA的更新时间间隔为0来取消LSA的更新时间间隔,使得拓扑或者路由的变化可以立即通过LSA发布到网络中,从而加快网络中路由的收敛速度。
[AR1-ospf-1]lsa-originate-interval {
0 | {
intelligent-timer max-interval start-interval hold-interval | other-type interval } //配置LSA的更新时间间隔
intelligent-timer表示通过智能定时器设置OSPF Router LSA和Network LSA的更新间隔时间。
max-interval为更新OSPF LSA的最长间隔时间,单位是毫秒。
start-interval为更新OSPF LSA的初始间隔时间,单位是毫秒。
hold-interval为更新OSPF LSA的基数间隔时间,单位是毫秒。
other-type interval表示设置除OSPF Router LSA和Network LSA外LSA的更新间隔时间。
缺省情况下,使能智能定时器intelligent-timer。使能智能定时器后,更新LSA的最长间隔时间的缺省值为5000毫秒、初始间隔时间的缺省值为500毫秒、基数间隔时间的缺省值为1000毫秒(以毫秒为单位的时间间隔)
OSPF协议规定LSA的接收时间间隔1秒,是为了防止网络连接或者路由频繁动荡引起的过多占用网络带宽和设备资源。
在网络相对稳定、对路由收敛时间要求较高的组网环境中,可以指定LSA的接收时间间隔为0来取消LSA的接收时间间隔,使得拓扑或者路由的变化可以立即通过LSA发布到网络中,从而加快网络中路由的收敛速度。
[AR1-ospf-1] lsa-arrival-interval {
interval | intelligent-timer max-interval start-interval hold-interval } //配置LSA接收的时间间隔。
在网络相对稳定、对路由收敛时间要求较高的组网环境中,可以指定LSA被接收的时间间隔为0,使得拓扑或者路由的变化能够立即被感知到。
缺省情况下,使能智能定时器intelligent-timer。使能智能定时器后,接收LSA的最长间隔时间的缺省值为1000毫秒、初始间隔时间的缺省值为500毫秒、基数间隔时间的缺省值为500毫秒(以毫秒为单位的时间间隔)。
当OSPF的链路状态数据库(LSDB)发生改变时,需要重新计算最短路径。如果网络频繁变化,由于不断的计算最短路径,会占用大量系统资源,影响设备的效率。通过配置智能定时器intelligent-timer,设置合理的SPF计算的间隔时间,可以避免占用过多的路由器内存和带宽资源。
[AR1-ospf-1]spf-schedule-interval {
interval1 | intelligent-timer max-interval start-interval hold-interval | millisecond interval2 } //设置SPF计算间隔。
interval1为OSPF的SPF计算间隔时间,单位是毫秒。
intelligent-timer表示通过智能定时器设置OSPF SPF计算的间隔时间。
max-interval为OSPF SPF计算的最长间隔时间,单位是毫秒。
start-interval为OSPF SPF计算的初始间隔时间,单位是毫秒。
hold-interval为OSPF SPF计算的基数间隔时间,单位是毫秒。
millisecond interval2表示OSPF的SPF计算间隔时间,单位是毫秒。
缺省情况下,使能智能定时器intelligent-timer,SPF计算的最长间隔时间为10000毫秒、初始间隔时间为500毫秒、基数间隔时间为1000毫秒(以毫秒为单位的时间间隔)。
由于路由器上可能同时运行多个动态路由协议,就存在各个路由协议之间路由信息共享和选择的问题。系统为每一种路由协议设置一个优先级。在不同协议发现同一条路由时,优先级高的路由将被优选。
[AR1-ospf-1]preference [ ase ] {
preference | route-policy route-policy-name } //配置OSPF协议的优先级。
ase表示设置AS-External路由的优先级。
preference表示OSPF协议路由的优先级。优先级的值越小,其实际的优先程度越高。
route-policy route-policy-name表示对特定的路由通过路由策略设置优先级。
缺省情况下,OSPF路由的优先级为10。当指定ASE时,缺省优先级为150。
[AR1-GigabitEthernet0/0/0]ospf trans-delay ? INTEGER<1-500> Second(s) //配置接口传送LSA的延迟时间。
缺省情况下,传输延迟时间为1秒。
当一台路由器向它的邻居发送一条LSA后,需要等到对方的确认报文。若在重传间隔时间内没有收到对方的确认报文,就会向邻居重传这条LSA。
[AR1-GigabitEthernet0/0/0]ospf timer retransmit ? INTEGER<1-3600> Second(s) //设置邻接路由器重传LSA的间隔
缺省情况下,重传间隔时间为5秒。
配置Stub路由器是一种特殊的路由选路,配置了stub router的路径不被优选。实现方法是将度量值设为最大(65535),尽量避免数据从此路由器转发。用于保护此路由器链路,通常使用在升级等维护操作的场景。
[AR1-ospf-1]stub-router on-startup ? INTEGER<5-65535> //配置Stub路由器。
缺省情况下,没有路由器为Stub路由器。
如果配置了Stub路由器,缺省情况下,路由器保持为Stub路由器的时间间隔是500秒。
当用户希望本地OSPF路由信息不被其他网络中的设备获得,并且本地设备不接收网络中其他设备发布的路由更新信息的时候,可以通过配置禁止OSPF接口发送和接收协议报文来实现。
禁止OSPF接口发送和接收协议报文后,该接口的直连路由仍可以发布出去,但接口的Hello报文将被阻塞,无法通过此接口与相邻设备建立邻居关系。这样可以增强OSPF的组网适应能力,减少系统资源的消耗。
[AR1-ospf-1]silent-interface {
all | interface-type interface-number } //禁止OSPF接口发送和接收协议报文。
缺省情况下,允许OSPF接口发送和接收协议报文。
可以在不同的OSPF进程中,禁止同一个接口发送和接收OSPF报文,但[silent-interface]命令只对本进程已经使能的OSPF接口起作用,对其它进程的接口不起作用。
使用区域验证时,一个区域中所有的路由器在该区域下的验证模式和口令必须一致。例如,在Area0内所有路由器上配置验证模式为简单验证,口令为abc。
注意:
在配置区域认证模式时,如果使用plain选项,密码将以明文形式保存在配置文件中,存在安全隐患。建议使用cipher选项,将密码加密保存。
Simple、MD5和HMAC-MD5密文验证模式存在安全风险,推荐使用HMAC-SHA256密文验证模式。
[AR1-ospf-1-area-0.0.0.0]authentication-mode {
md5 | hmac-md5 | hmac-sha256 } [ key-id {
plain plain-text | [ cipher ] cipher-text } ] //配置OSPF区域的验证模式。 [AR1-ospf-1-area-0.0.0.0] authentication-mode keychain keychain-name //配置OSPF区域的Keychain验证模式。
说明:
使用Keychain验证模式,需要在系统视图下配置Keychain信息。必须保证本端ActiveSendKey和对端ActiveRecvKey的key-id、algorithm、key-string相同,才能建立OSPF邻居。
接口验证方式用于在相邻的路由器之间设置验证模式和口令,优先级高于区域验证方式。
[AR1-GigabitEthernet0/0/0]ospf authentication-mode {
md5 | hmac-md5 | hmac-sha256 } [ key-id {
plain plain-text | [ cipher ] cipher-text } ] //配置OSPF接口的验证模式。
<AR1>reset ospf [ process-id ] counters [ neighbor [ interface-type interface-number ] [ router-id ] ] //命令清除OSPF计数器 //counters表示用来将OSPF计数器清零。 //neighbor表示指定接口上邻居的信息。
<AR1>reset ospf [ process-id ] process [ flush-waiting-timer time | graceful-restart ] //命令重启OSPF进程。
asbr-summary 10.2.0.0 255.255.0.0 not-advertise tag 2 cost 100 //用来设置自治系统边界路由器(ASBR)对OSPF引入的路由进行路由聚合。 display ospf abr-asbr //用来显示OSPF的区域边界路由器和自治系统边界路由器信息。 display ospf asbr-summary //用来查看OSPF的路由聚合信息。 display ospf bfd session //用来查看使能BFD特性邻居的信息。 display ospf cumulative //用来显示OSPF的统计信息。 display ospf error //用来查看OSPF的错误信息。 display ospf global-statistics //用来查看OSPF协议的全局统计信息。如果不指定OSPF进程号,该命令将显示所有OSPF进程的概要信息。 display ospf graceful-restart //用来查看OSPF GR的状态信息。 display ospf interface //用来显示OSPF的接口信息。 display ospf lsdb //用来显示OSPF的链路状态数据库(LSDB)信息。 display ospf mesh-group //用来查看OSPF Mesh-Group的概要信息。 display ospf nexthop //用来显示OSPF的下一跳信息。 display ospf peer //用来显示OSPF中各区域邻居的信息。 display ospf routing //命令用来显示OSPF路由表的信息。 display ospf spf-statistics //命令用来查看OSPF进程下路由计算的统计信息。 display ospf statistics maxage-lsa //命令用来查看达到最大老化时间的Router LSA信息。 display ospf vlink //命令用来显示OSPF的虚连接信息。 ospf cost //命令用来配置接口上运行OSPF协议所需的开销。 ospf dr-priority //命令用来设置接口在选举DR时的优先级。 ospf filter-lsa-out //命令用来配置对OSPF接口出方向的LSA进行过滤。 ospf mtu-enable //命令用来使能接口在发送DD报文时填MTU值。 ospf network-type //命令用来设置OSPF接口的网络类型。 ospf p2mp-mask-ignore //命令用来设置在P2MP网络上忽略对网络掩码的检查。 ospf smart-discover //命令用来在接口上使能Smart-discover功能。 ospf timer hello //命令用来设置接口发送Hello报文的时间间隔。 preference//命令用来设置OSPF协议路由的优先级。 preference//命令用来设置OSPF协议路由的优先级。
检查邻居两端的接口物理和协议状态是否UP,状态是否稳定,接口是否有丢包,两边互ping大包是否能通。
若物理接口不Up或是不稳定(有振荡现象),请排查物理链路和链路层协议,确保物理和协议状态都是Up,并且接口无错误计数。
可以通过ping测试,长ping测试是否存在丢包现象,ping大包(1500字节以上)测试是否存在大包不通的现象。
检查链路两端OSPF进程的Router ID是否一致。
分别在链路两端的设备上执行命令display ospf [ process-id ] brief,查看OSPF进程的Router ID。
Router ID要保证全网唯一,否则会导致邻居不能正常建立、路由信息不正确的问题。建议在设备上单独为每个OSPF进程配置全网唯一的Router ID。
如果链路两端OSPF进程的Router ID一致,请在系统视图下执行命令ospf [ process-id ] router-id router-id,修改OSPF进程的Router ID以保证不冲突。
修改OSPF进程的Router ID之后,必须在用户视图下执行命令display ospf [ process-id ] process后,新配置的Router ID才会生效。
检查链路两端OSPF区域ID是否一致。
分别在链路两端的设备上执行命令display ospf [ process-id ] brief,查看OSPF的区域ID。
如果链路两端的OSPF区域ID不一致,请在OSPF视图下执行命令area area-id,修改OSPF区域ID以保证一致。
检查链接两端OSPF接口的网络类型是否一致。
分别在链路两端的设备上执行命令display ospf [ process-id ] interface,查看OSPF接口的接口类型。
说明:
如果链路两端OSPF接口的网络类型都是NBMA,则必须在OSPF视图下执行命令peer ip-address [ dr-priority priority ],配置NBMA网络的OSPF邻居。
检查链路两端OSPF接口的IP地址的掩码是否一致。
分别在链路两端的设备上执行命令display current-configuration interface interface-type interface-number,查看OSPF接口的IP地址。
一般情况下,链路两端的OSPF接口的IP地址的掩码必须一致,否则双方不能正常建立OSPF邻居关系。但在P2MP网络中,可以通过在运行OSPF协议的接口视图下配置命令ospf p2mp-mask-ignore来使设备忽略对网络掩码的检查,从而正常建立OSPF邻居关系。
如果OSPF接口的IP地址的掩码不一致,请在运行OSPF协议的接口视图下执行命令ip address ip-address { mask | mask-length },修改OSPF接口的IP地址以保证掩码一致。
检查链路两端OSPF接口的IP地址所在网段是否包含在区域内配置的network内。
分别在链路两端的设备上执行命令display current-configuration interface interface-type interface-number,查看OSPF接口的IP地址;执行命令display current-configuration configuration ospf,查看OSPF进程的配置。
满足下面两个条件,OSPF协议才能在接口上运行:
接口的IP地址掩码长度≥network命令中的掩码长度。OSPF使用反掩码,例如0.0.0.255表示掩码长度24位。
接口的主IP地址必须在network命令指定的网段范围之内。
如果检查发现接口IP地址与配置的network不满足上述条件,请在运行OSPF协议的接口视图下执行命令ip addressip-address { mask | mask-length },修改接口的IP地址;或者在OSPF进程对应的区域视图下执行命令network,修改配置的网段,保证满足上述条件。
检查链路两端OSPF接口的DR优先级是否非零。
分别在链路两端的设备上执行命令display ospf [ process-id ] interface,查看OSPF接口的DR优先级。
对于广播和NBMA类型网络,链路中至少要有一个OSPF接口的DR优先级不为0,这样才能正常选举出DR。否则两边的邻居状态只能达到2-Way。
如果链路两端OSPF接口的DR优先级都为0,请在运行OSPF协议的接口视图下执行命令ospf dr-priority priority,修改OSPF接口的DR优先级以保证至少有一个接口的DR优先级不为0。
检查设备所在区域是否与骨干区域相连。
在设备所在区域的ABR上执行命令display ospf [ process-id ] brief,查看ABR的区域配置信息。
OSPF规定所有非骨干区域必须与骨干区域保持连通。
如果ABR上没有配置骨干区域的信息,请在OSPF视图下执行命令area area-id,修改OSPF区域信息以保证ABR上至少有一个接口运行在骨干区域。
说明:
如果因实际组网限制,无法满足所有非骨干区域与骨干区域保持连通的要求,可以通过配置虚连接来满足需求。
检查设备所在区域是否为Totally Stub区域。
在设备上执行命令display current-configuration configuration ospf [ process-id ],查看OSPF进程的配置信息。
配置非骨干区域为Stub区域时,如果在ABR上配置时加上了参数no-summary (即OSPF区域视图下执行stub no-summary命令),则将该区域配置成了Totally Stub区域。
Totally Stub区域,不允许发布自治系统外部路由和区域间的路由,只允许发布区域内路由。
检查设备所在区域是否为Totally NSSA区域。
在设备上执行命令display current-configuration configuration ospf [ process-id ],查看OSPF进程的配置信息。
配置非骨干区域为NSSA区域时,如果在ABR上配置时加上了参数no-summary (即在OSPF区域视图下执行nssa no-summary命令),则将该区域配置成了Totally NSSA区域。
Totally NSSA区域不允许发布自治系统外部路由和区域间的路由,只允许发布区域内路由。
参考文档:华为HedEx文档
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
上一篇
已是最后文章
下一篇
已是最新文章