BGP——边界网关协议

目录

一、BGP的概述以及优点

1.BGP概述:

2.BGP的优点

二、使用BGP的三大理由

三、BGP邻居概述

四、BGP配置命令

五、BGP邻居建立条件

六、使用回环口建立邻居

七、BGP报文和状态

1.BGP报文类型:

2.BGP状态机

八、BGP路由宣告

1.BGP数据库:

2.BGP路由宣告规则:缺省情况下,BGP不发布任何本地路由

3.BGP路由宣告方法:本地宣告和引入宣告

九、BGP下一跳

十、BGP防环机制和聚合

1.BGP防环机制

2.BGP路由聚合

十一、BGP路由属性

bgp路由属性:

各个路由属性概述:

Prefval:优选值,越大越优点

Origin:起源,BGP路由的生成方式

AS_path:AS路径,BGP路由在传输的路径中所经历的AS列表

Next_hop:下一跳=更新源

Local-preference:本地优先级

MED:Multi-Exit-DISC:相当于IGP的度量值

BGP选路原则:BGP不像IGP,本身并没有路由算法,而是结合丰富的路由属性进行选路

十二、BGP路由控制与过滤

BGP可以结合几乎所有的策略工具,并利用BGP路径属性,来影响BGP的选路

BGP路由过滤

十三、BGP团体属性(Community)

公认团体属性:

私有团体属性:自定义规则应用方法,格式:AS(2B):Number(2B)

BGP复位操作:高危操作!!

负载均衡:maximum load-balancing 2         #配置最多2个负载均衡


一、BGP的概述以及优点

1.BGP概述:

       边界网关协议(Border Gateway Protocol,BGP)是一种用来在路由选择域之间交换网络层可达性信息(Network Layer Reachability Information,NLRI)的路由选择协议。由于不同的管理机构分别控制着他们各自的路由选择域,因此,路由选择域经常被称为自治系统AS(Autonomous System)。现在的Internet是一个由多个自治系统相互连接构成的大网络,BGP作为事实上的Internet外部路由协议标准,被广泛应用于ISP(Internet Service Provider)之间。
       早期发布的三个版本分别是BGP-1、BGP-2和BGP-3,主要用于交换AS之间的可达路由信息,构建AS域间的传播路径,防止路由环路的产生,并在AS级别应用一些路由策略。当前使用的版本是BGP-4。

2.BGP的优点

①更新可靠:BGP在TCP(端口179)上运行

②仅增量式,触发式更新

③定期提供存活(keepalive)消息以验证TCP连接性

④丰富的度量标准

⑤专门为大型互联网而设计

二、使用BGP的三大理由

1.大量路由需要承载,IGP只能容纳千条,而BGP可以容纳上万条

2.支撑MPLS/VPN的应用,传递客户VPN路由

3.策略能力强,可以很好的实现路由决策与数据控制

三、BGP邻居概述

BGP邻居类型:EBGP(外部BGP邻居,不同AS号)、IBGP(内部BGP邻居,相同AS号)

1.BGP Speakers:运行BGP的路由器

2.BGP Peers=BGP Neighbors=BGP对等体

3.邻居关系建立在TCP连接基础上,因此邻居不一定需要直连,可以通过IGP或静态路由来提供

4.邻居必须手动指定,而非自动建立

5.一台BGP路由器只能运行在一个AS内

四、BGP配置命令

bgp 123                          #声明所在AS号(创建进程)
router-id 1.1.1.1                #配置RID,必须唯一
peer 12.0.0.2 as-number 123      #配置邻居IP地址和所在AS号(如果是EBGP,则是对方AS号)
display bgp peer                 #显示BGP邻居状态

五、BGP邻居建立条件

1.邻居地址可达

2.自身配置中的邻居所在AS号=邻居配置中声明所在AS号

3.数据包源IP=对方配置的邻居IP(这个源IP也叫更新源,也将作为路由的下一跳IP)

六、使用回环口建立邻居

为了增强稳定性,通常建议使用回环口建立邻居,但是在建立邻居的时候会遇到两个问题:

1.更新源:建立邻居和邻居所学习到的路由的下一跳

2.多跳:EBGP邻居建立默认需要直连,因为TTL为1,如果非直连,必须修改TTL值

peer 2.2.2.2 connect-interface lo1    #配置更新源(数据包源IP)
peer 2.2.2.2 ebgp-max-hop 2           #配置TTL=2,默认=1(在AS之间加上这条命令,两边都要配置)
peer 2.2.2.2 password cipher 123      #配置身份验证,MD5形式,在两边都要配

七、BGP报文和状态

