设为首页收藏本站language 语言切换
查看: 2485|回复: 3
收起左侧

[分享] BGD

[复制链接]
发表于 2022-9-16 16:07:53 | 显示全部楼层 |阅读模式
为了满足大规模路由的需求,需要通过BGP(Border Gateway Protocol)在AS之间传递数量庞大的IPv4、v6路由,并且通过各种策略进行路径的选取,控制等;此外,为了满足MPLS VPN的业务,在AS内及AS间需要MP-BGP。针对上述需求,本章节将介绍BGP原理以及BGP对IPv6的扩展特性—BGP4+。


动态路由协议可以按照工作范围分为IGP以及EGP。IGP工作在同一个AS内,主要用来发现和计算路由,为AS内提供路由信息的交换;而EGP工作在AS与AS之间,在AS间提供无环路的路由信息交换,BGP则是EGP的一种。

自治系统(AS):由同一个技术管理机构管理、使用统一选路策略的一些路由器的集合。
自治系统内部的路由协议——IGP
自治系统之间的路由协议——EGP

BGP是外部路由协议,用来在AS之间传递路由信息
是一种增强的距离矢量路由协议
可靠的路由更新机制
丰富的Metric度量方法
从设计上避免了环路的发生
为路由附带属性信息
支持CIDR(无类别域间选路)
丰富的路由过滤和路由策略
BGP特征
BGP是外部路由协议,用来在AS之间传递路由信息
是一种增强的距离矢量路由协议
可靠的路由更新机制
丰富的Metric度量方法
从设计上避免了环路的发生
为路由附带属性信息
支持CIDR(无类别域间选路)
丰富的路由过滤和路由策略

BGP 的AS 配置方法
1、 1-65535  (私有的AS号:64512-65535)
2、4个字节65536.65535  (私有的AS号:64512-65535)
bgp 65535.65535

BGP的TCP会话建立:只需要一个会话即可,源是任意 ,目标是179 ,对端 回复 源179目标any

传输协议:TCP,端口号179
无需周期性更新
路由更新:只发送增量路由
周期性发送keepAlive报文检测TCP的连通性 发60秒
老化时间 是180
BGP如果消息发送时间不一致,会协商出小的做为依据
BGP:NLRI网络可达信息,是用来更新路由消息的
     withdraw消息 ,是用来撤销路由消息的

BGP报文有五种类型:
Open:负责和对等体建立邻居关系。
KeepAlive:该消息在对等体之间周期性地发送,用以维护连接。
Update:该消息被用来在BGP对等体之间传递路由信息。
Notification:当BGP Speaker检测到错误的时候,就发送该消息给对等体。
Route-refresh:用来通知对等体自己支持路由刷新能力。

timer keepalive 10 hold 60  /修改BGP 时间  Hold time至少3倍keepalive时间
AFI:地址族标识(Address Family Identifier),占2个字节,能力所支持地址族标识信息,用以和SAFI一同确定网络层协议和IP地址间的关系,编码方式与多协议扩展中的规定相同。其值按照RFC1700中ADDRESS FAMILY NUMBERS的定义;

Res:保留位,占1个字节,发送者应将其设置为零,在接受的时候忽略;

SAFI:子地址族标识(Address Family Identifier),占1个字节,能力所支持的子地址族标识信息,用以和AFI一同确定网络层协议和IP地址间的关系,编码方式与多协议扩展中的规定相同。其值按照RFC1700中ADDRESS FAMILY NUMBERS的定义。

Capability Code为2(RFC2918)

表示支持路由刷新能力,即Route Refresh Capability。此能力的code为2,length为零,无value部分。

需要说明的是,只有在能力协商中使能了支持Route Refresh Capability,路由器才能处理REFRESH报文。我们的实现是默认情况下,支持IPv4单播能力与路由刷新能力,其他能力需要另外设定。


