一、路由概述
-
- 路由基本概述
什么是路由和路由表?
每个网络号或者主机地址就是一条路由,由许许多多的不同网段号和主机地址构成的表就是路由表。
可以通过命令display ip routing-table来进行查看。
其中网络号:192.168.1.0/24,主机地址192.168.1.1/32
为什么需要路由表?
- 同一个网段的用户的数据互访,可以通过ARP直接进行目的端的MAC地址请求,从而分装发送数据。
- 如果是不同网段的用户的数据互访,例如N访问M,由于在N发送的数据中没有写明到达目的地M的路线,就需要中间的路由设备(路由器、三层交换机、防火墙等)进行中转接力,最终到达目的地M。
- 这就要求中转的路由设备能够由到达目的地的M和届时返回N的路由,这样中转设备才知道应该将数据发送给哪一个下一跳设备。因此设备需要有到达全网的不同网络号的路由,并形成本地的路由表存储下来直到数据的路由转发。
拓展:在IP的扩展头部中,有一种Source Route(源路由)功能,管理员能够在IP头部加上若干个中转站地址,这样数据就可以按照管理员的意愿在网络中进行发送。
路由信息介绍
设备是如何使用路由表的?
假设现在有一个流量从14.0.0.1发往11.0.0.1的ping流量从GE0/2接口被R2收到,那么R2应该如何使用路由表来进行数据处理?
R2从GE0/2收到的报文封装如下
DMAC=1.1.1.1 对应MAC SMAC=1.1.1.2对应MAC | SIP=14.0.0.1 DIP=11.0.0.1 | icmp | 数据 |
R2发现目的MAC是本设备的GE0/2端口,就拆开二层数据帧,R2要面对的是如下的报文
SIP=14.0.0.1 DIP=11.0.0.1 | icmp | 数据 |
R2发现DIP是11.0.0.1,不是发送给本设备的,因此就要转发出去,此时就根据DIP查询路由表,发现下一跳是2.2.2.2,出接口是GE0/0。此时就完成了一次传说中的三层处理,并将TTL减1。
由于出接口是以太网,因此就要进行以太网的封装。此时SMAC为设备在该广播域的GE0/0的MAC地址(已知),目的MAC地址为下一跳2.2.2.2的MAC地址(未知),于是R2就要发送ARP报文,请求2.2.2.2对应的MAC。R1会回复后,报文封装如下
DMAC=2.2.2.2 对应MAC SMAC=2.2.2.1对应MAC | SIP=14.0.0.1 DIP=11.0.0.1 | icmp | 数据 |
封装完毕后即可发送出去。
1.2 路由条目的生成
静态路由:管理员手动配置(氪金后GM给你加上的技能)
动态路由:设备通过路由协议学习到的路由(向其他玩家学习到的技能)
1.因为要在以太网上发送,所以要遵守以太网的规则,进行二层帧的封装,因此需要查找相应的ARP表项,如果没有缓存,则发送ARP广播。
4.当路由匹配直连的时候,表示目的地近在咫尺
一条直连路由会送你三个路由条目
1.3 最优路由选择
细品路由表
最重要的几个参数,可以忘记前对象,以下几个不能忘记,并且要理解的基础上牢记。
目的网络/掩码 Destination/Mask
1.网络号+掩码,理解方式和子网划分是一样的(主机位为全0)
2.主机地址+32位掩码,单纯表示一个主机地址
协议proto
路由的来源。表示此条路由是从什么方式获取到的,常见的有Direct(直连)、static(管理员手工指定的静态路由)、ospf(通过OSPF学习到的)等
优先级 pre
该路由的优先级,用于在进入路由表的海选阶段进行比较的时候使用。
开销(度量值)Cost
从该路径走,具体的开销是多少。开销可能与带宽有关系。
标志位 Flags
D:download to fib
已经加载到fib中 ,由硬件处理
下一跳NextHop
去往目的网路的下一跳(一般是本设备直连的),表示应该发给的下一个中转站的IP地址。如果是127.0.0.1或者是自身的接口IP地址,则表示直连。
出接口 Interface
去往目的网段的本设备的出接口,该接口位于本设备上,与下一跳相呼应。如果是InLoopback0则表示为环回接口(一种逻辑接口)
注意:路由表是按顺序排列的(数字顺序由小到大)!!!因此你要查看路由表中是否有去往相关网段的路由的时候,像查字典一样去查就好。
路由进入路由表的海选之路
第一轮海选 比较优先级
只有通过不同的方式(静态、直连或动态)形成的网络号和掩码完全相同的路由条目,才比较优先级,优先级值最小的海选进入路由表中。
如果是不同的,则不需要比较优先级,直接加入
什么是完全相同的网络号和掩码?
192.168.1.0/24 vs 192.168.1.0/24
什么是网络号和掩码不同?
192.168.1.0/24 vs 192.168.1.0/25
192.168.1.0/24 vs 192.168.2.0/24
注意:1.不要被PPT中的表述误导,直接理解:去往相同目的网段,优先级最小的加入
Q:如果HUAWEI和Cisco一起运行路由协议,能否正确计算路由?一边是优先级一边是管理距离怎么兼容?
A:可以计算出来,各算各的
Q:如果优先级都是最小,并且都是最低怎么办?
A:
第二轮海选 比较度量值Cost
2.开销越小,越优先加入路由表
- 优先级和度量值仅仅是针对相同的目的网段而言,不同的目的网段无需比较
- 优先级和度量值仅仅是为了决定是否加入路由表。
- 优先级是在不同的方式学习到相同目的网段的路由之间的比较(第一轮海选)
- 度量值是优先级相同目的网段的路由之间的比较(第二轮海选)
路由表决赛淘汰赛(直接影响数据转发)
决赛只有一个原则:在包含目的IP地址的路由条目中选择掩码最长的!!
Q:如果路由表中有两条通过ospf学习到的,都能去往192.168.2.10的路由
路由条目A 掩码长度28:开销是64,下一跳是172.16.2.1,
路由条目B 掩码长度16:开销是86,下一跳是172.16.2.2,
请问设备会选择哪一个下一跳进行转发?
A:???
最长匹配例子
小结
二、静态路由
特点
2.无自适应,只能管理员自适应,如果网络变动较大,不利于管理员摆烂
A:只写出接口的话,那么在多路访问情况下就有多个下一跳,此时不指定下一跳,设备就蒙圈了,因此就直接发ARP请求(即使不是一个网段的),那么收到的设备没有开启ARP代理(华为没开 arp-proxy enable),网络就不通
A:下一跳IP地址可能是不确定的。
Q:P2P可以指定下一跳而不指定出接口。
A:完全可以
缺省路由
Q:当缺省路由和普通的路由都能去往目的地,但是下一跳不同的时候,该怎么办?
A:
三、动态路由简介
1.很大程度上可以降低管理员的工作量
2.一定程度上增加设备的工作量
3.动态路由协议可以对网络拓扑改变做到一定程度上自适应
4.提供了路由协议的一些特定和功能。
根据路由信息传递的内容、计算路由的算法,可以分为
距离矢量(Distance-Vector Protocol)
RIP(公用)、IGRP(淘汰)、EIGRP(私有)、BGP(高级距离矢量)
传递的是路由信息,去往目的地的路由是通过口口相传
链路状态协议(Link-State Protocol)
OSPF、ISIS
传递的是链路状态,最终拼成地图,去往目的地的路由是自行计算而出
根据工作范围
IGP(Interior Gateway Protocol)在一个自治系统内部运行。范围较小
RIP、OSPF、ISIS
EGP(Exterior Gateway Protocol)运行于不同自治系统之间。
BGP
四、静态路由的一些有意思的用法
递归路由
Q:RTA的G0/0/0断开,那么RTA的路由表中还剩下几条路由?配置文件中有几条?
A:
Q:RTB的G0/0/1断开,那么RTA的路由表中还剩下几条路由?配置文件中有几条?
A:
等价路由
由于是相同的网络号+掩码
第一轮海选:来源相同(均为静态路由),优先级为60
第二轮海选:比较cost(也相同)
进入决赛阶段(进入路由表)
两条路由都匹配数据的目的IP地址
长度相同!
最终:负载分担
浮动路由
由于是相同的网络号+掩码,进入海选
第一轮海选:比较优先级,小的获胜,进入路由表。
Q:浮动路由如何浮上来的?
A:主用路由对应端口故障--->主用路由消失--->备份路由浮出水面
Q:如果故障端口恢复了,能抢占回来吗?
A:可以的
“去往汇总网段的静态路由”
CIDR是将实际的掩码小于主类掩码