做淘宝要用的网站吗,网站建设做网站,网站建设与管理下拉列表框,网上购物正品网站一、技术背景
在实际的组网中#xff0c;可能会遇到这样一个场景#xff1a;在一个网络中同时存在两种或者两种以上的路由协议。例如客户的网络原先是纯 Cisco 的设备#xff0c;使用 EIGRP 协议将网络的路由打通。但是后来网络扩容#xff0c;增加了一批华为的设备#…一、技术背景
在实际的组网中可能会遇到这样一个场景在一个网络中同时存在两种或者两种以上的路由协议。例如客户的网络原先是纯 Cisco 的设备使用 EIGRP 协议将网络的路由打通。但是后来网络扩容增加了一批华为的设备而华为的设备是不支持 EIGRP 的因此可能就在扩容的网络中跑一个 OSPF但是这两部分网络依然是需要路由互通的这就面临一个问题。因为这毕竟是两个不同的路由协议域在两个域的边界路由信息是相互独立和隔离的。那么如何将全网的路由打通呢这就需要用到路由重发布Route Redistribution又被称为路由重分发。
看上图R1 与 R2 之间运行 RIP 来交互路由信息R2 通过 RIP 学习到了 R1 发布过来的 192.168.1.0/24 及 2.0/24 的 RIP 路由装载进路由表并标记为 RRIP。同时 R2 与 R3 又运行 OSPF建立起 OSPF 邻接关系R2 也从 R3、通过 OSPF 学习到了两条路由192.168.3.0 及 192.168.4.0/24也装载进了路由表标记为 OOSPF 区域内部路由。
那么这样一来对于 R2 而言它自己就有了去往全网的路由但是在 R2 内部可以这么形象的理解它不会将从 RIP 学习过来的路由“变成” OSPF 路由告诉给 R3也不会将从 OSPF 学习来的路由变成 RIP 路由告诉给 R1。对于 R2 而言虽然它自己的路由表里有完整的路由信息但是就 R 和 O 的条目之间有道鸿沟无法逾越。而 R2 就也就成了 RIP 及 OSPF 域的分界点称之为 ASBRAS Boundary RoutersAS 边界路由器。
那么如何能够让 R1 学习到 OSPF 域中的路由让 R3 学习到 RIP 域中的路由呢关键点在于 R2 上通过在 R2 上部署路由重发布可以实现路由信息在不同路由选择域间的传递。 上图是初始状态。R2 同时运行两个路由协议进程RIP 及 OSPF。它通过 RIP 进程学习到 RIP 路由又通过 OSPF 进程学习到 OSPF 域内的路由但是这两个路由协议进程是完全独立的其路由信息是相互隔离的。 现在开始在 R2 上执行重发布的动作将 OSPF 的路由 “注入” 到了 RIP 路由协议进程之中如此一来 R2 就会将 192.168.3.0/24 及 192.168.4.0/24 这两条 OSPF 路由 “翻译” 成 RIP 路由然后通过 RIP 通告给 R1。R1 也就能够学习到 192.168.3.0/24 及 192.168.4.0/24 路由了。
注意重发布的执行点是在 R2 上也就是在路由域的分界点ASBR上执行的另外路由重发布是有方向的例如刚才执行完相关动作后OSPF 路由被注入到了 RIP但是 R3 还是没有 RIP 域的路由需要进一步在 R2 上将 RIP 路由重发布进 OSPF才能让 R3 学习到 192.168.1.0/24 及 192.168.2.0/24 路由。
路由重发布是一种非常重要的技术在实际的项目中时常能够见到。由于网络规模比较大为了使得整体路由的设计层次化并且适应不同业务逻辑的路由需求会在整个网络中设计多个路由协议域而为了实现路由的全网互通就需要在特定设备上部署路由重发布。另外在执行路由重发布的过程中又可以搭配工具来部署路由策略或者执行路由汇总如此一来路由重发布带来一个对路由极富弹性和想象力的操作手柄。
二、实施要点
2.1 管理距离问题 如上图所示R5 将 192.168.1.0 宣告进了 RIPR3 及 R4 都能够学习到这条路由并且装载进自己的路由表。为了让 OSPF 域能够学习到 RIP 域内的路由在 R3 及 R4 上都部署 RIP 到 OSPF 的重发布。理想中的情况是OSPF 域内的路由器能同时从 R3 及 R4 学习到注入进来的路由。但是情况却没有那么如人意。
假设在 R3 上先完成的重发布配置192.168.1.0 这条路由将被 R3 注入到 OSPF 中并被更新给 R1再由 R2 更新给 R4此刻R4 同时从 OSPF 及 RIP 都学习到了这条路由它会作何优选当然是优选 OSPF 的因为 AD 小所以它的路由表里关于 192.168.1.0 的路由是 OSPF 的下一跳 R2。这样一来对于 R4 而言它去往 192.168.1.0 网络就存在次优路径也就是说绕远路了走的是 R2-R1-R3-R5 这条路径。
并且由于 R4 路由表里没了关于 192.168.1.0 的 RIP 路由自然 RIP 向 OSPF 的重发布就失败了。因为只有当路由存在于路由表中时才能够将该路由注入到其他路由协议中。
以上就是双点路由重发布的模型中最容易出现的一个问题次优路径问题根本原因还是出在管理距离上。
几种常见的路由协议其 AD 值列举如下 解决次优路径的方法有不少例如可以在 R4 上将 OSPF 外部路由的管理距离从缺省的 110 修改为 130比 RIP 的管理距离 120 更大这样一来关于 192.168.1.0 的路由R4 一方面是从 R2 学习到类型为 OSPF 外部路由另一方面又从 RIP 学习到而此时在 R4 上 OSPF 外部路由的管理距离被修改为 130 比 RIP 要大因此 R4 优选来自 RIP 的 192.168.1.0 路由并将 RIP 路由装载到路由表次优路径问题即可解决而且一旦 192.168.1.0 的 RIP 路由出现在路由表后R4 的 RIP 到 OSPF 重发布就能够成功。
2.2 路由 feedback 路由的 feedback倒灌是一个在部署路由重发布时需要非常注意的一个现象。如上图所示R5 将 192.168.1.0 宣告进了 RIPR3 及 R4 都能够学习到这条路由并且装载进自己的路由表。如果在 R3 就 R4 上部署 RIP 到 OSPF 的双向重发布会发生什么事情呢
假设在 R3 上先完成的配置192.168.1.0 这条路由将被 R3 注入到 OSPF 中并被更新给 R1再由 R2 更新给 R4到此 R4 就出现次优路径了这个上面已经介绍过了并且由于 R4 路由表里没了关于 192.168.1.0 的 RIP 路由自然 RIP 向 OSPF 的重发布就失败了更糟糕的是由于在 R3 及 R4 上部署的是双向重发布也就是 RIP 向 OSPF 及 OSPF 向 RIP 都做了重发布这就导致 R4 上关于 192.168.1.0 的 OSPF 路由被倒灌回 RIP这就是路由 Feedback路由被灌回来了 这是有极大隐患的非常容易引发路由环路问题。
在上面这个场景中在 R3 及 R4 两个点上部署了 RIP 到 OSPF、OSPF 到 RIP 的双向路由重发布这种组网被称之为“双点双向路由重发布”。双点双向重发布的模型在不少组网中被应用这里头蕴含了许多细节和许多技巧而且稍微操作不当就容易引发次优路径或路由环路的问题。
2.3 Metric 问题 要知道每一种路由协议对路由 Metric度量值的定义是不同的OSPF 是用 cost开销来衡量一条路由的优劣RIP 是用跳数EIGRP 是用混合的各种元素那么当将一些路由从某一中路由协议重发布到另一种路由协议中这些路由的 metric 会作何变化呢
方式一是你可以在执行重发布的动作的时候手工指定重发布后的 Metric 值具体改成什么值要看实际的环境需求。
方式二是采用缺省的动作也就是在路由协议之间重发布时使用的种子度量值。所谓种子度量值指的是当将一条路由从外部路由选择协议重发布到本路由选择协议中时所使用的缺省 Metric 值。
看下表下表是 Cisco IOS 平台上的种子度量值可在路由协议进程中使用 default-metric 修改有可能的一个情况是不同网络设备厂商种子度量值有所不同
注意以上是从其他动态路由协议重发布进该路由协议时的默认 metric。而如果是重发布本地直连路由或静态路由到该路由协议情况就不是这样例如重发布直连或静态到如下路由协议时
- EIGRP 请见红茶三杯 EIGRP 笔记访问 ccietea.com【访问异常】20240717
- RIP 重发布直连如果没有设置 metric则默认 1 跳传给邻居邻居直接使用这个 1 跳作为 metric重发布静态路由默认 metric1使用 default-metric 可以修改这个默认值这条命令对重发布直连接口的 metric 无影响。
- OSPF 重发布直连接口默认 cost20重发布静态路由默认 cost20使用 default-metric 可以修改重发布静态路由以及其他路由协议的路由进 OSPF 后的默认 cost这条命令对重发布直连接口无效。
三、 配置实现
3.1 配置命令
路由重发布是有方向的将路由从 A 路由协议注入到 B 路由协议中要在 B 路由协议的进程中进行配置例如要将其他路由协议重发布到 RIP那么配置如下重发布到其他路由协议大同小异
Router (config)#router rip
Router (config-router)#redistribute ?
bgp Border Gateway Protocol (BGP)
connected Connected
eigrp Enhanced Interior Gateway Routing Protocol (EIGRP)
isis ISO IS-IS
iso-igrp IGRP for OSI networks
metric Metric for redistributed routes
mobile Mobile routes
odr On Demand stub Routes
ospf Open Shortest Path First (OSPF)
rip Routing Information Protocol (RIP)
route-map Route map reference
static Static routes3.2 配置示例
1. OSPF 与 RIP 的重发布 R1 与 R2 运行 RIPv2R2 与 R3 建立 OSPF 邻接关系。初始化情况下 R2 的路由表中有四个条目如上图所示而 R1 的路由表中只有 2 个条目也就是两个直连链路。现在在 R2 上做重发布动作将 OSPF 路由重发布到 RIP配置如下
R2 (config)# router rip
R2 (config-router)# redistribute ospf 1 metric 3上面的命令中 ospf 1 也就是指的进程 1。是 R2 用于和 R3 形成邻接关系的 OSPF 进程号。而 metric 3 则是将 OSPF 路由注入到 RIP 所形成的 RIP 路由的 metric 值。
如此一来R2 的路由表中 OSPF 路由 3.3.3.0/24以及激活 OSPF 的直连接口所在网段 192.168.23.0/24都被注入到 RIP而 R1 通过 RIP 就能够学习到这两条路由如下图示红色粗体部分。
当然这个时候 1.1.1.0 是无法访问 3.3.3.0 的因为 R3 并没有 RIP 路由选择域中的路由也就是说回程路由有问题数据通信永远要考虑来回路径所以如果要实现全网互通那么需在 R2 上将 RIP 路由注入到 OSPF
R2 (config)#router ospf 1
R2 (config-router)#redistribute rip subnets如此一来就实现了全网互通。注意当重发布路由到 OSPF 时redistribute rip subnetssubnets 关键字要加上否则只有主类路由会被注入到 OSPF 中如果不加关键字 subnets则本例中的子网路由 1.1.1.0/24 就无法被顺利的注入到 OSPF。因此在配置其他路由协议到 OSPF 的重发布时这个关键字一般都是要加上的。
2. OSPF 与 EIGRP 的重发布 初始情况同上一个实验接下去先看看将 OSPF 路由重发布进 EIGRP AS 100配置当然还是在 R2 上进行进入 R2 的 EIGRP 路由进程
R2 (config)# router eigrp 100
R2 (config-router)# redistribute ospf 1 metric 100000 100 255 1 1500注意EIGRP 的 metric 是混合型的metric 100000 100 255 1 1500 这里指定的参数从左至右依次是带宽、延迟、负载、可靠性、MTU。可根据实际需要灵活的进行设定。上述配置完成后R2 就会将路由表中 OSPF 的路由包括 3.3.3.0以及宣告进 OSPF 的直连网段 192.168.23.0/24 注入到 EIGRP 进程。这样 R1 就能够学习到这两条外部路由。
接下去是 EIGRP 到 OSPF 的重发布
R2 (config)# router ospf 1
R2 (config-router)# redistribute eigrp 100 subnets3. 重发布直连路由 在上图中R1 的 Fa1/0 口并没有在 OSPF 进程中使用 network 命令激活 OSPF。也就是说 R2 及 R3 是无法通过 OSPF 学习这个接口的直连路由。对于目前的整个 OSPF 域而言1.1.1.0/24 这条 R1 的直连路由就是域外路由整个域内并不知晓。
现在可以在 R1 上部署重发布将 R1 的直连路由注入到 OSPF 域中形成 OSPF 外部路由然后通告给域内的其他路由器。在这里要注意区分使用 network 命令激活接口与使用重发布直连将接口路由注入 OSPF 的区别。
当在 R1 上使用 OSPF 的 network 命令将 Fa1/0 接口激活 OSPF 时实际上是触发了两个事情一是这个接口会激活 OSPF 于是开始尝试发送组播的 Hello 消息去发现链路上的其他 OSPF 路由器二是这个接口会参与 OSPF 计算和操作R1 会将描述这个接口的相关信息通过 OSPF 扩散给其他的路由器以便他们能够学习到 1.1.1.0/24 的路由而且这些路由是 OSPF 内部路由。
而当在 R1 上不用 network 命令去激活 Fa1/0 口而是直接用 redistribute connected subnets 命令将直连路由注入到 OSPF情况就不一样了。一是这个接口的直连路由会被以外部路由的形式注入到 OSPF 中这将联动地产生许多细节上的不同另外这个接口并不激活 OSPF也就是说接口不会收发 HELLO 包。另一个有意思的地方是redistribute connected subnets 一旦在 R1 上被部署则 R1 上所有未被 OSPF network 命令激活 OSPF 的接口的直连路由都会被注入到 OSPF 中。
R2 (config)# router ospf 1
R2 (config-router)# redistribute connected subnets上面这条命令就是将本地所有直连路由除了已经被 network 宣告的路由注入到 OSPF 中。所有的动态路由协议都支持将直连路由重发布进路由域命令都是类似的redistribute connected。
4. 重发布静态路由 在上图所示的场景中R2 与 R3 建立 OSPF 邻接关系而 R1 可能由于不支持 OSPF 或者其他原因没有运行 OSPF。为了让 R2 能够访问 1.1.1.0/24 网络给 R2 配置了一条静态路由
R2 (config)# ip route 1.1.1.0 255.255.255.0 192.168.12.1这样 R2 确实是能够访问 1.1.1.0/24 网络了但是 R3以及整个 OSPF 域内的其他路由器依然是无法访问的总不能给所有的 OSPF 路由器们都配置一条静态路由去往 1.1.1.0/24 吧。
解决的办法很简单就是在 R2 上部署静态路由重发布。命令如下
R2 (config)# router ospf 1R2 (config-router)# redistribute static subnets上面这条命令的结果是R2 的路由表中所有的静态路由都会被注入到 OSPF 中形成 OSPF 外部路由并且通过 OSPF 动态地传递到整个 OSPF 域。
3.3 重发布的几个小问题
1. 关联出接口的静态路由 在被 network 时的问题 R2、R3 跑 RIP在 R2 上配置静态路由使用关联出接口的方式进行配置
R2 (config)# ip route 1.1.1.0 255.255.255.0 serial 0/0在 R2 上查看路由表会发现刚才配置的这条路由在路由表中的显示很诡异“directly connected” 的意思是路由器将 1.1.1.0/24 网络视为本地的直连网络这是因为它认为1.1.1.0/24 这个网络就在家门口 “Serial0/0“。
R2#show ip route
S 1.1.1.0 is directly connected, Serial0/0接下去R2 在 RIP 进程中增加如下配置
R2 (config)# router rip
R2 (config-router)# version 2
R2 (config-router)# no auto-summary
R2 (config-router)# network 192.168.23.0
R2 (config-router)# network 1.0.0.0则 R2 会将路由 1.1.1.0/24 宣告进 RIP 并将路由通告给 R3。对于 IGP 而言无论是 RIP、EIGRP 还是 OSPF要想使用关键字 network 来通告某条路由这条路由都必须是本地直连的但是这里是个特例正是因为采用出接口的方式配置的静态路由被认为是本地直连所以才能够使用 network 命令通告。当然如果将上面的静态路由修改为采用下一跳 IP 地址的方式配置例如 ip route 1.1.1.0 255.255.255.0 192.168.12.1那就不行了。
如果环境中R2 及 R3 换成 EIGRP则现象与 RIP 一样R2 会将 1.1.1.0 宣告进 EIGRP 如果换成 OSPF则无效即关联出接口的静态路由在 OSPF 中 network 该路由的网络号时并不会被宣告进 OSPF。
2. 关联出接口的静态路由 在重发布时的问题 R2、R3 跑 RIP在 R2 上配置静态路由使用关联出接口的方式进行配置
R2 (config)# ip route 1.1.1.0 255.255.255.0 serial 0/0此时在 R2 上
R2 (config)# router ripR2 (config-router)# redistribute connected结果是 R3 无法学习到 1.1.1.0/24 的路由换成 EIGRP、OSPF现象也一样R2 不会将 1.1.1.0/24 这条路由注入到动态路由协议中。
3. 只有在路由表中存在的路由才能够被重发布 在 R2 上进行双向重发布也就是配置 RIP 到 OSPF以及 OSPF 到 RIP 的重发布。则正常情况下 R1 能够学习到 3.3.3.0/24 路由、R3 能学到 1.1.1.0/24 路由。
如果在 R2 上增加一条静态路由的配置ip route 1.1.1.0 255.255.255.0 null0这个时候 R2 路由表中原有的 RIP 的 1.1.1.0 路由因为管理距离的原因会被静态路由 1.1.1.0/24 覆盖掉也就是说 R2 的路由表中关于 1.1.1.0/24 路由现在是 Static 的了。
因此 R2 在将 RIP 重发布到 OSPF 时路由 1.1.1.0/24 重发布不成功在路由表中并没有 RIP 路由 1.1.1.0/24所以 R3 无法学习到 1.1.1.0/24 的路由
同样如果 R2 增加配置ip route 3.3.3.3 255.255.255.0 null0 也是一样的道理。
重发布是看路由表的例如将 OSPF 重发布到 EIGRP那么首先目标路由必须得在路由表里有而且必须是 OSPF 的路由才能够被注入到 EIGRP。
另外这里有个小注意事项回到上面这个图R2 上部署 RIP 到 OSPF 的重发布注意 R2 左边这个接口与 R1 对接的接口的直连路由也会自动重发布到了 OSPF 中这是因为该接口是直连并且已经通过 network 的方式通告进了 RIP因此能够被自动重发布到 OSPF而无需满足上文提到的条件。 注原文所有图防盗链不能直接被 csdn 转存全部重传。
via: 路由重发布 Route Redistribution 红茶三杯新浪博客 红茶三杯 2014-09-06 10:19:34) https://blog.sina.com.cn/s/blog_5ec353710102v23a.html 路由协议的迁移 路由Redistribute —— cisco
路由协议的迁移
当网络中原有的路由协议不能再很好的满足需求的时候就需要转换为另一种路由协议这就需要进行路由协议的迁移。
路由迁移的原则
1、尽可能少的减少网络的停工时间 2、一旦在迁移过程中出了问题要能迅速回退到初始状态 3、在迁移过程中要避免出现路由黑洞和环路 在路由迁移过程中还有可能要改变原有的 IP 地址使用新的编址方案这就需要进行地址的迁移。 地址迁移过程 1、配置第二地址 2、将第二地址 network 进路由协议中 3、如果第二地址路由正常将第二地址改为第一地址
int s1/0
ip address address mask secondary // 配置辅助地址路由迁移过程
1、将原有协议的 AD 值改小 2、在现在网络上配置新的路由协议 3、将原有协议的 AD 值再改大让新协议的路由起作用 4、如果路由正常删除原有协议
router eigrp 90
distance eigrp 150 170 // 修改路由协议的管理距离注OSPF 不能用 Secondary 地址建邻居。Eigrp 能用 Secondary 地址建邻居。
路由协议的重分布
定义重分布是指连接到不同路由选择域的边界路由器在不同自主系统之间交换和通告路由选择信息的能力。 重分布原则路由必须位于路由选择表中才能被重分发 在重分发时设定种子 metric 协议 Seed Metric RIP 无限大 必须手工指定 EIGRP 无限大 也必须手工指定 OSPF 20 如果重分布进来的是 BGP 的话Metric 是 1这是个特例 IS-IS 0 BGP 携带原来的 Metric 值 R1 (config-router)#default-metric 1 // 使用此命令来设定种子 metric 值
重分布分两种
1、单向重分布 2、双向重分布
1OSPF - RIP
将其它路由协议重分布进 RIP要注意加 metric 值
R1 (config)#router rip
R1 (config-router)#redistribute ospf 110 metric 1 // 优于 default-metric 命令 也可用以下方法指定 Metric 值
R1 (config-router)#default-metric 3 // 默认 Seed Metricinfinity 无限大修改 Seed Metric3
R1 (config-router)#redistribute connected //可不加 Metric默认1重分布直连 在这个 TOP 中OSPF 自动把 13.1.1.0 重分布进 RIP
R1 (config-router)#redistribute static //可不加 Metric默认1重分布静态2RIP - OSPF
将其它路由协议重分布进 OSPF要注意加 subnets 参数
R1 (config)#router ospf 110
R1 (config-router)#redistribute rip subnets // 如不加 Subnets默认只有主类地址能被重分布
默认的 metric 值为 20也可用以下命令指定:
R1 (config-router)#default-metric 8
R1 (config-router)#redistribute rip subnets metric 10
R1 (config-router)#redistribute rip subnets metric 10 metric-type 1 // 改动 metric 类型
R1 (config-router)#redistribute connected subnets
R1 (config-router)#redistribute static subnets // 还可在后面加 router-map 来过滤路由3ISIS - EIGRP
将其它路由协议重分布进 EIGRP 时也要指定 Metric 值
R1 (config)#router eigrp 90
R1 (config-router)#default-metric 1500 100 255 1 1500
R1 (config-router)#redistribute isis (level2) metric 1500 100 255 1 1500 不加 Metric, 默认 Seed Metricinfinity BW DLY R Lo MTU
带宽 延迟 可靠性 负载 MTU
R2#show ip ei topology 3.3.3.0/24
R1 (config-router)#redistribute connected // 不加 Metric 也可根据直连接口的不同计算 Metric
R1 (config-router)#redistribute static // 不加 Metric 也可根据下一跳接口计算 Metric
・当把 ISIS 重分布进其他路由协议时运行 ISIS 的直连接口不能重分布进去这是 ISIS 本身的 BUG。只能通过重分布直连解决。4EIGRP - ISIS
R1 (config)#router isis
R1 (config-router)#redistribute eigrp 90 默认 Seed Metric0 默认以 L2 路由进入 ISIS)
R1 (config-router)#redistribute eigrp 90 metric 8
R1 (config-router)#redistribute ei 90 level-1 以 L1 的路由进入 ISIS, 不做修改的话L1 路由器就收不到外部重分布进来的路由因为默认是 L2
R1 (config-router)#redistribute ei 90 level-1-2
R3#show isis database detail/verbose经典的重分布试验
“如果一个地址不在路由表即使它存在于 OSPF 的 LSA 数据库中可能通过 distribute-list 过滤掉已节省资源路由器也不会把它重分配到其他路由选择协议。” — 摘自 《tcpip 路由 卷一》
R1# sh ip route ospf
3.0.0.0/24 is subnetted, 1 subnets
O 3.3.3.0 [110/65] via 13.1.1.3, 00:37:25, Serial1/1
R1#sh ip route eigrp
4.0.0.0/24 is subnetted, 1 subnets
D 4.4.4.0 [90/156160] via 14.1.1.4, 00:39:41, FastEthernet0/0
R1#sh ip route rip
2.0.0.0/24 is subnetted, 1 subnets
R 2.2.2.0 [120/1] via 12.1.1.2, 00:00:23, Serial1/0试验题
在 R1 上做三次重分布先将 OSPF 重分布进 EIGRP然后将 EIGRP 重分布进 RIP再将 RIP 重分布进 OSPF完成后看看能否实现全网互通。也就是说3.3.3.3 和 4.4.4.4以及 2.2.2.2 能否互相 Ping 通。 ・重分布在 Router 上将 A 协议重分布到 B 协议中
Router 上所有运行 A 协议的接口除 ISIS/ODR以及 Router 路由表中所有从 A 协议学到的路由都会被重分布到 B 协议中。
单点双向重分布时的汇总路由回馈问题
实验
1、在 R1 上将 OSPF 重分布进 EIGRP 2、在 R1 的 S1/0 接口做 EIGRP 的手动汇总汇总出一条 172.16.0.0/16 路由。这时 R2 将只收到一条汇总路由。 3、再在 R1 上将 EIGRP 重分布进 OSPF 这时你会发现R3 上除了正常收到 12.1.1.0 的路由之外还多了一条汇总路由因为在 R1 上做了汇总之后生成了一条指向 NULL0 接口的汇总路由这样在把 EIGRP 重分布进 OSPF 时把这条路由也带进去了。 双向双出口重分布 试验在 R1 和 R4 上先将 OSPF 重分布进 RIP看看网络会不会出问题每个路由器的路由表正不正常。 再在 R1 和 R4 上将 RIP 重分布进 OSPF看看有没有问题。 通过试验我们总结出 ・做双点双向重分布时把 AD 值低的路由协议重分布进 AD 值高的路由协议没啥问题。 ・当把 AD 高的协议重分布到 AD 低的协议中时就有可能出现问题。
解决方法
1、不好的方法 – 改所有路由的 AD
R1 (config)#router ospf 110
R1 (config-router)#distance 171 将此协议的路由的 AD 改为 171对本协议所有路由都有效改动范围太大通常不建议这样做而且是有问题的。2、好的方法 – 缩小范围
R1 (config-router)#distance 171 4.4.4.4在 OSPF 中这是 RID 0.0.0.0 只将路由器 4.4.4.4 通告的 OSPF 路由 AD 改为 1713、最好的方法 – 进一步缩小范围
R1 (config)#access-list 2 permit 2.2.2.0
R1 (config-router)#distance 171 4.4.4.4 0.0.0.0 2 只针对 4.4.4.4 通告的 2.2.2.0 路由将 AD 改为 171对 4.4.4.4 通告的其它路由 AD 不变
R1 (config-router)#distance 171 0.0.0.0 255.255.255.255 2 g上面这条命令针对所有路由器通告的指定路由来改 AD在这一定要注意通告路由器的概念在 OSPF 中和 EIGRP 中通告的路由器的区别要注意所要更改的路由是由哪一个路由器通告的。
4、还可以通过为 OSPF 设置外部路由的管理距离来解决只要将外部路由的管理距离增大到超过重分布进来的协议的 AD 就可以了
R4 (config-router)#distance ospf external 99 inter-area 88 intra-area 77在 EIGRP 中的修改
R4 (config)#router eigrp 90
R4 (config-router)#distance 109 24.1.1.2 0.0.0.0 (只对 D 路由有效对 D EX 路由无效因为 EX 路由是边界路由器通告的)
(Next-hop)(Wildcard)
R4 (config)#access-list 2 permit 1.1.1.0
R4 (config-router)#distance 109 24.1.1.2 0.0.0.0 2 只针对 1.1.1.0 路由将 AD 改为 109, 只对 D 路由有效
R4 (config-router)#distance eigrp 89 169
(internal)(external)访问列表的分类
1、标准访问列表
只能基于源 IP 地址来进行分类 可以使用列表号1-99、1300-1999 标准的访问列表通常要求放置在靠近目标的地方
2、扩展访问列表
可以根据源 IP 地址、目的 IP 地址、源端口号、目的端口号协议来进行分类 可以使用列表号100-199、2000-2699 扩展访问列表通常要求放置在靠近源的地方
3、命名的访问列表
只是将标准访问列表或扩展访问列表取个名字 优点可以对访问列表进行增加、删除操作。
访问列表的比较规则
1、如果一个访问列表有多行语句通常按顺序从第一条开始比较然后再往下一条条比较。 2、一个数据包如果与访问列表的一行匹配则按规定进行操作不再进行后续的比较。 3、在每个访问列表的最后一行是隐含的 deny any 语句 – 意味着如果数据包与所有行都不配的话将被丢弃。
访问列表的配置规则
1、你在访问列表中可以写多条比较语句它们是按你输入的顺序来进行放置的。 2、在标准访问列表扩展访问列表中你不能单独删除其中的一行只能删除整个列表。 3、每个列表应当至少有一个 permit 语句否则将拒绝所有流量。 4、访问列表可以用在接口的出方向也可以用在入方向但是要注意在一个接口在一个方向上只能有一个访问列表。 5、访问列表可以过滤通过路由器的流量对自已产生的流量不起作用。 6、将标准访问列表要尽可能放置在靠近目的地址的地方 7、将扩展访问列表要尽量放置在靠近源地址的地方
ACL 的运算符
1、eq 等于 2、neq 不等于 o3、gt 大于 4、lt 小于 5、range 范围
重点ACL 本身只是一个用来匹配的工具它具体是过滤数据包还是路由是由调用它的工具来决定的。
举例
1、在路由器上允许来自 172.16.1.0 网段的流量通过
access-list 1 permit 172.16.1.0 0.0.0.2552、允许来自于 172.16.1.0 网段的流量去访问 192.168.1.0 网段
access-list 100 permit ip 172.16.1.0 0.0.0.255 192.168.1.0 0.0.0.2553、拒绝来自于 172.16.1.0 网段的流量通过允许其它任意的流量通过
access-list 1 deny 172.16.1.0 0.0.0.255
access-list 1 permit any4、允许 172.16.1.1 telnet 192.168.1.1 的流量通过其它拒绝
access-list 1 permit tcp host 172.16.1.1 host 192.168.1.1 eq telnet5、抓出 172.16.1.0 的路由
access-list 1 permit 172.16.1.0 0.0.0.06、用一条 ACL 抓出 172.16.0.0、172.16.1.0、172.16.2.0、172.16.3.0 四个子网
access-list 1 permit 172.16.0.0 0.0.3.07、用一条语句抓出 172.16.0.0—172.16.255.0/24 之间所有子网号为奇数的路由
access-list 1 permit 172.16.1.0 0.0.254.08、用一条语句抓出前两个字节为 172.16.0.0、掩码为 255.255.255.0 的所有路由
access-list 100 permit ip 172.16.0.0 0.0.255.255 host 255.255.255.0注意 用 ACL 抓掩码只能用在 route-map 中在分布列表中无效。
9、阻止外部发起的 TCP 会话但允许内部发起的连接到外部的 TCP 会话。
access-list 100 permit tcp any any establishedestablished – 允许 ACK/RST1 的 TCP 报文通过通常用于只允许内部的主机向外部发起 TCP 连接不允许外部的主机向本网发起 TCP 连接
时间访问列表
使用基于时间的访问列表可以根据一天中的不同时间或者一周中的某天或者两者结合来控制对网络资源的访问。 第一步定义时间段名字
R1 (config)#time-range NP 定义一个名字第二步定义时间段 设定绝对时间
R1 (config-time-range)#absolute start 8:00 1 jan 2008 end 15:00 2 feb 2008 设定周期时间
R1 (config-time-range)#periodic sunday 12:00 to 23:00 // 只在星期日上午允许
R1 (config-time-range)#periodic daily 8:00 to 12:00 // 一周中每天上午允许几个主要周期时间参数
Daily-- 从星期一到星期日 Weekday-- 从星期一到星期五 Weekend-- 从星期六到星期日
注意 一个 time-range 下只能有一个 absolute 语句但可以有多条 periodic 语句如果在一个 time-range 下即有 absolute 语句又有 periodic 语句则先匹配 absolute 语句。
第三步调用
access-list 100 permit ip any any time-range NP 例为 ACL 定义一个时间范围在 2008 年 1 月 1 日到 2008 年 12 月 31 日之间的每个周末起作用
time-range NP
absolute start 8:00 1 jan 2008 end 24:00 31 dec 2008
periodic weekends 8:00 to 24:00自反访问列表
自反访问列表在路由器的接口下创建 IP 流量的动态开启放行 ACL 条目这些开启表项的创建是基于源于设备的可信方的会话进行的在自反访问列表中的每个语句当语句中的条件得到满足时就会在已存在的访问表中创建一个镜像表项。 简单来讲自反访问列表能在路由器接口上根据出去的流量来自动放行返回的流量。
临时表项的特点
1、表项总是一个 permit 表项 2、表项所指定的协议与原来向外报文的协议相同 3、新的表项互换了源目 IP 地址 4、新的表项互换了源目端口号 5、表项会一直存在直到会话结束TCP或者 time-out 值到时UDP才会被删除 6、当会话的最后一个报文流过接口时表项就到期。对 TCP 而言
注意自反访问列表只能和命名的扩展访问列表结合使用。
例如下图所示在路由器上做配置要求外部网络不能访问内部网络但是内部的主机 172.16.1.1 能够 telnet 到外部网络也能访问外部网络的 www 服务。
ip access-list extended IN-FLOW
evaluate WOLF
int s1/0
ip access-group IN-FLOW in
ip access-list extended OUT-FLOW
permit tcp host 172.16.1.1 any eq telnet reflect WOLF
int s1/0
ip access-group OUT-FLOW out
permit tcp host 172.16.1.1 any eq www reflect WOLF timeout 180 // 还可以指定有效时间
ip reflexive-list timeout 300
Distribute-List用来过滤路由分布列表通过调用 ACL 来对路由进行过滤可以在一个单独的路由区域内过滤也可在路由协议之间做重分布的时候进行过滤。
注意 分布列表只能用于距离矢量协议在链路状态协议中是没有意义的。
例一
R1 (config)#access-list 2 permit 2.2.2.0
R1 (config-router)#distribute-list 2 in serial 0 只允许 2.2.2.0 路由从 S0 进例二
R1 (config)#access-list 2 deny 2.2.2.0
R1 (config)#access-list 2 permit any
R1 (config-router)#distribute-list 2 out serial 1 不允许 2.2.2.0 路由从 S1 接口出去例三协议间重分布时过滤
R1 (config)#access-list 1 permit 2.2.2.0
R1 (config)#router ospf 110
R1 (config-router)#distribute-list 1 out eigrp 90注意 当在重分布时进行过滤仅允许使用关键字 out后面可以跟上协议名但不能跟接口因为无意义详见卷一 496 页注意 in 后面不能跟协议只有 out 后能跟
例四在 OSPF 中使用分布列表(没啥意义)
试验 1、在 R1 上写一个访问列表
access-list 1 permit 172.16.1.12、在 R1 的 OSPF 进程下调用
distribute-list 1 in s13、查看 R1 和 R3 的路由表比较有啥不同
总结实际上并不能对 LSA 进行过滤只能对自已的路由条目进行过滤。
Prefix-List前缀列表 和 ACL 类似的东东设计用于专抓路由的工具不仅可以匹配网络号还可以匹配掩码
R4 (config)#ip prefix-list 2用名字也行 permit 2.2.2.0/24
R4 (config-router)#distribute-list prefix 2 in serial 1例一
ip prefix-list 2 permit 2.2.2.0/24 //匹配前 24 位2.2.2.* 掩码必须为 24 位例二
ip prefix-list 2 permit 2.2.2.0/24 ge 25 le 30 //匹配前 24 位2.2.2.* 掩码必须为 25-30 位例三
ip prefix-list 2 permit 2.2.2.0/24 le 32 //匹配前 24 位2.2.2.* 掩码必须为 24-32 位例四 ip prefix-list 2 permit 2.2.2.0/24 ge 26 //匹配前 24 位2.2.2.* 掩码必须为 26-32 位
例五
ip prefix-list 3 permit 0.0.0.0/0 le 32 //匹配所有不能像 access-list 哪样用 any 参数ge 必须大于前面的数字小或等于 le ,lenge-valuele-value sh ip prefix-list 用于查看 用前缀列表过滤 A、B、C 类路由
A 类路由ip prefix-list 1 permit 0.0.0.0/1 le 32 B 类路由ip prefix-list 1 permit 128.0.0.0/2 le 32 C 类路由ip prefix-list 1 permit 192.0.0.0/3 le 32
利用前缀列表过滤 OSPF
要求在如上图所示的拓朴中在 R1 上利用前缀列表做过滤不要向 AREA0 区域传递 172.16.1.1 的路由。 R1
ip prefix-list 1 seq 5 deny 172.16.1.1/32
ip prefix-list 1 seq 10 permit 0.0.0.0/0 le 32
router ospf 110
area 1 filter-list prefix 1 outRoute-Map 也叫路由图或者路由映射表是对路由进行加工处理的工具。
1、route-map 可以调用 ACL 或 prefix 抓出一部分路由进行加工处理 2、每一个 route-map 可以有多条语句每条语句都有一个序号 3、每条语句都有两种动作match 和 set 4、每条语句对抓出来的路由都有两种处理方式permit 或 deny
route-map 的使用分三步操作
1、定义 ACL 或 prefix 抓出路由 2、定义 route-map 说明对匹配的路由所采取的处理方式 3、调用 route-map route-map 的匹配逻辑 route-map NAME permit 10 match ip address x y z ------- OR match ip address a match ip address b AND match ip address c ↓ 如不写 match/set, 默认 match any set nothing
例一
要求在 R1 上将 EIGRP 重分布进 OSPF其中 172.16.1.0 路由要以 OE1 重分布172.16.2.0 路由重分布时 metric 值要改为 100172.16.3.0 的路由不允许重分布其它路由不改动默认重分布。
R1 (config)#access-list 1 permit 172.16.1.0 0.0.0.0
R1 (config)#access-list 2 permit 172.16.2.0 0.0.0.0
R1 (config)#access-list 3 permit 172.16.3.0 0.0.0.0
R1 (config)#route-map WOLF permit 10
R1 (config-route-map)#match ip address 1
R1 (config-route-map)#set metric-type type-1
R1 (config)#route-map WOLF permit 20
R1 (config-route-map)#match ip address 2
R1 (config-route-map)#set metric 100
R1 (config)#route-map WOLF deny 30
R1 (config-route-map)#match ip address 3
R1 (config)#route-map WOLF permit 40
R1 (config-route-map)#exit
R1 (config)#router ospf 110
R1 (config-router)#redistribute eigrp 90 subnets route-map WOLF // 调用 route-map注意 ・在 route-map 的最后隐含了一条 deny any 的语句 ・如果不写一句空 Route-map 去允许其它路由通过则没有匹配的路由直接被丢弃。
例二match 接口
还可以在重分布直连的时候 match 一个接口直接写 route-map 就可以不用定义访问列表。
R1 (config)#route-map WOLF permit 10
R1 (config-route-map)#match interface e0例三使用 route-map 打 tag
作用可以对一些路由打上 tag好让后面的路由器根据 tag 找出这些路由并进行相应的策略 如上图所示要求 1、在 R3 上将 RIP 重分布进 OSPF 2、在 R1 上将 OSPF 重分布进 EIGRP但不能将从 RIP 学到的路由带过去 可以用 tag 解决 1、在 R3 上将 RIP 重分布进 OSPF 时利用 route-map 打上 tag 标记 2、在 R1 上将 OSPF 重分布进 EIGRP 时找出打了 tag 标记的路由再 deny 掉就行了
R3 (config)#route-map WOLF permit 10
R3 (config-route-map)#set tag 20
R3 (config)#router ospf 110
R3 (config-router)#redistribute rip subnets route-map WOLF到了 R1 之后对打 tag 的路由丢弃
R1 (config)#route-map CCNP deny 10
R1 (config-route-map)#match tag 20
R1 (config)#route-map CCNP permit 20 // 一定要写一条空语句放行其它的路由
R1 (config-route-map)#exit
R1 (config)#router eigrp 90
R1 (config-router)#redistribute ospf 110 metric 1500 100 255 1 1500 route-map CCNP
Policy-Based RoutingPBR 就是使用 route-map 这一工具对某个接口进来的数据流做一些策略符合条件的按相应的策略进行路由不符合条件的按正常情况进行转发。
PBR 的规则
・PBR allows for source-based routing. ・PBR 优于路由表 ----- 如果路由器上设置了 PBR当数据包到达路由器时是先匹配 PBR如果匹配上了直接按 PBR 进行转发如果没匹配上再去找路由表进行转发所以说 PBR 覆盖了正常的路由选择进程。 ・PBR 中不匹配的数据包不会 DENY丢弃而是 normal forwarding (正常转发)
注意 Applied to incoming packets PBR 只针对于入项接口
例一
第一步
R1 (config)#access-list 1 permit 1.1.1.0 0.0.0.255
R1 (config)#access-list 2 permit 2.2.2.0 0.0.0.255第二步
R1 (config)#route-map WOLF permit 10
R1 (config-route-map)#match ip address 1
R1 (config-route-map)#set ip next-hop 12.1.1.2 发给与本机直连的下一跳路由器
R1 (config)#route-map WOLF permit 20
R1 (config-route-map)#match ip address 2
R1 (config-route-map)#set ip next-hop 13.1.1.3 第三步
R1 (config)#int e0/0 (入口调用策略
R1 (config-if)#ip policy route-map WOLFPBR 其它用途
R1 (config)#route-map PBR per 10
R1 (config-route-map)#match ip address 9
R1 (config-route-map)#set ip precedence 2 对数据分组设置优先级
R3#debug ip policy 本地策略路由 ・PBR 默认对本地产生的数据流量不起效。也就是对自已产生的包不执行策略。
R3 (config)#ip local policy route-map PBR 使 PBR 对本地数据流量有效加上这一条命令才会对自已产生的包也做策略 代老师 信任源路由 不能忘本 RIP 120 -- OSPF 110 ,R1 不会 刷掉 RIP 路由。》因为 信任路由源。 重分布的内容 学习来的路由 宣告的直连的路由 重分布进 RIP 时要注意 METRIC 的问题 ROUTER RIP redistribute eigrp 100 metric 6 default-metric 3 redistribule connected 不需要指定 metric 默认为 1 redistribule static 不需要指定 metric 默认为 1 default-metric 会影响重分布静态的 metric default-metric 不影响重分布直连的 metric 重分布进 EIGRP 时要注意的问题
ROUTE EIGRP 100
redistribute rip metric 1544 2000 255 1 1500
default-metric 1000 2000 255 1 1500redistribute connected 不需要指定 metric , 不调用 default-metric 计算 metric 时 带宽延时参照相应直连接口。 redistribute static 不需要指定 metric , default-metric 会影响到重分布静态。不指定 default-metric , 按静态路由出接口的 带宽、延时计算。 重分布 OSPF ROUTE OSPF 100 redistribute RIP SUBNET 如果没有 subnet , 只能有 主网 和 超网 CIDR 能进。 IP prefix-list 前缀列表 抓以类开头
ip prefix-list CLASS-A seq 5 permit 0.0.0.0/1 le 32 //ge8 le 8
ip prefix-list CLASS-B seq 5 permit 128.0.0.0/2 le 32 //ge16 le 16
ip prefix-list CLASS-C seq 5 permit 192.0.0.0/3 le 32 //ge24 le 24/x 固定前缀 x ge le /5 ge 8 le 20 抓 前面 5 个数固定不变的 掩码为 /8 到 /20 的 路由. 注本文只从 51cto 找到有一张图片的一段补上一张图其他大量转载有文无图原始出处已无处可寻其他缺失的图无从补全。 via: Redistribute-CSDN博客 ghv587 于 2016-06-27 10:51:33 发布 https://blog.csdn.net/ghv587/article/details/51767011