bgp笔记

一、BGP定义

BGP全称为边界网关路由协议,它是一种外部网关路由协议,用于在AS之间传递路由信息,工作在应用层,在传输层采用TCP协议,协议号为179,是可靠的路由协议。

二、BGP特点

1、是基于策略的路由协议,着重于控制路由的传递和选择最优路由

2、从设计上避免了环路:

(1)AS之间:BGP路由携带as-path属性,路由器收到带有自身AS号的路由将直接丢弃

(2)AS内部:水平分割(从IBGP邻居学到的路由不会再发给IBGP邻居)

3、提供了丰富的路由策略和过滤策略,能够灵活对路由进行选择和过滤

4、是增强的距离矢量路由协议,发布路由时,只发布更新的路由

三、BGP报文

1、Open报文--负责和对等体之间建立邻居关系;open报文内容有BGP版本、AS号、router-id、认证信息、计时器信息等。

2、keepalive报文--用于维护BGP邻居关系,默认保持时间为60秒,老化时间为180秒。

3、Update报文--用于在对等体之间交换路由信息,包括可达路由信息,撤销路由信息及各种路由属性。

4、notification报文--当检查到错误时就会发送该报文给邻居。

5、Router-refresh报文--该报文用于指定邻居重新进行路由更新。

四、BGP状态机及工作原理

1、Idle:BGP连接的第一个状态,在空闲时间,等待一个启动事件,启动事件出现以后,BGP初始化资源,复位连接重试计时器,同时发起第一个TCP连接,进入Connect状态。

2、Connect: 该状态下,BGP已启动连接重试计时器(120秒),发起第一个TCP连接,如果连接重试计时器超时,则重新发起TCP连接,如果TCP连接建立失败,就进入Active状态,如果TCP连接建立成功,就进入opensent状态。

3、Active: 该状态下BGP总是尝试不断建立TCP连接,若连接重试计时器超时(180秒),则退回到Connect状态,若TCP连接失败则停留在Active,若TCP连接成功则进入opensent状态。

4、Opensent:该状态下,TCP连接已经成功建立,也发出了第一个open报文,等待对方的open报文,如果收到对方的open报文,就会对报文进行正确性检测,若有错误,则会发出notification报文,并退回到idle状态。

5、Openconfirm: 该状态下已经收到对方的open报文,并且已发出keepalive报文,等待对方的keepalive报文,若收到对方的keepalive报文,则进入Establish状态。

6、Established:该状态下表示BGP邻居关系已经建立,BGP邻居可以通过update报文更新路由信息了。

五、工作过程

1.基于IGP(静态、直连、RIP、OSPF...)实现路由可达,原因:BGP需要建立TCP会话(单播)

2.指定对等体关系,邻居之间单播传输,通过三次握手,建立TCP会话通道。之后所有的BGP通信都将基于TCP会话通道来传输。并且依靠TCP提供传输的可靠性

3.使用OPEN报文和Keeplive报文进行邻居关系的建立。OPEN报文用来携带建邻使用的参数,keeplive报文用于OPEN报文参数的确认和BGP对等体的保活。最终完成对等体关系的建立。生成邻居表,存储BGP对等体关系信息。

4.建立邻居关系后,使用update报文来共享路由条目信息。信息中将携带目标网络号,掩码及路径属性;之后,将发送以及收集到的路由信息记录在一张表中 --- BGP表。

5.之后,会将BGP表中最优的一条路由信息(通过路径属性选择的结果)加载到路由表中。

6.收敛完成后,将使用keeplive报文进行对等体之间周期保活,默认的保活时间为180S(hold time),发送周期为60S。

7.如果这个过程中出现任何问题,都将使用notification报文进行告警。

8.如果出现结构突变(网段消失或者新增网段),则将使用update报文进行触发更新,并通告给其他的对等体。

BGP是如何确保路由传递的可靠性

BGP是应用层协议,在传输层使用TCP进行传输,使用的端口号为179利用TCP本身确保数据传输可靠性

IGP---选路 收敛速度 占用资源

六、BGP的特性

1.可控性---BGP设计了很多的路径属性去控制选路

2.可靠性---利用TCP确保BGP数据包的可靠传输

3.AS-BY-AS--BGP默认是不支持负载均衡,BGP将一个AS看作一个整体

BGP的对等体关系---BGP的邻居

IBGP对等体----一个AS内部设备建立的对等体关系,并且BGP支持非直连建邻

EBGP对等体----AS之间建立的对等体关系,建议使用直连建邻

BGP为了保证EBGP对等体之间使用直连建邻,将EBGP之间发送的数据包TTL值设置为1。IBGP内部使用非直连建邻,所以BGP将IBGP之间传递的数据包TTL值设置为255。