BGP:
通过TCP建立BGP连接时,发送OPEN消息
连接建立后,如果有路由需要发送或路由变化时,发送UPDATE消息通告对端
稳定后要定时发送KEEPALIVE消息以保持BGP连接的有效性
当本地BGP在运行中发现错误时,要发送NOTIFICATION消息通告BGP对等体
ROUTE-REFRESH消息用来通知对等体自己支持路由刷新


IP路由表 (IP-RIB)
全局路由信息库,包括所有IP路由信息。
BGP路由表 (Loc-RIB)
BGP路由信息库,包括本地BGP Speaker选择的路由信息。
邻居表
对等体邻居清单列表
Adj-RIB-In
对等体宣告给本地Speaker的未处理的路由信息库
Adj-RIB-Out
本地Speaker宣告给指定对等体的路由信息库


当从对等体接收到更新数据包时,路由器会把这些更新数据包存储到路由选择信息库(Routing Information Base, RIB)中,并指明是来自哪个对等体的(Adj-RIB-In)。这些更新数据包被输入策略引擎过滤后,路由器将会执行路径选择算法,来为每一条前缀确定最佳路径。

得出的最佳路径被存储到本地BGP RIB (Loc-RIB)中,然后被提交给本地IP路由选择表(IP-RIB),以用作安装考虑。

如果启用了多路径特性,最佳路径和所有等值路径都将被提交给IP-RIB考虑。

除了从对等体接收来的最佳路径外,Loc-RIB也会包含当前路由器注入的(被称为本地发起的路由),并被选择为最佳路径的BGP前缀。Loc-RIB中的内容在被通告给其他对等体之前,必须通过输出策略引擎。只有那些成功通过输出策略引擎的路由,才会被安装到输出RIB (Adj-RIB-Out)中。
连接建立时,BGP Speaker只把本身用的最优路由通告给对等体
多条路径时,BGP Speaker只选最优的路由放入路由表

什么叫黑洞路由
解决方法
1、 使用静态路由 缺点:工作量大,
2、 将BGP路由引入IGP,但是路由表过大,会影响设备性能
3、Full Mesh,全互联  缺点:邻居过多,难维护
4、路由反射器,是解决IBGP的水平分割问题,可以解决路由黑洞
5、联盟解决了IBGP的水平分割问题,从而解决路由黑洞
6、MPLS解决方案

公认属性是所有BGP路由器都必须识别的属性
公认必遵 (Well-known mandatory)
所有BGP路由器都可以识别,且必须存在于Update消息中。如果缺少这种属性,路由信息就会出错
公认任意 (Well-known discretionary)
所有BGP路由器都可以识别,但不要求必须存在于Update消息中,可以根据具体情况来决定是否添加到Update消息中

可选属性不需要都被BGP路由器所识别
可选过渡 (Optional transitive)
BGP路由器可以选择是否在Update消息中携带这种属性。接收的路由器如果不识别这种属性,可以转发给邻居路由器,邻居路由器可能会识别并使用到这种属性
可选非过渡 (Optional non-transitive)
BGP路由器可以选择是否在Update消息中携带这种属性。在整个路由发布的路径上,如果部分路由器不能识别这种属性,可能会导致该属性无法发挥效用。因此接收的路由器如果不识别这种属性,将丢弃这种属性,不必再转发给邻居路由器
以下列出几种常用的属性:
游客,如果您要查看本帖隐藏内容请回复


Origin:起点属性。定义路由信息的来源,标记一条路由是怎样成为BGP路由的。
As_PATH:AS路径属性。是路由经过的AS的序列,即列出此路由在传递过程中经过了哪些AS。它可以防止路由循环,并用于路由的过滤和选择。
Next hop:下一跳属性。包含到达更新消息所列网络的下一跳边界路由器的IP地址。
MED属性:当某个AS有多个入口时,可以用MED属性来帮助其外部的AS选择一个较好的入口路径。一条路由的MED值越小,其优先级越高。
Local-Preference:本地优先级属性。用于在AS内优选到达某一目的地的路由。反映了BGP Speaker对每条BGP路由的偏好程度。属性值越大越优。
Community:团体属性。团体属性标识了一组具有相同特征的路由信息,与它所在的IP子网或自治系统无关。


