目录
前置内容
BGP宣告问题
BGP自动汇总问题
BGP 的认证
BGP的聚合(汇总)
标准的BGP聚合配置
非标准的BGP聚合
路由传递干涉策略
抑制列表
Route-map
分发列表
前缀列表
BGP在MA网络中下一跳问题-ICMP重定向
查看与某个邻居收发的路由
配置
有条件打破IBGP水平分割
路由反射器
反射规则
配置
联邦
规则
配置
昨天配置了BGP实验,当时建邻的环回时24位掩码,但是在真正的工程里的,BGP建邻的掩码是32位,且运营商会拿出一个网段用来当作环回地址建邻。然后如果用环回来模拟用户网段,环回在ospf商工作类型需要修改成broadcast。
前置内容
HCIP学习--BGP1_板栗妖怪的博客-CSDN博客
BGP宣告问题
运行BGP协议设备可以宣告本地的直连用户网段
运行BGP协议的路由可以宣告本地通过IGP协议学习到的路由
下图是BGP 表,全起来的MED是度量,本来说BGP不是没有度量,但是现在有了原因是,这个要有度量的是这两条路由是2号设备ospf算出来的路由,然后2号设备宣告自己算出来的网段自己带度量。
这个度量的意义
在BGP协议中宣告本地路由表中路由条目时.将携带本地到达这些目标的IGP度量值,传递到BGP邻居处;其他AS设备便于选择离目标最近的EBGP邻居若一台BGP设备,通过IBGP邻居学习到一条路由,存在度量值:同时本地需要将这些路由传输给本地其他的EBGP邻居时,只能将度量取消,按0进行传输:导致选路参考值不优.所以建议在一个AS中若需要BGP设备宣告某条路由,那么该AS内所有运行BGP协议的设备均宣告,便于其他AS的BGP设备判断自己的EBGP邻居,那台离目标更近
注意:宣告时优选本地路由
BGP自动汇总问题
(现如今这个不存在了,设备里默认关闭)自动汇总规则与正常BGP 协议邻居共享的路由和在 BGP 协议通过 network 宣告命令产生的路由条目无关,仅针对从IGP重发布到BGP 的路由条目
BGP 中的宣告可以理解为是逐条的重发布
将IGP 重发布到 BGP,可以理解为是批量的将IGP 路由宣告到 BGP 协议
上面两种宣告有区别其起源属性不同,且单条的宣告优于整个协议的宣告
在开启了自动汇总的前提下,将整个协议宣告到BGP中将不携带子网掩码,按主类掩码进入不携带本地到达目标的度量值,度量为 0。 若关闭自动汇总,进入路由将正常携带掩码且携带度量,此时和宣告路由仅起源属性不同
在一个 AS 中建议所有运行 BGP 协议的设备均宣告相同路由,若进行将整个协议宣告到BGP中的配置,也建议所有运行 BGP 协议的设备均进行该配置
BGP 的认证
邻居间进行身份核实的方法;
[r1-bgp]peer 12.1.1.2 password cipher 密码
邻居间需要秘钥一致,传递出去的秘钥必然被加密
BGP的聚合(汇总)
标准的BGP聚合配置
先逐条宣告所有的明细路由
再在更新源路由上进行聚合配置,自动产生空接口防环路由
[r5-bgp]aggregate 100.100.0.0 22 此时聚合与所有明细条目均传递
[r5-bgp]aggregate 100.100.0.0 22 detail-suppressed 仅传递聚合条目,所有明细路由被抑制
若需要在传递聚合条目的同时,再传递部分的明细路由,,需要进行路径传递干涉策略
来举个例子来说明一下传递部分明细路由的原因
以下图作为例子
假设上面A1A2A3的路由都被汇总成A然后由上面和下面的设备发布过去,由于BGP没有负载均衡然后对面的设备会选一台设备上的路由来传递信息,假设选了A这样万一A1距离上面近A2A3下面近,这样选路就不好了,所以在汇总后上面路由添加一个宣告A1的路由明细下面添加两个A2A3的路由,这样那个汇总就会成为了一个备份
非标准的BGP聚合
不是BGP的标准汇总思路,而是利用了BGP的宣告的特征来简化了汇总配置量
宣告特征是本地路由表中任何方式产生的路由均可被BGP宣告
所以可以直接宣告一个空接口不逐条宣告明细路由,仅在更新源BGP设备上配置一条到达聚合地址的空接口防环路由(也就是配置一条去往空接口的汇总地址静态),然后将其宣告到BGP协议中
在实际工程中,由于AS之间一定存在大量的EBGP邻居关系;因此仅汇总不能做到优选路径,必须在传递聚合条目的同时,再传递部分的明细路由来进行选路控制
这个理由与上面的标准聚合的一样
路由传递干涉策略
在汇总后,BGP表中原来的被聚合的路由还在
例子
1.1.1.0/24和1.1.2.0/24被汇总成1.1.0.0/22但是1.1.1.0/24和1.1.2.0/24这两个网段还在
解决办法
[r5-bgp]aggregate 100.100.0.0 22 detail-suppressed 仅传递聚合条目,所有明细路由被抑制
s代表被抑制传输了
假设现在要抑制1.1.1.0/22的这条路由但是不抑制1.1.2.0/22这条路由,这就需要路由传递干涉策略
抑制列表
[r5]ip ip-prefix a permit 100.100.1.0 24
[r5]route-policy a permit node 10
[r5-route-policy]if-match ip-prefix a
[r5-route-policy]q
[r5]bgp 3
[r5-bgp]aggregate 100.100.0.0 22 suppress-policy a
被抑制调用时,表中允许的流量最终反而被抑制传输
只能在聚合里用
Route-map
BGP中将route-map当分发列表用
[r5]ip ip-prefix b permit 100.100.1.0 24
[r5]route-policy b deny node 10
[r5-route-policy]if-match ip-prefix b
[r5-route-policy]q
[r5]route-policy b permit node 20
[r5-route-policy]q
[r5]bgp 3
[r5-bgp]peer 4.4.4.4 route-policy b ?
export Specify export policy 控制层面的出项
import Specify import policy 控制层面的入向
[r5-bgp]peer 4.4.4.4 route-policy b export
分发列表
[r5]ip ip-prefix c deny 100.100.1.0 24
[r5]ip ip-prefix c permit 0.0.0.0 0 le 32
[r5]bgp 3
[r5-bgp]filter-policy ip-prefix c export(控制层面方向)
针对所有邻居
前缀列表
BGP协议中可以直接将前缀列表作为分发列表调用
[r5]ip ip-prefix d deny 100.100.1.0 24
[r5]ip ip-prefix d permit 0.0.0.0 0 le 32
[r5]bgp 3
[r5-bgp]peer 4.4.4.4 ip-prefix d export针对发向4.4.4.4这个邻居调用d这个策略
BGP在MA网络中下一跳问题-ICMP重定向
ICMP是默认开启,一台路由器在转发一个流量时,发现流量在本地的入口和查询完路由表的出口为同一接口时,将告知上一跳设备本地的下一跳地址;帮助上一跳设备找到最佳的下一跳地址
来个例子解释一下
以下面这副图为例子现在各个路是用物理接口建邻
假设4的环回被宣告了,先传给3,3传给2,但是现在2不优,然后在3修改下一跳,2优了,然后传给1,然后1学到了这条路由,1学到这条路由的下一跳是不是2,然后1去往4的环回的路由就是4321这条线路,这条路不是最好的看图知道134这条路才是最好的,然后BGP在MA网络中它是会直接将1去往那个网段的下一跳改成3,然后路就会变成431,这样路是不是就优秀了
然后如果用环回建邻的话并不会产生上面的情况,最后的路由路线是4321
查看与某个邻居收发的路由
配置
在BGP中仅查看某个邻居发送或接收到BGP路由
[r1]display bgp routing-table peer 10.1.1.2 received-routes
仅查看本地从邻居10.1.1.2接收到BGP路由
[r1]display bgp routing-table peer 10.1.1.2 advertised-routes
仅查看本地发送给邻居10.1.1.2的BGP路由
有条件打破IBGP水平分割
作用
可以降低配置量
条件
在打破水平分割后,网络保障无环
路由反射器
路由反射器RR 客户端 非客户端
RR作为中心,多台设备与它建立IBGP邻居关系;构成一个簇(组),组中心为RR,其他设备为客户或非客户;有且至少有一台客户
反射规则
注:不优路由不能被传递,自然也不能被反射
注:只有RR可以反射路由
RR从一个EBGP邻居处学习到的路由,可以传输给客户端、非客户端,已经本地的其他EBGP邻居;
RR从一个客户端学习到的路由,可以传递给本地其他的客户端、非客户端、其他的EBGP邻居;
RR从一个非客户端学习到的路由,可以传递给本地的其他客户端、EBGP邻居;不能传递给其他的非客户端;
配置
[r3-bgp]peer 2.2.2.2 reflect-client 邻居2.2.2.2成为R3的客户端,同时R3成为RR
联邦
将一个AS,逻辑的分为多个小AS,对外依然遵循大AS号传递规则。但小AS间为联邦内的EBGP邻居关系,可以像EBGP关系一样传递路由,但默认不对属性进行修改
如下图在AS2中分出两个逻辑AS,绿色的圈内,AS号为扩展AS号,
规则
所有操作基于小AS号进行;
AS内所有设备需要定义自己所在的大AS号
小AS间的BGP设备需要告知对端的小AS号,如果没有告知,这个设备会将这个小的AS理解为大的AS
配置
[r3]bgp 64512
[r3-bgp]router-id 3.3.3.3
[r3-bgp]confederation id 2 申明本地的大AS号
[r3-bgp]confederation peer-as 64513 告知本地直连的其他小AS号,若没有直连到其他小
AS不用配置(这个要在宣告之前配置)
[r3-bgp]peer 2.2.2.2 as-number 64512
[r3-bgp]peer 2.2.2.2 connect-interface LoopBack 0
[r3-bgp]peer 4.4.4.4 as-number 64513
[r3-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[r3-bgp]peer 4.4.4.4 ebgp-max-hop