RIP动态路由选择协议
routing information protocol IGP 小范围 路由器限制为15台 超过可能无法收敛
收敛概念 在一个域内 各个路由器知道各个网段的链路信息 接口 彼此学习 同步过程 称为收敛
好的路由选择协议收敛快 反之收敛慢 rip为30s 最差的路由选择协议
贝尔曼福特 DV 宣告 一个域内多个路由器的多个接口都需要宣告
所有宣告接口的直连路由,通过RIP学习到的已经加入路由表的RIP路由 被发送 路由器收到且更新 默认30s一次
RIPV1:有类路由协议 flsm 固定等长子网掩码
RIPV2:无类路由选择协议 同时支持flsm和vlsm 等长和不等长的子网掩码
RIP OVERVIEW
RIP 判断路径好坏用跳数 跳数值越少 越好 但事实并不是
如果两条路径度量值一样 都最小 则两条都加入到路由表中并行工作 负载
rip支持ecmp 等价负载均衡 rip默认最多支持4条等价路径 设置最大为16 比较管理距离 再比较度量值 将度量值最小的路径加入到路由表中
计时器默认为30s
ripv2 passive-interface 被动接口 -------宣告此接口运行rip协议 但是不发送更新报文 直连的pc端接口就不会处理无用的报文
路由汇总-----减小路由条目 且不影响转发效率 减小路由检索的时间
rip v1不支持手工汇总 v2支持手工汇总
有类 路由器 rip v1仅支持自动汇总:auto-summary 对于rip 接口发送路由条目 协议会对比路由条目的前缀和发送此条目接口的ip地址 是否在同一主类网段 原封不动的发走 ;如果不在同一个子网段 将前缀自动转换一个它所对应的主类的网段;原因是只能传递前缀不能传递掩码。
高级路由器(无类路由器) 默认自动开启自动汇总(因为不精确 可以用手工汇总替代) 所以需要关闭自动汇总 no auto-summary 以防止路由黑洞 注意路由黑洞的概念
ripv2 支持认证
认证 运行动态路由选择协议 报文中有秘钥 接受者检查判断是否合法的路由器发送的 主要是安全性的考虑
路由器的路由选择协议报文时域内合法的路由器发送的
认证分为明文和密文认证 md5散列算法 不可逆
公有协议 华为路由器仅支持明文认证 但是思科两种都支持
RIP Configuration
#router rip
#version 2
#netwrok network-number
其中的network为宣告
分为1 主类宣告 ---模糊宣告 network 后面跟主类网络号
2 精确宣告 ---针对接口宣告
举例
例1 r2后面有两个网段一个是172.16.2.0/24 另一个是 172.16.3.0/24 他们两个可以汇总成172.16.2.0/23
172.16.00000010.0 另一个是172.16.00000011.0 前23位均一致所以得出172.16.2.0/23
将汇总的网段地址 借一位 又只可以得出172.16.2.0 /24 和172.16.3.0/24这两个地址 所以是精确的地址汇总没有 问题
例2 同上如果是两个地址172.16.1.0/24 172.16.2.0/24 换成二进制为 172.16.00000001.0 和172.16.00000010.0
则前22位一致 所以掩码为22 汇总地址为172.16.0.0/22 再将此地址分子网可以得出172.16.0.0/24 172.16.1.0/24 172.16.2.0/24 172.16.3.0/24 四个不同的网段 但是本例中并没有.3 和.0的子网段 r1如果 发送.0和.3的报文会发给r2,但是r2没有此地址的子网 就会丢弃这两个网段的报文 r1并不知道 会连续不断的发 送 即形成路由黑洞
实验1
1.要求 : r4获取r5的dhcp服务器分配的IP地址 其中r1 2 3运行rip路由选择协议
2.命令
r2:
#router rip
#version 2
#no auto-summary 禁止掉路由汇总
#network 24.0.0.0 针对的是接口fa0/0
#network 12.0.0.0 针对接口serial 1/0
同理 r1 r3都设置
发送更新报文之前要先将度量值加1 然后再发走
避免路由黑洞 需要汇总的网段 二进制值需要连续才可以 需要设计网络是注意配置正确的ip网段
实验2 手工路由汇总
1.要求检测r1和r3只收到一条去往172.16.3.0 和172.16.2.0 /24这两个网段的23掩码的路由条目
让r4和r6都获取dhcp服务器分配的ip地址
2.命令
r2 fa0/0地址172.16.2.2
fa 0/1 地址172.16.3.2
宣告路由 回包 注意宣告时 将所哟接口都宣告包括 12.1.1.0
#router rip
#version 2
#network 172.16.0.0
中继dhcp报文 给r6
#int fa0/1
#ip helper-address 35.1.1.5
r4 ip address dhcp
r6 ip address dhcp
r5重新设置dhcp服务
# ip dhcp pool 3 给r6分配 3为名字
#network 172.16.3.0 255.255.255.0 必须设置
#default-router 172.16.3.2 必须设置
#dns-server 172.16.3.2 必须设置
#ip dhcp pool 2 给r4分配 2为名字
#network 172.16.2.0 255.255.255.0
#default-router 172.16.2.2
#dns-server 172.16.2.2
注意r5 r4 r6都需要指定网关
查看r4和6得到ip地址
在上面实验的基础上做手工汇总
r2#int ser1/1
#ip summary-address rip 172.16.2.0 255.255.254.0 注意掩码为23位
如果路由条目乱 需要重新收敛 需要清路由表 下面的命令
#clear ip route *
#show run int ser1/1 查看路由接口明细
例子1 修改路由的管理距离
rip协议中 修改路由条目的度量值来选择某条路由条目 用工具 偏移列表
修改管理距离 只能在本地修改
r2#access-list 10 permit 35.1.1.0 创建以个acl 允许35.1.1.0网段的路由报文经过 名称为10
#router rip 针对rip协议
#distance 119 12.1.1.1 0.0.0.0 修改来自12.1.1.1接口的路由管理距离为119 默认为120
查看效果
#so show ip route
r 35.1.1.0 【119/2】 via 12.1.1.1 serial1/1
#traceroute 35.1.1.5 到目的地所经过的路径
例子2 去掉管理距离修改
#router rip
#no distance 119 12.1.1.1 0.0.0.0 10
#end
#show run | section router rip 过滤查看rip的信息 unix命令
第二种方式增加度量值 r2到35网段使用r1到r3 可以 增加r2-r3之间的度量值加大 使用偏移列表
命令:
#router rip
#offset-list 10 in 2 serial 1/0 解释为在serial1/0接口接收到的来自名称为10的acl表明的35网段的的数据的度量值加2
特性1 优选路由
#show ip route 13.1.1.0 255.255.255.0
可以查看路由明细 其中包括两条不同的路由 存在优先选择 度量值一样 管理距离一样 那么路由器如何判断哪个用作优选的路由呢 根据路由器接口 谁先学到 谁就是优选的路由
特性2 认证 防止不可控的路由器发路由更新报文 可以在认证的路由器中设置秘钥 秘钥认证通过才接受更新的报 文
实例 明文认证 和密文认证 1分20 cisco支持明文和密文两种 华为等其他仅支持密文
1.先创建钥匙链 每个钥匙链中可以创建多个钥匙 用id表示
r1#config t
#key chain R1 钥匙链名称为r1
config--keychain-key#key 1 钥匙id设置为1
#key-string cisco 明文秘钥
r2#key chain r2
#key 1 1为key的id
#key-string cisco 为秘钥值 这里注意 秘钥一致需要满足id和值都相同
2.启用认证 在路由器的接口
r2#interface ser1/1
#ip rip authentication key-chain r2 使用哪个钥匙链
#ip rip authentication mode text 使用明文秘钥 此命令才是执行认证
#ip rip authentication mode md5 此为密文认证 使用md5函数 针对钥匙id
同时需要在链路的对端启用认证
r1#interface se1/0
#ip rip authentication key-chain r1
#ip rip authentication mode text
特性3 不宣告的网段 加入rip路由表的方式 优化方式 最后一跳
即不宣告r2的fa 0/1 和fa 0/0的两个网段 但是要求rip更新路由条目时包含172.16.0.0的这两个网段
目的是不让fa0/0和fa0/1这两个接口不发送rip路由更新报文 以节省带宽和cpu资源
方式一 重分发直连 为强行的路由引入
在上面的例子中
r2#router rip
#no network 172.16.0.0 去掉宣告的172.16的网段
R3#no network 35.0.0.0 去掉宣告的35.0.0.0的网段
此时已经不存在这两个路由条目
r2#config t
#route-map r2 permit 10 创建route-map 名称为r2
#match interface fa0/0 fa0/1 抓取这两个接口的路由
#router rip
#redistribute connected route-map r2 重分发 调用route-map r2
同理r3
#route-map r3 permit 10
#match interface fa 0/1
#router rip 进入rip进程
#redistribute connected route-map r3
注意查看接口运行的配置信息
#show run int serial 1/1
方式二 被动接口 宣告之后 设置被动接口 passive-interface
在上例中去掉重分发
r2,r3#router rip
#no redistribute connected
#network 35.0.0.0
#network 172.16.0.0
r2#network 172.16.0.0
#passive-interface fa 0/0 声明被动接口
#passive-interface fa 0/1
同理r3的设置
r3#network 35.0.0.0
#passive-interface fa 0/1
动态路由协议的特性
1.路由失效计时器 针对rip 一般为180s 路由失效的时间 多久没有被更新 会被删除
240s 路由刷新时间
a 周期性的发送路由更新报文 使其在路由表中保活的技术称为 路由追踪技术 低端
b 另一种技术称为 基于邻接关系 的路由更新技术 节约带宽 节约资源 很小的hello报文 先建立邻居 然后再传送路由更新报文 没有路由条目计时器 周期性的发送hello报文 初始为建立邻居 之后的为维护邻接关系 邻居的保活时间为15s 在此时间内发送hello报文即可 适用于高档协议
rip 路由协议只有a
2.水平分割
一个接口收到路由条目之后 此接口不能再发出收到的这条路由 避免产生环路
3.计数到无穷大
路由中毒 水平分割机制 表示此接口可以携带收到的这条路由信息 即反向的发还回去 但是度量值要设置 为不可达 将度量值设置为超过最大值极限的度量值
例子 针对rip 可以设置为度量值16 即不可达 即跳数1-15为有效 超过此范围的跳数就不可达 0为路由重分发 时使用
4.触发更新
默认30s周期发送更新
触发更新 只要路由条目有变化 不管计时器是多少 都发送更新
5.抑制计时器
6.异步更新
一组路由器 运行同一款路由选择协议的时候 不要同时发送路由更新 导致带宽 cpu资源的浪费
目的是避免网络周期性的波动 更加优化
网络的两个部分
1.控制层面
IP routing table 路由表 cam表的建立 路由条目如何获悉
路由获取 直连 静态配置 动态配置
2.数据层面
应用程序数据实际传输的层面
排错 步骤 上例中r4想与r5通信
控制层面1.r4连接的网关即r2是否有到r5的路由 如果成功则完成了一半
数据层面2.当有路由时 是否有数据层面的因素导致的问题
问题可能有数据层面的设置
a acl 访问控制列表
b 队列
c 管制/整形 QOS
d PBR 策略路由
e MPLS TE
使用工具 ping 通即可 测试端到端的双向三层联通性
控制层面
确认网关的命令
#show ip route
上例中r2有到r5的路由 如果没有
a 先看是否宣告接口 show IP protocol 注意置为被动接口时 不显示
b show run | section router rip 和show ip interface brief 组合查看
c 以上都宣告了 又能力收到 的但是路由表中没有 则表示更新没有被加表
出现的两种情况
1.认证不匹配
2.直连接口地址不在同一个子网段 收到更新报文后对比源地址的网段是否与接受接口的网段一致 默认情 况下如果不一致则丢弃
可以通过命令更改不同子网段的发送的更新报文可以加表
命令
#router-rip
#no validate-update-source 忽略报文源地址
3.宣告的接口可能被设置为被动接口
不能发送广播和组播的路由更新