七、BGP和RIP的异同

RIP---距离矢量路由协议

BGP--路径矢量协议

矢量----谁传递的路由信息,接收到的设备就会把传递过来设备的源地址作为下一跳

相同点:1.BGP和RIPV2都是无类别的路由协议

不同点:

1.rip是一个路由器作为一跳,BGP是把一个AS看作一跳

2.工作逻辑的区别:RIP作为IGP协议,需要依靠算法计算路由信息,但是BGP运行在IGP的边界,本身就有该AS所有的路由信息,所以BGP实际上只需要传递这些路由信息即可

3.bgp也存在触发更新,BGP是没有周期更新的

八、BGP的路由黑洞

控制层面可达但是数据层面不可达

解决方法:

1.mpls---真正解决BGP路由黑洞问题的是MPLS

2.重发布---在AS边界设备(运行BGP也允许IGP协议)进行重发布将BGP的路由信息发布到IGP协议中(不建议使用)

3.在AS内部构建全连的BGP网络

延申---BGP设计了同步原则,默认设备是关闭的,从IBGP对等体处学的一条BGP路由,如果本地IGP路由表没有该网段信息,则不会转发给其他的EBGP。

九、BGP的基础配置

EBGP对等体之间采用直连建邻的方式

r1\]bgp 1--启动BGP协议1---设备本身属于的AS号,一个设备只能属于一个AS \[r1-bgp\]router-id 1.1.1.1--配置BGP-RID \[r1-bgp\]peer 12.0.0.2 as-number 2 \[r2-bgp\]display bgp peer ---查看bgp对等体邻居 建议在AS内部建立IBGP对等体使用环回建邻居:原因,可以充分利用AS内部IGP协议的冗余作用 \[r3\]bgp 2 \[r3-bgp\]router-id 3.3.3.3 \[r3-bgp\]peer 2.2.2.2 as-number 2 \[r2-bgp\]peer 3.3.3.3 connect-interface LoopBack 0------使用环回建邻必须改变更新源地址 EBGP对等体之间使用环回建邻配置,在ebgp对等体建立时采用环回建邻,必须修改ebgp数据包中的TTL值,否则默认EBGP对等体之间ttl为1,将导致数据包不可达。直接回车代表将TTL值改为255,其次可以手工指定 十、BGP的防环 EBGP的防环 AS_PATH属性----BGP设计用来传递AS间路由信息防环的属性,当一条路由信息发出本AS就会添加本地的AS号,之后路由传递如果路由信息中携带本地的AS号,那么设备将不在学习该路由信息。 IBGP的防环--- IBGP水平分割---设备从一个IBGP对等体处学到一条ibgp路由,不能传递给自身的其他IBGP对等体关系。 如何解决IBGP水平分割导致的路由信息传递问题? 1.在IBGP对等体之间构建全连的BGP对等体关系 2.反射器 3.联邦 十一、发布路由 1.network \[r1-bgp\]network 1.1.1.0 24---只要设备路由表中存在的路由信息,BGP就能发布该网段路由,并且发布的路由必须完全和路由表中一致 \[r1\]display bgp routing-table -----查看设备BGP表 \[r2-bgp\]peer 3.3.3.3 next-hop-local ---必须修改传递给其他IBGP对等体下一跳为本地接口IP地址 BGP路由的优先级很低,数值为255是协议的最大值 BGP不能发布建立对等体使用的网段 2.重发布 \[r2-bgp\]import-route ospf 1 ----利用重发布在BGP中引入AS内部的路由 ip ip-prefix aa index 10 permit 3.3.3.3 32 ip ip-prefix aa index 30 permit 23.0.0.0 24--抓取想要bgp发布的网段 创建路由策略匹配流量 \[r2-bgp\]import-route ospf 1 route-policy aa---重发布调用 十二、BGP选路原则 1、丢弃下一跳不可达路由(必要条件) 2、比较协议首选值,越大越优 3、比较本地优先级,越大越优 4、依次优选手动聚合、自动聚合、network、import的路由 5、比较as-path属性,越短越优 6、比较origin属性,IGP\>EGP\>Incomplete 7、比较MED值,越小越优 8、依次优选从EBGP、联盟EBGP、联盟IBGP、IBGP邻居学来的路由 9、优选到BGP路由IGP开销最小的路由 10、比较Cluster-list属性,越小越优 11、比较origin-id属性,越小越优 12、比较router-id属性,越小越优 13、优选从具有最小IP address邻居学来的路由 十三、BGP的路由聚合 自动聚合(设备一般是默认关闭的) 1.只能针对重发布的路由进行聚合 2.只能聚合到主类 \[r1-bgp\]summary automatic ---开启自动聚合功能 手工聚合 问题一:明细路由默认不会被抑制,就导致除了聚合网段会传递明细网段也会传递,将导致没有起到节省路由条目数量的目的 \[r1-bgp\]aggregate 172.16.0.0 22 detail-suppressed---可用通过抑制明细的指令去抑制所有的明细路由,使用抑制策略去传递聚合路由同时传递部分明细路由 \[r3\]ip ip-prefix bb permit 192.168.1.0 24 \[r3-bgp\]aggregate 192.168.0.0 22 suppress-policy bb------注意抑制列表本身具备抑制路由的能力。所有只需要告诉该列表协议抑制那些路由信息即可,但是抑制列表只能关联路由策略,所以需要利用策略去抓取流量,抓取到的路由会被抑制,剩余路由会正常传递 十四、反射器和联邦 1.反射器 1、作用 解决IBGP全互联问题,减少IBGP邻居关系数量,降低设备负担。 2.角色 路由反射器---RR--router reflecter Reflecter client--反射器客户,至少需要选择一个反射器的对等体成为客户 非 客户 反射簇---将反射器和客户之间形成的集体称为反射簇,并且用形成该反射簇的路由器RID作为反射簇的簇ID 3.反射器的反射规则 1.如果路由反射器从自身的客户处学习到一条IBGP路由,则会传递给自身的客户和非客户 2.如果路由反射器从自身的非客户处学习到一条IBGP路由,则会传递给自身的客户 3.反射器反射的路由必须是可用且优的路由 注:在一个AS内部可用存在多个反射器,一个设备可用同时属于反射器和客户(非客户) 4.反射器的防环 起源者ID originator---在一个AS内部产生这条反射路由的源设备的RID 生成规则:如果反射器反射一条路由种没有originator,则会由该设备自动生成起源者ID,如果路由中已经存在originator则只反射该路由 如果设备收到一条路由信息中携带的originator-id是自身的RID,那么将拒绝学习该路由动生成起源者ID,如果路由中已经存在originator则只反射该路由 如果设备收到一条路由信息中携带的originator-id是自身的RID,那么将拒绝学习该路由 5.簇列表 簇列表--每经过一个反射器的反射就会加入该反射器的RID到簇列表中,如果设备收到了一条路由信息中簇列表中携带自身的RID那么同样将拒绝学习该路由。 6.反射器的配置 \[r3-bgp\]peer 2.2.2.2 reflect-client---在需要配置为反射器的设备上指定客户 十五、联邦配置 EBGP使用直连建 \[r2\]bgp 64512--联邦设备统一使用联邦的AS号启动 \[r2-bgp\]confederation id 2--告知该设备宏观上属于AS2 \[r2-bgp\]peer 12.0.0.1 as-number 1 IBGP对等体的建立使用环回 \[r2-bgp\]peer 3.3.3.3 as-number 64512---指定的AS号为联邦AS号 \[r2-bgp\]peer 3.3.3.3 connect-interface LoopBack 0 联邦之间EBGP对等体建立 \[r3\]bgp 64512 \[r3-bgp\]confederation id 2 \[r3-bgp\]confederation peer-as 64513----告知设备和64513设备建立对等体 是联邦的EBGP对等体 \[r3-bgp\]peer 4.4.4.4 as-number 64513 \[r3-bgp\]peer 4.4.4.4 connect-interface l0 \[r3-bgp\]peer 4.4.4.4 ebgp-max-hop

相关推荐
小白爱电脑3 分钟前
Wireshark专家模式定位网络故障:14种TCP异常深度解剖
网络·tcp/ip·wireshark
菜菜子爱学习18 分钟前
Nginx学习笔记(二)——环境准备(VMware CentOS版)
笔记·学习·nginx·centos·运维开发
Pi_Qiu_1 小时前
Python初学者笔记第二十二期 -- (JSON数据解析)
笔记·python·json
xkroy1 小时前
javaJVM ‘
服务器
星哥说事3 小时前
腾讯云iOA:全面提升企业办公安全与效率的智能解决方案
网络·安全·腾讯云
武晓兵3 小时前
Ethernet, WiFi, Cellular, BLE, LoRa 分别解释
网络
哈基米喜欢哈哈哈4 小时前
Cookies和Sessions
网络·后端·计算机网络
wanhengidc4 小时前
云手机网速和本机网速的关系
网络·智能手机
我们从未走散5 小时前
JVM学习笔记-----图解方法执行流程
笔记·学习