第三章:静态路由。
路由表获取信息有两种:
第一种是以静态路由手工输入信息。
第二种是以动态路由自动获取信息。
选择路由有两个参数:
第一个是管理距离,指名选择的路由
第二个是度量值,指名了路径的优先级
实施静态路由有:两个步骤:
1:确定网络中报文所经过的所有链路。(包括子网和网络)
2:为每个路由器标示非直连的所有数据链路。
静态路由的两配置方法:
1:Router(config)#ip route 23.1.1.0 255.255.255.0 serial 0/1
2:Router(config)#ip route 23.1.1.0 255.255.255.0 12.1.1.2
第一种会在路由表中产生一条直连路由。
第二种会在路由表中产生一条静态路由。
我们可以利用路由表选择最大匹配长度转发的特性进行一些比较简单的选路。
像这张拓扑,我们这样做:
先写一条R1(config)#ip route 2.2.0.0 255.255.0.0 serial 0/0
接着写一条ip route 2.2.4.2 255.255.255.255 serial 0/1
R1的路由表会变成:
以路由转发的原则会先匹配最大长度的掩码,到达2.2.4.2这个地址时会从S0/1口发送数据。
而到达2.2.0.0/16的数据包将会从S0/0口发送到达目的地。
浮动静态路由:
区别于一般静态路由,浮动静态路由一般不出现在路由表中,只有当一条链路down的时候才会启用,当主链路UP后备用的浮动静态路由就会消失在路由表中。
我们拿23网段来做实验。
R1(config)#ip route 23.1.1.0 255.255.255.0 serial 0/0
R1(config)#ip route 23.1.1.0 255.255.255.0 serial 0/1 50
R1是S0/0做为主链路,当S0/0链路出现故障down了的时候S0/1自动启用接替S0/0的位子
先看S0/0链路正常状态时候的路由表。
现在S0/0链路出现了故障,我们再来看下R1的路由表
S0/1这条路由自动出现了。
负载均衡
等代价负载均衡:
将流量平均的分布到多条相同度量值的路径上。
不等代价负载均衡:
将流量分布到不同度量值的多条路径上,每条链路上所分配的流量与路由的度量值成反比,也就是说度量值越低所分配到的流量就越多。
所有的路由协议都支持等代价负载均衡(因为静态路由没有度量值只能进行等代价负载均衡),支持不等代价负载均衡的只有EIGRP。
现在来看一个静态路由的负载均衡引
R2-3都只配了基本的IP
R1配置了两条静态路由到23.1.1.0/24的网络进行负载均衡。
R1(config)#ip route 23.1.1.0 255.255.255.0 f0/0
R1(config)#ip route 23.1.1.0 255.255.255.0 f0/1
来看下R1的路由表:
到23.1.1.0/24有两条路径,一条从12.1.1.2,一条从13.1.1.3。
现在来ping下23.1.1.2看下会出现什么情况。
出现!的是从12.1.1.2出口发送的数据包,.是从13.1.1.3出去的数据包。现在来看下R2和R3的路由表为什么会出现这个问题。
R2路由表:
R3:路由表
我们先看从R1发送到13.1.1.2的数据包,源地址是12.1.1.1,目的地址是23.1.1.2
到达R2后,R2会发包给R1,数据包的源地址是12.1.1.2目的是12.1.1.1。通讯到此结束。
再来看下从13.1.1.1发出的数据包。因为负载均衡的关系,R1会一个出口发一个包。从13.1.1出口发出的包,源地址是13.1.1.1,目的地址是23.1.1.2。数据转发过程是R1发送到13.1.1.3,R3收到包后先查看自己的路由表,发现直连着23.1.1.0/24网段,在查看自己的ARP表,发现23.1.1.2可以从F0/1口到达,就把数据包发送给了R2,完成了R1到23.1.1.2的转发任务,因为Ping是一个有来有回的过程,所以R2就要回复一个包给R1,包的源地址就会是23.1.1.2,而目的地址就成了13.1.1.1。R2在查找自己的路由表时没有发现13.1.1.0/24这个网络就会将包直接丢弃。就像是一个人不知道目的地在哪就不会迈出第一步一样。这样就导致了从13.1.1.1出来的icmp包都不能完成。
静态路由故障排除:
排除路由故障时,首先要检查的是路由表。基本上有三个要点
1:路由器知道什么路径?
2:路由器是怎么到达目标网络的?
3:路由表中的信息是否准确?
为了顺利的排除路由故障,了解怎么跟踪路由是非常必要的。
使用traceroute来跟踪路由查看路由所走路径。查看ARP表,看MAC是否和IP准确对应。
ROO上有条/32位的静态路由指向172.16.20.75.查看路由表后
查看自身路由表后将到172.16.20.75的数据包从E1口发送到172.16.21.2,Kanga收到后发现172.16.20.0/24是自身的直连网络,就会发送一个ARP请求来查找172.16.20.75这个PC。
由于网桥的延迟。Roo可能会先响应这个ARP请求,查找路由表后发现有172.16.20.75的静态路由就触发了ARP代理这个功能,导致了数据包在Roo和Kanga之间来回转发造成环路。
解决的办法有两个
一:关闭Roo上E0口的ARP代理功能。
Router(config-if)#no ip proxy-arp
二:将目标的IP和MAC绑定在ARP表。
Router(config)#arp 172.16.20.75 0001.0001.0001 arpa
静态绑定的ARP不会被清除。