一、静态路由的优化配置
本文以CISCO为例阐述,对于其他的品牌路由器一样适用。
我们都知道路由器在网络中扮演的重要角色,他的性能好坏常常关乎到我们网络的流畅。如果你从不对路由器的路由表进行优化,在牛B的路由器也抵挡不了千万级数据包的传输。
在一个网络中网络的结构有 MA 以及 P2P 两种网络,通俗理解就是MA=一对多 连接 ,P2P = 端对端连接。
对于静态路由我们知道形式如: ip route 12.1.1.0 255.255.255.0 下一跳IP或者接口
那么对于我们什么时候用下一跳Ip 什么时候用接口呢?
分析一下:
对于一个MA网络,当路由器中记录的路由是转出接口的时候,该接口要把一个包发送出去之前,由于是一对多的关系,所以它并不知道要发给谁,它只能先进行ARP询问。这个arp的过程就会浪费CPU资源以及产生网络延迟。相反如果路由表中记录的是下一跳IP地址,那么该接口就不需要使用arp了,直接将数据发送到指定的IP接口上去。
对于一个P2P网络,当路由器中记录的路由是路由下一跳,那么在发包之前必须先查询路由表找到出接口,然后将数据包扔到该接口,这一个过程同样要查询路由表,当我们的路由器接到千万数据包的时候,每一个包都要进行查询路由表岂不是很浪费时间?相反如果是直接记录接口,我们将该数据扔到接口上就好,因为对方只有一个端,接受的肯定是它了。
总结:
对于 MA 网络 静态路由应使用 下一跳IP地址
对于 P2P网络 静态路由应使用 出接口
当然对于一个这样的网络构建每次都要分析对我们网管人员来说也是不利的。所以静态路由的中级写法应该是:
ip route 12.1.1.0 255.255.255.0 出接口 next-hop
既包含出接口也包含下一跳地址,一定记住的是出接口写前面。
二、关于ping在网络设备中使用
常常我们都要用ping命令在网络设备上进行测试路由连通性,经常遇到终端上能ping通一个地址,却在网络设备上ping不通。
原因是很简单的。因为你没弄清楚ping的原理。
ping 包是一个三层数据包,肯定具备源目IP地址,所以在终端上我们ping一个地址的时候,很显然ping的源IP就是终端的IP,但是如果在一个网络设备上,比如一个路由器上使用ping,而该路由器我又连接了多个网段,那么请问ping使用什么地址作为源IP? ping包中使用的只能是他出接口IP地址作为源地址,所以在一个网络上你需要测试网络的连通性的时候如果简单的使用PING ip-address 不通就判定一个路由不通是不科学的。
建议你在网络维护的时候对PING命令这样使用:
ping 目的ip地址 source ip地址
ping 3.3.3.3 source 1.1.1.1
注意的是 源诋毁必须是网络中存在的地址,否则无法使用ping。
这样的目的是对ping强制加上源地址,用它去测试才能真正说明两个网段之间能不能正常通信。