IP路由选择原理
1.1 什么是IP路由
在一个IP网络中,路由(Routing)是个非常非常基本的概念。网络的基本功能,是使得处于网络中的两个 IP 节点能够进行通信,而通信实际上就是数据交互的过程,数据交互则需要网络设备帮助我们来将数据在两通信节点之间传输。 当路由器(或者其他三层设备)收到一个IP数据包,路由器会找出IP包三层头中的目的IP地址,然后拿着目的IP地址到自己的路由表中进行查找,找到“最匹配”的条目后,将数据包根据路由条目所指示的出接口或下一跳IP转发出去,如果没有任何“匹配”表项,那就继续看有没有默认路由,如果也没有默认路由,这个数据包就会被丢弃,并向这个数据包的起源发送ICMP报错消息,这就是IP 路由( Routing ) 。而每台路由器都会在本地维护一个路由表( Routing Table ) ,路由表中装载着路由器获知的路由条目(Routes),路由条目由路由前缀(路有所关联的目的地)、路由信息来源、出接口或下一跳 IP等元素构成。路由器通过静态的或者动态的方式获取路由条目并维护自己的路由表。
1.2 IP路由表
一个路由器能够正常工作,大前提就是路由表是稳定的,而且要知道到达网络各个角落的路标,所以路由表是路由器正常工作的非常根本的东西。路由表有很多行(Rows),每行标识一个表项或一条路由,路由表至少有三样东西,分别是目标网络号,路由信息的来源,出站接口。初始情况下路由器只知道直连网段的信息,这个接口的物理状态和协议状态都是 UP,才会被写入路由表中,路由信息来源标记为Direct。如果物理状态和协议状态其中一个为down,那就无法写入路由表中,即使之前写入路由表中也会被擦除。物理状态就是这个接口的物理特征,比如一端有设备另一端没有连接设备这种情况就是down,因为没有电压信号。协议状态就是这个三层接口是工作在IP协议栈里的,那么IP协议栈是正常工作的就是UP的。最后就是这个接口不能被shutdown(关闭)掉,你shutdown掉那这个接口肯定是down状态。
查看路由表:display ip routing-table
1、任何一台具有三层功能的设备都有路由表。每个条目都指向着一个目的地。
2、路由前缀是网络号+掩码的格式,这才是一个完整的路由前缀,两者缺一不可。
3、协议字段表示这一行表项是通过什么途径获得的(直连的,静态的,RIP,OSPF,ISIS, BGP)。
4、优先级字段指的是各个路由协议类型对应的路由优先级,优先级值越小越优,一般用于通过两种不同路由协议发现去往同一目的地的两条路径,会优先采用哪一条,这些优先级值都是约定好的。
5、开销字段就是从我本地到达左侧的目标网络所付出的代价。
6、标志字段D表示这条路由已经下载到底层的转发信息表了,正式在用了。
7、下一跳和出接口表示匹配的某一条表项后会按照表项指示的下一跳和出接口转发。
8、路由条目的来源有三种:直连路由-路由器本地接口所在的网段,静态路由-数通工程师手工配置的路由条目,动态路由-路由器之间动态学习到的路由(使路由器激活路由协议,他们自己就会学习到路由)注意: Ethernet 是二层接口不能配置 IP 地址。
1.3 路由优先级(Preference)
1.3.1 什么是路由优先级(Preference)
路由器可以通过多种途径获知路由条目。当路由器从两种不同的途径获知去往同一个目的地且下一跳不相同的路由时,路由器首先会比较这两条路由的优先级,优选Pre值小的路由。如果Pre值相等,例如是同种路由协议,则进一步比较开销值。
1.3.2 路由优先级的标准
1.4 静态路由
1.4.1 什么是静态路由
静态路由是为路由器手工创建路由条目,这种方式最直接,可控性高,配置简单,不消耗带宽,灵活性差。
优点:配置方便,可控性高。
劣势:如果目标网络有1个就需要配置1个静态路由,如果目标网络有1000个就需要配置1000个静态路由(工作连大),静态路由没办法响应拓扑动态变化。
1.4.2 静态路由的配置
关联下一跳IP的方式:
[Route] ip route-static 目标网络号 掩码 下一跳IP地址
关联出接口和下一跳IP地址
[Route] ip route-static 目标网络号 掩码 出接口 下一跳IP地址
配置示例:
[Route] ip route-static 192.168.1.0 24 192.168.12.2
- 192.168.1.0为该路由条目的网络号
- 24为该网络号的掩码或者前缀长度
- 192.168.12.2为去往该网络的下一跳IP
注意:
数据通信是双向(往返)的,因此要留意往返流量的路由。(回程数据)
路由的行为是逐跳的( Hop-By-Hop