所有报文都是单播!!

L2 HeaderIP HeaderTCP HeaderBGP Packets

FCS

1.BGP报文类型:

Open包:类似HELLO包,建立邻居关系

Keepalive包:类似HELLO包,维护邻居关系

Update包:路由更新,包含属性

Notfication包:当检测到错误,发送后关闭BGP连接

Route-Refresh包:当路由策略发生变化时,触发请求邻居重新通告路由

2.BGP状态机

Idle:初始,路由器查找路由表,是否有到达邻居的路由

Connect:发起TCP连接,等待TCP连接完成

Active:TCP连接失败,继续尝试TCP连接

Open Sent:TCP连接成功,已发送Open包

Open Confirm:已收到对方正确的Open包,如果没有收到,会进入Active状态

Established:邻居建立完成,开始传递路由

BGP活跃(Active)状态验证:路由器已经发送了一个Open包,正在等待响应

状态可能会在活跃与空闲之间不断循环。

由于以下原因,邻居可能不知道如何返回到该路由器

1.不存在指向BGP“打开”数据包源IP地址的路由

2.邻居与错误的地址建立对等体关系

3.不存在与该路由器的邻居声明

4.AS号配置错误

八、BGP路由宣告

1.BGP数据库:

类型备注
邻居表BGP邻居名单
BGP路由表列出从邻居那里获取到的所有路由及属性
IP路由表列出最佳路由
Adj-RIB-IN邻居宣告给本地的未处理的路由信息数据库
Adj-RIB-OUT本地宣告给指定邻居的路由信息库

2.BGP路由宣告规则:缺省情况下,BGP不发布任何本地路由

①只有明确宣告的网络才会发送给邻居。          # network/import

②宣告的网络必须能精确地在路由表中找到。   # 精确是指路由表中有的路由

③多条路径时,只选最优的给自己使用。

④只把自己使用的最优路由宣告给邻居。

⑤ 从EBGP学习到的路由会宣告给所有邻居。

⑥ 从IBGP学习到的路由不会宣告给IBGP。       # IBGP之间只传一跳

⑦ 从IBGP学习到的路由会宣告给EBGP。

3.BGP路由宣告方法:本地宣告和引入宣告

命令备注
network 192.168.0.0 255.255.255.0宣告路由,精确匹配且存在路由表中
import-route ospf/rip/static/connect route-policy引入路由,通常结合路由策略
default-route imported允许引入缺省路由,默认不允许
peer 2.2.2.2 default-route-advertise向邻居宣告一条缺省路由,不论本地是否存在缺省路由

九、BGP下一跳

1.BGP在给邻居传递路由时的下一跳=更新源

2.在EBGP间传递时会修改下一跳为自己的更新源

3.在IBGP间传递时不会修改下一跳为自己的更新源

命令备注
peer 2.2.2.2 next-hop-local修改下一跳为自己的更新源(在IBGP之间建议加)

十、BGP防环机制和聚合

1.BGP防环机制

AS内(IBGP):水平分割,从IBGP收到 等更新不会发布给IBGP(IBGP更新只传一跳)

所以要解决IBGP内的路由器接收不到路由的问题,主要解决方法如下:

①IBGP邻居全互联:配置,维护开销太大

②路由反射器

③联盟

AS间(EBGP):AS_path,BGP更新内的重要性,代表该路由所经过的AS号,如果接收路由器发现AS号与本地AS号一致,则丢弃

2.BGP路由聚合

①BGP静态聚合:通过配置静态路由汇总明细路由,再用network进行宣告

②BGP自动聚合:对引入的IGP路由进行主类掩码聚合

                             而原引入的路由被抑制,不会被优选和发布给BGP邻居

summary automatic:开启自动聚合,缺省关闭

③BGP手动聚合:对引入和本地路由进行聚合

                             手动聚合 > 自动聚合

aggregate 172.16.0.0 255.255.252.0   # 配置手动聚合

                 +detail-supperssed              # 抑制发布明细路由

                 +as-set                                 # 保留原有明细路由的AS_path属性

十一、BGP路由属性

bgp路由属性:

一组描述BGP路由特性的参数,在配置路由策略时被广泛使用。对于企业和运营商所关心的问题,如:如何过滤某些BGP路由?如何影响BGP的选路?通过使用BGP丰富的路由属性,就可以得到解决。

1.公认必遵:origin,AS_path,next_hop

所有BGP路由器都可以识别,且必须存在于Update消息中

2.公认任意:Local_pref,Atomic_aggregate

所有BGP路由器都可以识别,但不要求必须存在于Update消息中

