重发布
作用:
在两种路由协议之间,或者一个协议的不同进程之间,借助ASBR(同时工作在两种协议或者协议的不同进程中)学习到两个网络的路由信息,并且通过重发布进行路由共享,最终实现全网可达。
部署条件:
- 必须存在ASBR设备
ASBR-----同时连接两种协议或者一个协议的两种进程,这样的设备同时运行在两种协议中,他会同时学习到两边的路由。
重发布的操作就是在ASBR设备上进行配置的,这里值得注意的是虽然是在ASBR设备上配置,但重发布这种技术是主要运用在两种协议或者两种进程之间的行为,是两两之间完成的。
默认情况下由于协议规则的不同,R2不会将R3上的路由信息通过RIP通告给R1,同时R2自然也不会将R1上的路由信息通过OSPF通告给R3。
- 需要关注起始种子度量值
-----路由的起始度量值,因为A协议和B协议的开销计算逻辑是不一样的,故不能直接使用原本协议本身传递路由携带的度量值。做法就是,当A协议重发布到B协议时,ASBR将不携带A协议传递过来的度量,而是通告给B协议时,由ASBR设备在路由中添加一个起始的种子度量值。—定义值
重发布的规则
A协议路由发布到B协议
在ASBR中的B协议(OSPF)上配置-----配置位置规则
一旦发布,ASBR将会把所有通过A协议学习到的路由以及在ASBR上宣告在A协议中的所有直连路由,全部发布给B协议----重发布发布内容规则
重发布的名词
重发布的方向性问题**(单向/双向**)-----注意:重发布一定两种协议之间的行为
重发布的ASBR数量问题
- 单点—只存在一个ASBR----重发布(只有一台ASBR设备)
- 双点—存在两个ASBR设备—引发一些问题 (有两台ASBR设备)
- 多点—存在多个ASBR设备
需要强调的是,重发布这种行为是具有方向的,比如说,我将RIP的路由引入OSPF中,首先配置位置是在ASBR上,其次需要进入OSPF协议,然后执行路由引入的操作,这个过程将使得ospf网络中的设备获取到达RIP网络的路由。但是此时在RIP网络中,依然不存在任何OSPF网络的路由,为了实现全网路由的可达,还需要在R2上进入RIP进程,将OSPF路由引入RIP网络中,也就是路由的双向重发布。
当然,如果只希望OSPF网络学习到RIP网络的路由,那就仅可以在OSPF进程中执行引入RIP路由。这就是路由的单向重发布。
重发布应用场景
1、动态路由协议之间的重发布
将OSPF路由重分布到RIP协议中
[r2-rip-1]import-route ospf 1
查看rip数据库表
RIP协议设计的默认种子度量值为0
OSPF协议设计的默认种子度量值为1
2、将直连路由重发布到动态路由协议
例如:将直连路由重分布到RIP协议中
[r2-rip-1]import-route direct
3、将静态路由重发布到动态路由协议
[r2-rip-1]import-route static
重发布注意事项
- 重发布不能重发布缺省路由0.0.0.0,如果想要让ASBR设备下发缺省,就只能主动下发。
若非要引入缺省,可以自动下发缺省,配置以下指令
- 重发布如果出现重复发送路由的情况,则会由ASBR选择路由表中优先级高的发布
4、将RIP协议的路由重分布到OSPF协议中
修改度量值
修改1
修改2
[r2-ospf-1]import-route rip type 1 cost 10
注意可以在重分布时修改种子度量值和类型
5、重发布直连
[r2-ospf-1]import-route direct
6、重发布静态
[r2-ospf-1]import-route static
注意在重发布过程中可以修改路由参数,但是是针对重发布本身的路由进行修改,其他路由不会更改
路由回馈
OSPF-----针对域外路由设计了一个很大的路由优先级150,为了避免路由回馈。
路由回馈问题:
- 可能选路不佳
- 可能出现环路
双点双向的重发布出现的问题
仅存1台ASBR设备,可靠性、稳定性低
-----进行以下配置
[r2]ospf 1
[r2-ospf-1]import-route rip
[r2-ospf-1]q
[r2]rip
[r2-rip-1]import-route ospf
[r3]ospf 1
[r3-ospf-1]import-route rip
[r3-ospf-1]q
[r3]rip 1
[r3-rip-1]import-route ospf
- 路由回馈
- 选路不佳(因为不同协议之间cost计算方法不一致,所以每个协议针对重分布的路由信息都会设置种子度量值,相当于抛弃原本协议自带的cost)
查看r4的路由信息表,我们发现了以下情况:
3.3.3.0/24学习到,是因为他是r3的直连网段;
3.3.3.3/32学习到,是因为r2是通过1、2类LSA学习到的,他感知到3.3.3.3是一个环回网段,是一个接口,只能配置一个ip地址后,描绘的拓扑直接把他设置一个接口,将其掩码定死为32。 - 解决办法:
-
- 进入接口将其环回接口掩码从24修改为32;
-
- 修改接口网络类型为broadcast,使其不再是环回这种特殊的接口网络类型,不会再学习32网段的路由
路由策略
技术背景
作用
- 控制路由的发送
- 控制路由的接入
- 发送或者接收时修改路由中的一些参数
如果区分或者抓取流量
数据可大概分为 控制层面流量(又称协议层面流量) 数据层面流量
- 数据层面流量:用户访问目标网段要发送数据包,数据通过路由器进行发送并到达目标网段。
- 控制层面流量:控制路由器如何访问目标网段,目标网段先将信息传递到起始网段,起始网段知道目标网段的位置后,起始网段再传递信息回去,这部分流量就称为控制层面流量,也称协议层面流量。 因为协议之间发送的数据包控制路由器如何到达目标网段。
工具一:ACL访问控制列表
更擅长抓取数据层面的流量
工具二:前缀列表
主要抓取控制层面的流量
例如:
假设网络中存在如下三个网段
172.16.0.0 24
172.16.0.0 25
172.16.0.0 26
现在,只需要抓取172.16.0.0 25网段
1、如果想利用ACL抓取
172.16.0.0
0.0.127.255 -----通配符-----0代表该位二进制不可变,1代表该位二进制可变
0.0.127.255表示:0.0表示前十六位二进制不可变 即172.16不可变
反掩码要连续,通配符更灵活 可以不连续,例如 :0.255.0.255 —172.x.0.x(x代表可变),允许0、1穿插
172.16.0.0 -----172.16.00000000.00000000
0.0.127.255-----0.0.01111111.11111111-----有0的部分是固定的,1的部分是可以随便变的。
对应到172.16.00000000.00000000-----前17位不可变,后面可变,抓出来是172.16.0.0/17的网段,抓取结果不对。
0.0.0.0 1111111-----前25位不可变,剩下的7位可变
对应到172.16.00000000.0 000000-----抓出来的网段是172.16.0.0xxxxxxx(x代表可变)-----也不对,抓取了24(24的网段从某种意义上来说也是同样特征,因为172.16.00000000.0 000000第25位是0,也抓取了172.16.0.0 24的一部分ip)、25的网段,我们只需要25的网段。
说明:ACL也存在无法抓取的场景,这种情况下就诞生了前缀列表。
路由器学习到的是网段信息,不需要关注网段的端口号、目标、语言等信息,ACL仅靠通配符只能抓取数字特征,主要满足数字特征都能抓取,在面对以上情况时,只能额外抓取一部分流量,不满足要求。
2、前缀列表
2.1 指令单词解释
ip-prefix :ip的前缀
aaa:前缀名字
permit:允许
deny:拒绝
index:目录信息
2.2 抓取指令
[r3]ip ip-prefix aaa permit 172.16.0.0 25
-----创建前缀列表aaa抓取172.16.0.0 25 网段
[r3]ip ip-prefix aaa permit 192.168.1.0 24
-----给前缀列表添加规则(必须保证前缀列表名称一致)
2.3 查看创建的指令
[r3]display ip ip-prefix ?STRING<1-169> Specify prefix-list name| Matching output<cr> Please press ENTER to execute command [r3]display ip ip-prefix
Prefix-list aaa
Permitted 0
Denied 0index: 10 permit 172.16.0.0/25
2.4 删除抓取的指令
[r3]undo ip ip-prefix aaa -----删除整个表
[r3]undo ip ip-prefix aaa index 10-----删除编号为10的命令
2.5 拓展匹配规则
[r3]ip ip-prefix aaa permit 172.16.0.0 24 less-equal 27
-----匹配网络前缀为172.16.0.X 掩码为24 25 26 27 的所有IP地址
[r3]ip ip-prefix aaa permit 172.16.0.0 24 reater-equal 27
-----匹配172.16.0.x 掩码大于等于27的网段
le32:小于32是隐含的规则
2.6 前缀列表默认规则
前缀列表默认是末尾隐含一条拒绝所有的规则,当流量没有匹配到具体的规则则默认直接拒绝,匹配规则是自上而下逐一匹配,一旦匹配上就不在向下匹配。
例如:
想要添加一条拒绝172.16.0.1 32网段的指令,但是这个网段在172.16.0.0 24范围内,且早已配置抓取该网段信息,因此添加时需要指定一个编号,这个编号应该比允许抓取网段的编号小,方便先执行拒绝指令。
2.6.1 Index作用
- 一方面方便删除
- 另一方面方便插入规则
2.7 抓取(允许)所有ip地址指令
[r3]ip ip-prefix aaa permit 0.0.0.0 0 less-equal 32 (掩码小于32)
ip ip-prefix aaa permit 0.0.0.0 0 greater-equal 0 (掩码大于0)
-----这两条规则等价,均为抓取所有IP地址的规则
-----详细步骤见HCIP调整选路最佳实验
http://t.csdnimg.cn/rRP8Q
1、偏移列表(思科的说法)
偏移列表 (思科的说法)-----只能在距离矢量路由协议中使用 RIP 和EIGRP
[r3-GigabitEthernet0/0/0]rip metricout
-----流量发出时加大开销
[r3-GigabitEthernet0/0/0]rip metricin
-----流量进入时加大开销
其多个设备离ASBR设备距离一样时,会出现默认的负载均衡的现象,例如:
目标网段时24.0.0.0/24,选择12.0.0.2,可以很快到达目的地,是一个最优路径;走下面13.0.0.2是一个次优路径。
为解决以上情况,可以调整路由选路。基本思想是:先采用某种手段抓取网段的路由信息,抓取之后,在次优路径上加大其开销值;或者在接受设备上加大开销值。
配置步骤
1.抓取流量
metriin:流量进入时加大开销
metricout :流量发出时加大开销
[r3]ip ip-prefix bbb permit 24.0.0.0 24
2.执行策略
[r3-GigabitEthernet0/0/0]rip metricout ip-prefix bbb 10 //加大流量在出接口时的开销
-----注意:偏移列表只能在接口发出metricout或者接收metricin时调用前缀列表或者ACL抓取到的流量[r1-GigabitEthernet0/0/1]rip metricin ip-prefix aa 10
偏移列表缺点
偏移列表用法单一,只能针对路由信息做修改,无法对拓扑信息的参数修改。即偏移列表只能针对距离矢量路由协议-----rip和eigrp协议;不能在链路状态型协议中(如ospf协议)使用。
2.过滤列表
filter-policy :过滤列表
注意:不可以单独调用sl和前缀列表,没有拒绝流量的能力。
本质可以理解为一个调用工具,本身是没有过滤流量的能力,必须借助低阶列表(ACL、前缀列表)本身的过滤数据能力。
配置
1.抓取流量,注意根据需求需要自行写拒绝或者允许的规则
[r1]ip ip-prefix bb deny 34.0.0.0 24
2.协议中调用过滤列表
[r1-rip-1]filter-policy ip-prefix bb import GigabitEthernet0/0/0
-----注意方向(选择 export (路由发出方向)或者import(进入接口))和接口(直接回车,所有运行了这个协议的接口都会匹配这个策略,一般是选择接口)
[r1]ip ip-prefix bb permit 0.0.0.0 0 less-equal 32
-----注意,因为前缀列表末尾隐含一条拒绝所有的规则,所以在匹配前缀列表时要注意是否需要允许剩下所以的流量
filter-policy ip-prefix bb import GigabitEthernet0/0/0实质
从R2发过来的流量(流向R1)匹配到了一条策略,写的规则是filter-policy ip-prefix bb import GigabitEthernet0/0/0,当它来到0/0/0接口时,这条策略关联的列表时bb这张列表,它发现这张前缀列表写的规则(如下图),这个接口可能接受到了很多流量,但是它一旦匹配到了34.0.0.0网段的路由,就拒绝它进入,所以不会学习r2的这条路径。
为什么还要添加[r1]ip ip-prefix bb permit 0.0.0.0 0 less-equal 32?
34.0.0.0/24网段发生了变化,去往34.0.0.0/24网段,下一跳指向了13.0.0.2,但是前缀列表默认是末尾隐含一条拒绝所有的规则,当流量没有匹配到具体的规则则默认直接拒绝,导致这个接口除了拒绝34.0.0.0/24这个网段之外,还拒绝了剩下其他的流量,不符合我们只拒绝34网段的要求。
过滤列表缺点
- 数据失去了备份
- 只能过滤路由信息但是不能过滤LSA在OSPF中使用注意场景(只能入方向调用)
路由策略与过滤列表区别
过滤列表可以在协议中直接去调用,路由策略的调用场景也不唯一,但是不能在协议中使用,在此时只学习在重发布过程中调用路由策略。
-----详细步骤见路由策略实验
http://t.csdnimg.cn/o8EGW
3. route-policy 路由策略
路由策略——route-policy 调用方法不唯一,此时在重分布过程中调用,不能在协议中使用。
因此是在ASBR上配置
配置
1.抓取流量可以使用ACL也可以使用前缀列表
[r2]acl 2000-----创建ACL 2000
[r2-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255 -----抓取192.168.1.0 /24网段
2.创建路由策略并写规则
[r2]route-policy aa deny node 10
[r2-route-policy]if-match acl 2000
3.调用
[r2-ospf-1]import-route rip route-policy aa
[r2]route-policy aa permit node 1000
-----如果想要放通所有剩下的路由信息,则直接在规则编号的末尾创建一张空表即可
没有IF-MATH就代表匹配所有IP地址,因为规则是允许
路由策略默认规则
路由策略末尾也是隐含一条拒绝所有流量的规则,当流量没有匹配到具体的规则则默认直接拒绝,匹配规则是自上而下逐一匹配,一旦匹配上就不在向下匹配
查看路由策略配置的规则
[r2]display route-policy //查看所有路由策略
[r2]display route-policy aa //查看aa的规则
分析以上命令
首先创建了一个名为aa的route-policy 路由策略,并为该规则创建了编号10,一旦匹配到了编号10的规则,就执行拒绝;那哪些流量需要被拒绝掉呢?如果匹配到了ACL 2000列表里面的流量;那acl 2000匹配到了哪些流量呢?就是抓取的192.168.1.0 0.0.0.255这个网段里面的流量
查看ospf路由(可以看到tag)
[r3]display ospf routing
注意
路由策略apply可以同时修改多个参数,一个参数修改完成需要回车,再修改下一个
重发布只能调用一张路由策略表,调用新的表会覆盖之前调用的表
例如:
1、创建新表路由策略bb
[r2]route-policy bb permit node 50
Info: New Sequence of this List.
[r2-route-policy]q
2、调用新表
[r2-ospf-1]import-route rip route-policy bb
[r2-ospf-1]display this
[V200R003C00]
#
ospf 1 import-route rip 1 route-policy bb-----aa表被覆盖area 0.0.0.0 network 23.0.0.0 0.0.0.255
#
return