该属性定义了BGP路径信息源头,实际上也就是BGP speaker产生BGP路由的方式,有如下三个值:
IGP:在BGP路由表中(用display bgp routing-table查看)将会看到“i”的标识。通过network命令宣告的路由,起点属性为IGP,此种方式也称为BGP信息的半动态注入。 network命令所宣告的网络来自于IGP协议(包括静态路由),这些路由是有选择性的通过network命令转换为BGP路由,所以称为“半动态”。
EGP:在BGP路由表中将会看到“E”的标识,通过EGP转化(import)的BGP路由将具备此属性,这个属性我们在现实网络中将很难遇到,因为EGP这个协议基本上已经退出了历史舞台。
Incomplete:在BGP路由表中将会有一个“?”标识,具备这种属性的路由是通过一些别的方式学到的,属于未知的不明确的状态。一般来说,是通过将IGP或者静态路由引入(import)以后产生的。因为无条件的把IGP信息引入到BGP可能会造成副作用——不要的或者错误的信息会泄露(leak)进BGP中,比如IGP中可能会包含很多仅仅用于AS内部的专用地址或者未经注册的地址。除此以外,这样做还有可能造成BGP的动荡(因为BGP的路由依赖于IGP路由),对此问题BGP提供了一个解决方案,路由衰减(ROUTE DAMPENING),此处我们将不再讨论。
        在这种情况下,我们必须要施加特殊的过滤,以确定哪些特定的网络可以从IGP注入到BGP中。对于能区分开内部和外部路由的协议,比如OSPF,我们可以通过配置来保证仅仅将内部路由注入到BGP中(VRP5中默认情况只会引入OSPF内部路由,并不会引入OSPF外部路由到BGP中);BGP的路由还可以通过引入静态路由并下发,这样做可以提高路由的稳定性。
起点属性三个值的优先顺序为IGP>EGP>INCOMPLETE,这三个值对于BGP的选路起着控制作用。


该属性为公认必遵属性,是前往目标网络的路由经过的AS号列表;
作用:确保路由在EBGP对等体之间传递无环;另外也作为路由优选的衡量标准之一;
路由在被通告给EBGP对等体时,路由器会在该路由的AS_Path中追加上本地的AS号;路由被通告给IBGP对等体时,AS_Path不会发生改变。


route-policy AS permit node 10
apply as-path none overwrite
#
route-policy AS permit node 20


路由聚合解决了两类问题,一是减轻了设备的负担,二是隐藏了明细的路由信息,减少了路由震荡的影响。但是路由聚合后,AS_Path属性丢失,存在产生环路的风险,为此可以通过AS_SET类型的AS_Path属性携带聚合前的AS路径信息。
当发生路由聚合后,如果需要聚合路由携带所有明细路由中AS_Path属性携带的AS号防止环路,则在配置聚合的命令中增加as-set参数。
在AS_SET的示例中AS 300内发生了路由聚合并配置了as-set参数,则聚合路由会将明细路由的AS_Path信息用一个AS-Set集表示(放在中括号{}里的AS号信息,该集合内的AS号没有先后顺序),在聚合路由中携带用以防止环路。
除了AS_SET、AS_AS_SEQENCE之外,AS_Path还存在另外两种类型:AS_Confed_Sequence、AS_Confed_Set,这两种类型应用于BGP联邦中,本课程不涉及。


[AR2-bgp]aggregate 192.0.0.0 255.0.0.0 as-set   detian-suppress
鸿鹄企微.jpeg
扫码加v了解详情

发表于 2022-9-22 14:59:03 | 显示全部楼层
非常好,谢谢了!!!
板凳 2022-9-22 14:59:03 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-3 00:59 , Processed in 0.075376 second(s), 14 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表