静态路由(英语:Static routing)是一种
路由的方式,路由项(routing entry)由手动配置,而非动态决定。与
动态路由不同,静态路由是固定的,不会改变,即使网络状况已经改变或是重新被组态。一般来说,静态路由是由
网络管理员逐项加入
路由表。
优点
使用静态路由的另一个好处是
网络安全保密性高。
动态路由因为需要
路由器之间频繁地交换各自的
路由表,而对路由表的分析可以揭示网络的
拓扑结构和
网络地址等信息。因此,网络出于安全方面的考虑也可以采用静态路由。不占用
网络带宽,因为静态路由不会产生更新流量。静态路由适用于中小型网络。
缺点
大型和复杂的
网络环境通常不宜采用静态路由。一方面,
网络管理员难以全面地了解整个网络的
拓扑结构;另一方面,当网络的拓扑结构和链路状态发生变化时,路由器中的静态路由
信息需要大范围地调整,这一工作的难度和复杂程度非常高。当网络发生变化或网络发生故障时,不能重选路由,很可能使路由失败。
配置命令
(以图1为例)
静态路由的配置有两种方法:
带下一跳路由器的静态路由,和带送出接口的静态路由
router(config)#
hostname A (更改路由器
主机名)A(config)#
interface f0/0 (进入接口f0/0)
A(config-if)#ip address 192.168.1.1 255.255.255.0 (设置接口ip地址和
子网掩码)
A(config-if)#no
shutdown (启用接口)
A(config)#interface f0/1
A(config-if)#ip address 192.168.2.1 255.255.255.0
A(config-if)#no shutdown
×××以下二选一:
A(config)#
ip route 192.168.3.0 255.255.255.0 f0/1(目标
网段IP地址 目标
子网掩码送出接口[路由器A])
或者
A(config)#ip route 192.168.3.0 255.255.255.0 192.168.2.2 (目标
网段IP地址 目标
子网掩码下一路由器接口ip地址)
×××
router(config)#hostname B
B(config-if)#ip address 192.168.3.1 255.255.255.0
B(config-if)#no shutdown
B(config)#interface f0/1
B(config-if)#ip address 192.168.2.2 255.255.255.0
B(config-if)#no shutdown
×××以下二选一:
B(config)#ip route 192.168.1.0 255.255.255.0 192.168.2.1
或者:
B(config)#ip route 192.168.1.0 255.255.255.0 f0/1(目标
网段IP地址 目标
子网掩码送出接口[路由器B])
×××
注1:此网络链路为
以太网链路,如果是
串行链路,送出接口也就是本地路由器的串行接口。
简明解释:ip route 192.168.3.0 255.255.255.0 192.168.2.2
这句话的意思是:在HOSTA上,路由器见到目的
网段为192.168.3.0的
数据包,就将数据包发送到192.168.2.2上
注2:ip route 指向一个就可,如果两个都配了,就是说将这个
数据包从发fa0/1出去,而另一个说数据包发到这个ip(例如192.168.2.2)。两个重复。一般我们设置为指向IP。
当有两条及以上指向同一目标地址但出口不同的静态路由存在于同一路由或交换设备上时,发送到目标地址的流量将从这些出口
负载均衡发送。
举例
基本的静态路由举例如图2所示,由两个路由器R1和R2组成(接口号和
IP地址在图2中给出),它们分别连接了各自的网络:R1连接了
子网192.168.0.0/24,R2连接了子网192.168.2.0/24。
在没有配置静态路由的情况下,这两个子网中的计算机A、B之间是不能通信的。从计算机A发往计算机B的IP包,在到达R1后,R1不知道如何到达计算机B所在的
网段192.168.2.0/24(即R1上没有去往192.168.2.0/24的
路由表),同样R2也不知道如何到达计算机A所在的网段192.168.0.0/24,因此通信失败。
此时就需要管理员在R1和R2上分别配置静态路由来使计算机A、B成功通信。
通过上面的两段配置,从计算机A发往计算机B的IP包,能被R1通过2号
端口转发给R2,然后R2转发给计算机B。同样地,从计算机B返回给计算机A的IP包,能被R2通过3号端口转发给R1,然后R1转发给计算机A,完成了一个完整的通讯过程。
常见问题
路由得查看
路由表而决定怎么转发
数据包,用静态路由一个个的配置,繁琐易错。如果路由器有个邻居知道怎么前往所有的目的地,可以把
路由表匹配的任务交给它,省了很多事。
例,网关会知道所有的路由,如果一个路由器连接到网关,就可以配置
默认路由,把所有的
数据包都转发到网关。
2)为什么默认路由是0.0.0.0
匹配IP地址时,0表示wildcard, 任何值都可以。所以0.0.0.0和任何目的
地址匹配都会成功,造成默认路由要求的效果。