02-静态路由配置
本章节下载: 02-静态路由配置 (247.56 KB)
目 录
本章所指的路由器代表了一般意义下的路由器,以及运行了路由协议的三层交换机。
静态路由是一种特殊的路由,由管理员手工配置;配置静态路由后,去往指定目的地的数据报文将按照管理员指定的路径进行转发。
在组网结构比较简单的网络中,只需配置静态路由就可以实现网络互通。恰当地设置和使用静态路由可以改善网络的性能,并可为重要的网络应用保证带宽。
静态路由的缺点在于:不能自动适应网络拓扑结构的变化,当网络发生故障或者拓扑发生变化后,可能会出现路由不可达,导致网络中断,此时必须由网络管理员手工修改静态路由的配置。
如果到达某个指定网络的数据报文在路由器的路由表里找不到对应的表项,那么该报文将被路由器丢弃。
通过给当前路由器配置一条缺省路由,那些在路由表里找不到匹配路由表入口项的数据报文将会转发给另外一台路由器(如果这台路由器的路由能力比较强,包括到达大部分所有网络的路由信息),由另外一台路由器进行报文的转发。
缺省路由是在路由器没有找到匹配的路由表入口项时才使用的路由:
l 如果报文的目的地址不能与路由表的任何入口项相匹配,那么该报文将选取缺省路由;
l 如果没有缺省路由且报文的目的地不在路由表中,那么该报文将被丢弃,将向源端返回一个ICMP报文报告该目的地址或网络不可达。
缺省路由有两种生成方式:
l 第一种是通过网络管理员在路由器上配置到网络0.0.0.0(掩码也为0.0.0.0)的静态路由,对于一个到来的数据报文,如果在当前路由器里找不到匹配的路由表项,将会把报文发给在配置的静态路由里指定的下一跳路由器;
l 第二种是通过动态路由协议生成(如OSPF、IS-IS和RIP),由路由能力比较强的路由器将缺省路由发布给其它路由器,其它路由器在自己的路由表里生成指向那台路由器的缺省路由。
配置静态路由时,需要了解以下内容:
(1) 目的地址与掩码
在ip route-static命令中,IPv4地址为点分十进制格式,掩码可以用点分十进制表示,也可用掩码长度(即掩码中连续‘1’的位数)表示。
(2) 出接口和下一跳地址
在配置静态路由时,可指定出接口,也可指定下一跳地址。指定出接口还是指定下一跳地址要视具体情况而定,下一跳地址不能为本地接口IP地址,否则路由不会生效。
实际上,所有的路由项都必须明确下一跳地址。在发送报文时,首先根据报文的目的地址寻找路由表中与之匹配的路由。只有指定了下一跳地址,链路层才能找到对应的链路层地址,并转发报文。
指定出接口时需要注意:
l 对于Null0接口,配置了出接口就不再配置下一跳地址。
l 对于点到点接口,即使不知道对端地址,也可以在路由器配置时指定出接口。这样,即使对端地址发生了改变也无须改变该路由器的配置。如封装PPP协议的接口,通过PPP协商获取对端的IP地址,这时可以不指定下一跳地址,只需指定出接口即可。
l 对于NBMA、P2MP等接口,它们支持点到多点网络,这时除了配置IP路由外,还需在链路层建立二次路由,即IP地址到链路层地址的映射。通常情况下,建议在配置出接口时,同时配置下一跳IP地址。
l 在配置静态路由时,建议不要直接指定广播类型接口作出接口(如VLAN接口)。因为广播类型的接口,会导致出现多个下一跳,无法唯一确定下一跳。在某些特殊应用中,如果必须配置广播接口(如VLAN接口)为出接口,则必须同时指定其对应的下一跳地址。
(3) 其它属性
对于不同的静态路由,可以为它们配置不同的优先级,从而更灵活地应用路由管理策略。例如:配置到达相同目的地的多条路由,如果指定相同优先级,则可实现负载分担,如果指定不同优先级,则可实现路由备份。
在配置静态路由之前,需完成以下任务:
l 配置相关接口的物理参数
l 配置相关接口的链路层属性
l 配置相关接口的IP地址
表1-1 配置静态路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置静态路由 |
ip route-static dest-address { mask | mask-length } { next-hop-address | interface-type interface-number next-hop-address | vpn-instance d-vpn-instance-name next-hop-address } track track-entry-number [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
必选 缺省情况下,静态路由的优先级preference为60,静态路由tag值为0,未配置描述信息 |
ip route-static vpn-instance s-vpn-instance-name&<1-6> dest-address { mask | mask-length } { next-hop-address track track-entry-number [ public ] | interface-type interface-number next-hop-address | vpn-instance d-vpn-instance-name next-hop-address track track-entry-number } [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
||
配置静态路由的缺省优先级 |
ip route-static default-preference default-preference-value |
可选 缺省情况下,静态路由的缺省优先级为60 |
l 在配置静态路由时,如果先指定下一跳地址,然后将该地址配置为本地接口(如VLAN接口)的IP地址,静态路由不会生效。
l 如果在配置静态路由时没有指定优先级,就会使用缺省优先级。重新设置缺省优先级后,新设置的缺省优先级仅对新增的静态路由有效。
l 设置静态路由的Tag值,可以在路由策略中根据Tag值对路由进行灵活的控制。
l 在使用ip route-static配置静态路由时,如果将目的地址与掩码配置为全零(0.0.0.0 0.0.0.0),则表示配置的是缺省路由。
l 关于Track的详细介绍,请参考“可靠性分册”中的“Track配置”。
BFD(Bidirectional Forwarding Detection,双向转发检测)提供了一个通用的、标准化的、介质无关、协议无关的快速故障检测机制,可以为各上层协议如路由协议、MPLS等统一地快速检测两台路由器间双向转发路径的故障。关于BFD的详细介绍,请参考“可靠性分册”中的“BFD配置”。
BFD需要检测两端建立会话。对于动态路由协议来说是有邻居概念的,因此在检测两端动态路由协议都会通知BFD会话邻居信息,从而检测两端的BFD任务可以通过向邻居发送BFD控制报文来建立会话。由于静态路由没有什么邻居的概念一般使用以下方法解决。
静态路由使用控制报文方式BFD功能时,对端也必须存在对应的BFD会话。检测两个方向上的链路状态,实现毫秒级别的链路故障检测。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置静态路由运行BFD |
ip route-static dest-address { mask | mask-length } interface-type interface-number next-hop-address bfd control-packet [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
二者必选其一 |
ip route-static vpn-instance s-vpn-instance-name&<1-6> dest-address { mask | mask-length } interface-type interface-number next-hop-address bfd control-packet [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
利用BFD echo报文,通过报文建立会话,echo报文的目的地址为本设备接口地址,发送给下一跳设备后会直接转发回本设备而不经过BFD任务处理。这里所说的“单跳”是IP的一跳。
表1-3 配置静态路由与BFD联动(单跳检测)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置echo报文源地址 |
bfd echo-source-ip ip-address |
必选 缺省情况下,没有配置echo报文源地址 |
配置静态路由运行BFD |
ip route-static dest-address { mask | mask-length } interface-type interface-number next-hop-address bfd echo-packet [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
二者必选其一 |
ip route-static vpn-instance s-vpn-instance-name&<1-6> dest-address { mask | mask-length } interface-type interface-number next-hop-address bfd echo-packet [ preference preference-value ] [ tag tag-value ] [ description description-text ] |
l 路由振荡时,使能BFD检测功能可能会加剧振荡,需谨慎使用。
l 当BFD会话工作于echo报文方式时,必须配置echo报文源地址。
l 配置静态路由与BFD联动时,必须同时指定出接口和路由的下一跳IP地址。
l 静态路由如果出接口为含SPOOFING属性的接口,不能使用BFD进行检测。
l 静态路由仅支持使用BFD检测直连的下一跳。如果静态路由配置的下一跳非直连,则不支持BFD检测。
l 在草案中BFD echo功能进行了修改,当使用echo报文方式时,仅在一端建立BFD会话。
在完成上述配置后,在任意视图下执行display命令查看静态路由配置的运行情况并检验配置结果。
在系统视图下执行delete命令可以删除配置的所有静态路由。
表1-4 静态路由显示和维护
操作 |
命令 |
查看当前的配置文件信息 |
display current-configuration |
查看IP路由表摘要信息 |
display ip routing-table |
查看IP路由表详细信息 |
display ip routing-table verbose |
查看静态路由表信息 |
display ip routing-table protocol static [ inactive | verbose ] |
删除所有静态路由 |
delete [ vpn-instance vpn-instance-name ] static-routes all |
路由器各接口及主机的IP地址和掩码如下图所示。要求采用静态路由,使图中任意两台主机之间都能互通。
图1-1 静态路由配置组网图
(1) 配置各接口的IP地址(略)
(2) 配置静态路由
# 在Switch A上配置缺省路由。
<SwitchA> system-view
[SwitchA] ip route-static 0.0.0.0 0.0.0.0 1.1.4.2
# 在Switch B上配置两条静态路由。
<SwitchB> system-view
[SwitchB] ip route-static 1.1.2.0 255.255.255.0 1.1.4.1
[SwitchB] ip route-static 1.1.3.0 255.255.255.0 1.1.5.6
# 在Switch C上配置缺省路由。
<SwitchC> system-view
[SwitchC] ip route-static 0.0.0.0 0.0.0.0 1.1.5.5
(3) 配置主机
配置Host A的缺省网关为1.1.2.3,Host B的缺省网关为1.1.6.1,Host C的缺省网关为1.1.3.1,具体配置过程略。
(4) 查看配置结果
# 显示Switch A的IP路由表。
[SwitchA] display ip routing-table
Routing Tables: Public
Destinations : 7 Routes : 7
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/0 Static 60 0 1.1.4.2 Vlan500
1.1.2.0/24 Direct 0 0 1.1.2.3 Vlan300
1.1.2.3/32 Direct 0 0 127.0.0.1 InLoop0
1.1.4.0/30 Direct 0 0 1.1.4.1 Vlan500
1.1.4.1/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
# 显示Switch B的IP路由表。
[SwitchB] display ip routing-table
Routing Tables: Public
Destinations : 10 Routes : 10
Destination/Mask Proto Pre Cost NextHop Interface
1.1.2.0/24 Static 60 0 1.1.4.1 Vlan500
1.1.3.0/24 Static 60 0 1.1.5.6 Vlan600
1.1.4.0/30 Direct 0 0 1.1.4.2 Vlan500
1.1.4.2/32 Direct 0 0 127.0.0.1 InLoop0
1.1.5.4/30 Direct 0 0 1.1.5.5 Vlan600
1.1.5.5/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
1.1.6.0/24 Direct 0 0 1.1.6.1 Vlan100
1.1.6.1/32 Direct 0 0 127.0.0.1 InLoop0
# 在Host B上使用ping命令验证Host A是否可达(假定主机安装的操作系统为Windows XP)。
C:\Documents and Settings\Administrator>ping 1.1.2.2
Pinging 1.1.2.2 with 32 bytes of data:
Reply from 1.1.2.2: bytes=32 time=1ms TTL=255
Reply from 1.1.2.2: bytes=32 time=1ms TTL=255
Reply from 1.1.2.2: bytes=32 time=1ms TTL=255
Reply from 1.1.2.2: bytes=32 time=1ms TTL=255
Ping statistics for 1.1.2.2:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 1ms, Average = 1ms
# 在Host B上使用tracert命令验证Host A是否可达。
[HostB] tracert 1.1.2.2
Tracing route to 1.1.2.2 over a maximum of 30 hops
1 <1 ms <1 ms <1 ms 1.1.6.1
2 <1 ms <1 ms <1 ms 1.1.4.1
3 1 ms <1 ms <1 ms 1.1.2.2
Trace complete.
l 在Switch A上配置静态路由可以到达Switch C,并使能BFD检测功能。
l 当Switch A和Switch B之间的链路出现故障时,Switch A选择经过Switch D到达Switch C。
图1-2 静态路由BFD(单跳检测)配置组网图
(1) 配置各接口的IP地址(略)
(2) 配置BFD
# 在Switch A上配置静态路由,并使能BFD检测功能,通过BFD echo报文方式实现BFD功能。
<SwitchA> system-view
[SwitchA] bfd echo-source-ip 123.1.1.1
[SwitchA] interface vlan-interface 10
[SwitchA-vlan-interface10] bfd min-echo-receive-interval 500
[SwitchA-vlan-interface10] bfd detect-multiplier 7
[SwitchA-vlan-interface10] quit
[SwitchA] ip route-static 120.1.1.1 24 vlan-interface 10 10.1.1.100 bfd echo-packet
[SwitchA] ip route-static 120.1.1.1 24 vlan-interface 11 11.1.1.2 preference 65
[SwitchA] quit
(3) 检查配置结果
# 显示Switch A使能BFD信息。
<SwitchA> display bfd session
Total Session Num: 1 Init Mode: Active
Session Working Under Echo Mode:
LD SourceAddr DestAddr State Holdtime Interface
7 10.1.1.102 10.1.1.100 Up 1700ms Vlan10
# 显示Switch A路由表详细信息。
<SwitchA> display ip routing-table protocol static
Public Routing Table : Static
Summary Count : 2
Static Routing table Status : <Active>
Summary Count : 1
Destination/Mask Proto Pre Cost NextHop Interface
120.1.1.1/24 Static 65 0 10.1.1.100 Vlan10
Direct Routing table Status : <Inactive>
Summary Count : 1
Destination/Mask Proto Pre Cost NextHop Interface
120.1.1.1/24 Static 60 0 11.1.1.2 Vlan11
# 在Switch A上打开BFD功能调试信息开关。
<SwitchA> debugging bfd event
<SwitchA> debugging bfd scm
<SwitchA> terminal debugging
# 当Switch B和二层交换机之间的链路发生故障时。可以看到Switch A能够快速感知Switch B的变化。
%Nov 12 19:28:28:592 2005 SwitchA BFD/5/LOG:Sess[123.1.1.1/10.1.1.100, Vlan10], Sta: UP->DOWN, Diag: 1
*0.53892593 SwitchA BFD/8/SCM:Sess[123.1.1.1/10.1.1.100, Vlan10], Oper: Reset
*0.53892593 SwitchA BFD/8/EVENT:Send sess-down Msg, [Src:123.1.1.1, Dst:10.1.1.100, Vlan10] Protocol: STATIC
*0.53892595 SwitchA RM/7/LOG:static route [Dest:120.1.1.1/24,Nexthop:10.1.1.100,ExitIf: Vlan10] became invalid
# 当Switch A到Switch B链路发生故障时,通过display ip routing-table protocol static命令查看路表信息。Switch A选择经过Switch D静态路由到达Switch C。
<SwitchA> display ip routing-table protocol static
Public Routing Table : Static
Summary Count : 2
Static Routing table Status : < Active>
Summary Count : 1
Destination/Mask Proto Pre Cost NextHop Interface
120.1.1.1/24 Static 65 0 11.1.1.2 Vlan11
Static Routing table Status : < Inactive>
Summary Count : 1
Destination/Mask Proto Pre Cost NextHop Interface
120.1.1.1/24 Static 60 0 10.1.1.100 Vlan10
l 在Switch A上配置静态路由可以到达14.1.1.0/24网段路由,在Switch B上配置静态路由可以到达13.1.1.0/24网段路由,并都使能BFD检测功能;
l 当Switch A和Switch B链路出现故障时BFD能够快速感知。
图1-3 静态路由与BFD联动(双向检测)配置组网图
(1) 配置BFD
# 配置Switch A。
<SwitchA> system-view
[SwitchA] interface vlan-interface 12
[SwitchA-vlan-interface12] ip address 12.1.1.1 24
[SwitchA-vlan-interface12] bfd min-transmit-interval 500
[SwitchA-vlan-interface12] bfd min-receive-interval 500
[SwitchA-vlan-interface12] bfd detect-multiplier 9
[SwitchA-vlan-interface12] quit
[SwitchA] ip route-static 14.1.1.0 24 vlan-interface 12 12.1.1.2 bfd control-packet
[SwitchA] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] interface vlan-interface 12
[SwitchB-vlan-interface12] ip address 12.1.1.2 24
[SwitchB-vlan-interface12] bfd min-transmit-interval 500
[SwitchB-vlan-interface12] bfd min-receive-interval 500
[SwitchB-vlan-interface12] bfd detect-multiplier 9
[SwitchB-vlan-interface12] quit
[SwitchB] ip route-static 13.1.1.0 24 vlan-interface 12 12.1.1.1 bfd control-packet
[SwitchB] quit
(2) 检查配置结果
<SwitchA> display bfd session
Total Session Num: 1 Init Mode: Active
Session Working Under Ctrl Mode:
LD/RD SourceAddr DestAddr State Holdtime Interface
4/7 12.1.1.1 12.1.1.2 Up 2000ms Vlan12
# 在Switch A上查看静态路由。
<SwitchA> display ip routing-table protocol static
Public Routing Table : Static
Summary Count : 1
Static Routing table Status : < Active>
Summary Count : 1
Destination/Mask Proto Pre Cost NextHop Interface
14.1.1.0/24 Static 60 0 12.1.1.2 Vlan12
Static Routing table Status : < Inactive>
Summary Count : 0
# 在Switch A上打开BFD功能调试信息开关。
<SwitchA> debugging bfd event
<SwitchA> debugging bfd scm
<SwitchA> terminal debugging
# Switch A和二层交换机之间链路发生故障时,可以看到Switch A能够快速感知Switch B的变化。
%Jul 27 10:18:18:672 2007 SwitchA BFD/4/LOG:Sess[12.1.1.1/12.1.1.2, Vlan12,Ctrl],
Sta: UP->DOWN, Diag: 1
*Jul 27 10:18:18:672 2007 SwitchA BFD/7/EVENT:Send sess-down Msg, [Src:12.1.1.1,
Dst:12.1.1.2, Vlan12,Ctrl], instance:0, protocol:STATIC
*Jul 27 10:18:19:172 2007 SwitchA BFD/7/EVENT:Receive Delete-sess, [Src:12.1.1.1
,Dst:12.1.1.2, Vlan12,Ctrl], Direct, Instance:0x0, Proto:STATIC
*Jul 27 10:18:19:172 2007 SwitchA BFD/7/EVENT:Notify driver to stop receiving bf
# 此时查看静态路由,路由处于Inactive状态。
<SwitchA> display ip routing-table protocol static
Public Routing Table : Static
Summary Count : 1
Static Routing table Status : < Active>
Summary Count : 0
Static Routing table Status : < Inactive>
Summary Count : 1
Destination/Mask Proto Pre Cost NextHop Interface
14.1.1.0/24 Static 60 0 12.1.1.2 Vlan12
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!