路由表
路由器有一个路由表
路由器转发原理 转发依据是路由表
当一个数据包来到路由器 路由器将基于数据包中的目标ip地址 查看路由表 若表中有记录则将无条件按照路由表的指示转发。如果路由表没查到对应地址,直接将该数据包丢弃。
display ip routing-table 查看路由表
Destination/Mask Proto Pre Cost Flags NextHop Interface
目标网关 协议 优先级 下一跳 流量流出的接口
Proto - - - 协议 - - - 可以表示路由条目的类型
Direct - - - 直连路由 - - - 目标网段为直连网段的路由条目
NextHop - - - 下一跳 - - - 数据到达目标网段下一个经过的路由器的入接口的IP地址
Interface - - - 流量的出接口
pre - - - 优先级 取值范围 0-255 数值越大优先级越低 。华为设备静态的优先级 60 直连路由的优先级 0
Flags - - - 查找方式 要去的下一跳地址 显示RD 表示用了递归查找 非RD,表示没用递归查找
下一跳:下一次该哪个路由器转发称为下一跳,数据到达目标网段下一个经过路由器的入接口的ip地址。
直连路由生成条件
接口必须双up
接口必须有ip(TCP协议时,其他协议不一定)
路由器和路由器相连的链路称为骨干链路,一般不在此链路上添加其他设备
路由器获取前往未知网段的路由信息的方式
静态路由:网络管理员手工添加的路由
动态路由:所有路由器上运行相同的路由协议,之后通过路由器的沟通交流最终计算生成的路由条目
配置静态路由
格式 ip route-static 目标网段 目标网段掩码 目标网段入口(路由接口)
例:ip route-static 192.168.2.0 24 192.168.3.2 这个192.168.3.2就是路由接口的地址
路由环路: 路由a给路由b ,b给a 一直循环,一旦发生 路由器会死机。一定要避免出现。大多是人为造成。
拓展配置
1.负载均衡
当路由器访问同一目标且具有多条开销相似的路径时,可以让设备将流量拆分后延多条路径同时传输,达到叠加带宽的效果。
2.环回接口
路由器配置的虚拟接口用于虚拟实验 不受物理设备限制
创建环回接口 interface LoopBack 0(简写 int l 0) 接口范围0-1023
接口ip配置与真实接口一样 。
ping -a 源ip 目标ip 以指定的ip去ping目标ip
3.手工汇总
当路由器可以访问多个连续子网时,若均通过相同的下一跳,可以将这些网段进行汇总计算,之后仅编辑到达汇总网段的路由即可,以达到减少路由条目提高转发率的目的。(为什么提高了转发效率 因为条目变少了 在表里查找就变快了)
例
汇总网段为↓
ip route-static 192.168.0.0 22 12.0.0.1
ip route-static 172.16.0.0 22 12.0.0.2
4.路由黑洞
在汇总中 包含网络内实际不存在的网段,可能使流量有去无回,浪费链路资源,
最可怕的是路由黑洞与缺省路由相遇,它们一旦相遇 百分百出环。
根本原因是划分汇总网段不合理,划分出现奇数必会出现黑洞。
合理的子网划分和汇总可以减少路由黑洞的产生。
例 汇总 192.168.1.0 和 192.168.2.0 网段
结果 192.168.0.0 /22。这个结果不但包含 192.168.1.0/24 192.168.2.0/24
还包含192.168.0.0/24 192.168.3.0/24 。这多出来的网段就造成了链路资源的浪费。
5.缺省路由
一条不限定目标的路由,若查询本地所有路由均未匹配则将去匹配缺省路由。
例
B路由 配置一个 1.1.1.1 24 ip adddress 1.1.1.1 24
A路由表里面添加一条指向B路由 0.0.0.0 0 表示所有地址 12.0.0.2是B的入口
环路出现的原因:设置B为A的缺省路由。数据包来到A ,A查找路由表没有就发给缺省路由B,B发现是给A的,于是发给A。。。。环路就形成了。
6.空接口路由
空接口 ---- Null 0 口 ---Null0口作为出接口则将所有匹配该路由的数据包直接丢弃
路由表匹配原则:最长匹配原则,优先匹配掩码最长的,掩码最长说明范围更小,为了找一个更精确的范围,也叫精确匹配原则。
在黑洞产生的路由器上配置一条汇总网段为目标网段。指向空接口路由可以解决环路问题。
此时根据精确匹配原则,会优先匹配192.168.1.0 /24 和 192.168.2.0 /24,因为这个范围更小。如果没有就直接从Null 0 口丢弃。
7.浮动静态路由
通过修改默认优先级实现静态路由的备份效果 路线A坏了用路线B
第二条语句↑如果不设置优先级就是负载均衡。设置优先级后,作用于第一条语句的链路失效后第二条语句就会产生作用。
跟a路由语句作用相同。
测试时用 int g 0/0/0 shutdown 关闭接口0/0/0 会发现还是可以ping通。