3.可选过渡:Aggregator,Community

不能被所有BGP路由器识别,如果无法识别,可以传递给邻居

4.可选非过渡:Med

不能被所有BGP路由器识别,如果无法识别,则丢弃该属性

各个路由属性概述:

Prefval:优选值,越大越优点
Origin:起源,BGP路由的生成方式

            i:代表IGP,由network宣告的路由

           e:代表EGP,由EGP(已经淘汰)学到

           ?:代表incomplete,由import引入

           优先级:i>e>?

AS_path:AS路径,BGP路由在传输的路径中所经历的AS列表

               EBGP传递时更新(加入自己的AS号)

               丢弃AS_path属性中包含本AS Number的路由(防止AS间环路)

               AS数量越少越优先

Next_hop:下一跳=更新源
Local-preference:本地优先级

                            只传播给IBGP邻居(本地)

                            越大越优先,默认=100

                            常用于控制流量怎样流出AS(出站路由)

MED:Multi-Exit-DISC:相当于IGP的度量值

                                     区别到达同一邻居AS的多条入口链路

                                     越小越优先

                                     仅在相邻两个AS之间传递,收到此属性的AS不会再通告给任何其他第三方

                                     常用于控制流量怎样进入本AS(入站路由)

                                     缺省情况下,不允许比较来自不同AS邻居的路由信息的MED值,除非能够确认不同的AS采用了同样的IGP和路由选择方式,则可以用命令:compare-different-as-med

BGP选路原则:BGP不像IGP,本身并没有路由算法,而是结合丰富的路由属性进行选路

有三种情况:

1.该路由是到达目的地的唯一路由,直接优选

2.对到达同一目的地的多条路由,优选优先级最高的

3.对到达同一目的地且具有相同优先级的多条路由,则用更细的原则进行比较:13条

①丢弃下一跳不可达的路由

②优选Preference_value最高的路由(私有属性,仅本地有效)值越大越优先

③优选Local_preference最高的路由

④优选手动聚合>自动聚合>network>import>从对等体学到的

⑤优选AS_path最短的路由

⑥ 起源类型IGP>EGP>Incomplete

⑦对于来自同一AS的路由,优选MED最小的

⑧优选从EBGP学来的路由ebgp>ibgp

⑨优选AS内部IGP的Metric最小的路由

⑩优选cluster_list最短的路由

⑪ 优选orginator_ID最小的路由

⑫优选Router_ID最小的路由器发布的路由

⑬ 优选IP地址最小的邻居学来的路由

十二、BGP路由控制与过滤

BGP可以结合几乎所有的策略工具,并利用BGP路径属性,来影响BGP的选路

命令备注
peer 2.2.2.2 prefered-value 100#配置优选值,默认=0
default local-preference 200#配置本地优先级,默认=100
default med 100#配置MED,默认=0
peer 2.2.2.2 allow-as-loop 3#配置AS编号重复次数

路由方向就是路由从发布到接收的方向   R1>>R2>>R3,从R1发布到R3,R3就是入方向

BGP路由过滤

命令
filter-policy 2000 export/import
peer 2.2.2.2 filter-policy 2000 export/import 
peer 2.2.2.2 as-path-filter pyy export/import
peer 2.2.2.2 ip-prefix pyy export/import
peer 2.2.2.2 route-policy pyy export/import
以上如果同时配置,根据表格顺序进行过滤

十三、BGP团体属性(Community)

标识具有相同特征的BGP路由,使路由策略的应用更加灵活,降低维护管理的难度

公认团体属性:

Internet:0(0x00000000)向任何BGP邻居宣告
NO_Advertise:4294967042(0xFFFFFF02)不向任何BGP邻居宣告
NO_Export:4294967041(0xFFFFFF01)不向EBGP邻居宣告,但可以向联盟内的EBGP邻居宣告
NO_Export_Subconfed:4294967043(0xFFFFFF03)不向任何EBGP邻居宣告

私有团体属性:自定义规则应用方法,格式:AS(2B):Number(2B)

命令备注
peer 2.2.2.2 advertise-community#配置允许邻居发送团体属性给邻居
ip community-filter 1 permit#创建团体属性过滤器
display bgp routing-table community#查看带有团体属性的路由

BGP复位操作:高危操作!!

命令备注
reset BGP all复位所有BGP连接
reset bgp as-number复位与指定AS间的BGP连接
reset bgp x.x.x.x复位与指定邻居的BGP连接
reset bgp internal复位所有IBGP连接
reset bgp external复位所有EBGP连接

负载均衡:maximum load-balancing 2         #配置最多2个负载均衡

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值