BGP(边界网关协议)

1、网络AS(自治系统)

边界网关协议BGP(Border Gateway Protocol)是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择最佳路由的距离矢量路由协议。

AS是指在一个实体管辖下的拥有相同选路策略的IP网络。BGP网络中的每个AS都被分配一个唯一的AS号,用于区分不同的AS。AS号分为2字节AS号和4字节AS号,其中2字节AS号的范围为1至65535,4字节AS号的范围为1至4294967295。支持4字节AS号的设备能够与支持2字节AS号的设备兼容。

在统一的管理机构、统一的路由策略之下的一系列网络产品组成的网络实体,被称为一个网络的自治系统。BGP协议用于AS之间,而IGP用于AS内部。

2、BGP特征 不能注入igp 通信靠默认路由 igp注入bgp实现和互联网通信

(1)使用BGP的条件(情况)

一个AS允许数据穿过它到达其他AS

一个AS与其他AS有多条连接

数据报文在进入或者离开AS时,需要对其进行策略处理

(2)BGP是路径矢量协议,是对距离矢量协议的增强

可靠更新:使用TCP:179端口发送更新 *** 不能自动发现邻居

只采用触发的、增量更新

周期性的保活消息(keepalive message)维持TCP连接(默认60秒间隔,保持时间3倍)

丰富的度量值(也被称为路径矢量或路径属性)

3、BGP数据库结构(BGP有几张表)

(1)邻居表

(2)BGP表(拓扑表)

从每个邻居学习到的所有网络的列表

到达每个网络的多条路径

每个路径的BGP属性

(3)IP路由表

4、BGP消息类型

(1)Open

自治系统号(AS号):AS号范围1-65535(其中64512-55535为私有AS号)

保持时间(Holdtime):默认3min

BGP标识符(BGP的router-id)

可选参数(多协议扩展,路由刷新,优雅重启,路由刷新新旧格式,出站路由过滤)

(2)Keepalive:默认60s

(3)Update(更新)

NLRI(网络层可达信息)

路由属性

撤销路由

(4)Notification(通告)

当检测到错误时,会发送此消息并关闭BGP连接

5、BGP邻居关系的种类

(1)IBGP(Internal BGP)

建立BGP邻居(对等体)的路由器在同一个AS里,通常情况下,IBGP对等体不需要直接相连

(2)EBGP(External BGP)

建立BGP邻居(对等体)的路由器不在同一个AS里,通常情况下,EBGP对等体之间需要直连

As内部并且不知道 其他As网段

基础实验:R1,R2分别启用环回口,然后直连建立bgp,再宣发环回口进入bgp

Huawei\]bgp 1 \[Huawei-bgp\]router-id 2.2.2.2 \[Huawei-bgp\]peer 12.1.1.1 as-number 1 //对方所属的ip,as区域 Ibgp 建立 \[Huawei-bgp\]network 10.1.4.0 24 //宣发其他网段进入bgp 验证: ![](https://i-blog.csdnimg.cn/direct/51a250f6cb094d43b4358d95a135a3a8.png) sike: R1(config)#router bgp 1 R1(config-router)#bgp router-id 1.1.1.1 R1(config-router)#no bgp default ipv4-unicast //关闭消息设置 R1(config-router)#neighbor 12.1.1.2 remote-as 1 // 发现邻居 remote-as 1 邻居的as号 R1(config-router)#address-family ipv4 //进入到IPv4地址簇 R1(config-router-af)#nei 12.1.1.2 activate //激活邻居12.1.1.2 宣发进入bgp R1(config)#router bgp 1 R1(config-router)#address-family ipv4 R1(config-router-af)#network 10.1.1.0 mask 255.255.255.0 实验:igp注入bgp(反之万万不可以bgp路由表巨大) ![](https://i-blog.csdnimg.cn/direct/42af28f6553f422789442d92768a6da0.png) \[Huawei\]bgp 1 //注意不同as 的bgp进程号不同 \[Huawei-bgp\]router-id 2.2.2.2 \[Huawei-bgp\]peer 12.1.1.1 as-number 1 注入ospf \[Huawei\]bgp 1 \[Huawei-bgp\]ipv4-family unicast \[Huawei-bgp-af-ipv4\]import-route ospf 1 验证:R3,R4都有了全路由 ![](https://i-blog.csdnimg.cn/direct/7b68a64e06cf41c5a11252fdfe0ac898.png) sike: 注入ospf R1(config)#router bgp 1 R1(config-router)#address-family ipv4 R1(config-router-af)#redistribute ospf 100 match internal external 实验:使用环回口建立ebgp关系 ![](https://i-blog.csdnimg.cn/direct/1d874fce8d4e4d9d8845a047b6cd4a96.png) 要写静态路由 因为是环回口 \[Huawei\]ip route 2.2.2.2 255.255.255.255 21.1.1.2 \[Huawei\]ip route 1.1.1.1 255.255.255.255 12.1.1.1 ebgp一般是直连接口建立 \[Huawei-bgp\]peer 1.1.1.1 connect-interface LoopBack 0 //数字代表建立关系的环回口 不在同一个as 使用环回口 会增加TTL bgp 默认max是1 所以无法到达 用下面指令修改 max为255 \[Huawei-bgp\]peer 1.1.1.1 ebgp-max-hop 2 //不使用环回口也会有跳数问题所以尽量拉高 验证:使用环回口建立ebgp关系成功 ![](https://i-blog.csdnimg.cn/direct/ddd5628b8e284ba7a2c11a94af9996ee.png) sike: R1(config-router)#nei 2.2.2.2 update-source loopback0 R1(config-router)#neighbor 2.2.2.2 ebgp-multihop 255 BGP下一跳行为: BGP的下一跳为AS的一跳,因此AS边界的BGP路由器,向它的IBGP对等体发送从它的EBGP对等体学习到的路由时,由于AS之间的网段不宣告到AS内部,因此会导致它的IBGP对等体学习到的外部AS的路由的下一跳不可达。 实验:目的使R1到R3路由下一跳为R2 不是R3 ![](https://i-blog.csdnimg.cn/direct/e51f667a57a9429995499d2b1db7626f.png) R1,R2建立igbp和ospf R2,R3建立ebgp,同时三台都起环回口用于验证 直接查看R1路由表无法看到R3环回口,使用如下命令验证 ![](https://i-blog.csdnimg.cn/direct/7d27b0094ae54f178ede61daaf316342.png) \[Huawei-bgp\]peer 12.1.1.1 next-hop-local //在R2上 验证:下一跳更改为了R2对应接口 ![](https://i-blog.csdnimg.cn/direct/2bc33738005d405b972501600b6f7f90.png) sike: R2(config)#router bgp 1 R2(config-router)#add ipv4 R2(config-router-af)#nei 1.1.1.1 next-hop-self BGP的选路原则 \*\*\*\*\*(同步端口号179) 1、Prefer highest weight (local to router). --思科私有,作用范围本路由器(最高的权重优先) 2、Prefer highest local preference (global within AS).(最大的本地优先级优先) 3、Prefer route originated by the local router (next hop = 0.0.0.0).(起源路由器优先) 4、Prefer shortest AS path.(最短的AS-PATH优先)as个数 5、Prefer lowest origin code (IGP \< EGP \< incomplete).(最低的起源代码) 6、Prefer lowest MED (exchanged between autonomous systems).(最小的MED优先) IGP的选路原则: 1、下一跳可达 2、最长掩码匹配 //同路由掩码越长越优先 3、最优管理距离 4、最小的度量值 实验:修改属性实现指定选路(这里只教一种方法很多大差不差) ![](https://i-blog.csdnimg.cn/direct/cc7ed1a3fe40444abed3960401b59aeb.png) 上图中R1与R2以及R1与R3之间是EBGP关系,R2与R3之间是IBGP关系 在R1上启用Lo1:11.11.11.11/32,宣告到BGP中 在R2上启用Lo1:22.22.22.22/32,宣告的BGP中 要求在完成以上配置后,通过相关的修改,实现 在R2上: traceroute 11.11.11.11 source 22.22.22.22 经过的路径是R2--\>R3--\>R1 注意:R2,R3必须是环回口建立邻居关系,不然修改 preferred-value无效 基本配置后 ![](https://i-blog.csdnimg.cn/direct/b2267f5f678f4064ab8c947b397d56f3.png) \[Huawei\]ip ip-prefix abc permit 11.11.11.11 32 //抓取目标流量 \[Huawei\]route-policy f1 permit node 10 \[Huawei-route-policy\]if-match ip-prefix abc \[Huawei-route-policy\]apply preferred-value 500 // 赋予PrefVal值越大越优先 \[Huawei\]route-policy f3 permit node 10 \[Huawei-route-policy\]if-match ip-prefix abc \[Huawei-route-policy\]apply preferred-value 1000 \[Huawei\]bgp 2 \[Huawei-bgp\]peer 12.1.1.1 route-policy f1 import //导入 \[Huawei-bgp\]peer 3.3.3.3 route-policy f3 import 验证:R1,与2 3 不是通过环回口建立但可用此方法(懂得大佬评论区解答以下) ![](https://i-blog.csdnimg.cn/direct/828350decf4d4627b665f55126cff796.png) ![](https://i-blog.csdnimg.cn/direct/bb2bf1c676ee4cb6809adc704adfb1c5.png) sike: Weight 优先级 R2(config)#ip prefix-list 10 permit 11.11.11.11/32 抓住这段流量 R2(config)#route-map fromr1 permit 10 R2(config-route-map)#match ip address prefix 10 R2(config-route-map)#set weight 500 //weight值越大越优先 R2(config-route-map)#exit R2(config)#route-map fromr3 permit 10 R2(config-route-map)#match ip add pre 10 R2(config-route-map)#set wei 1000 R2(config-route-map)#exit R2(config)#router bgp 2 R2(config-router)#add ipv4 R2(config-router-af)#nei 12.1.1.1 route-map fromr1 in R2(config-router-af)#nei 3.3.3.3 route-map fromr3 in 汇总(聚合) 聚合 huawei : aggregate 192.168.0.0 255.255.248.0 as-set detail-suppressed sike : R2(config-router)#address-family ipv4 R2(config-router-af)#aggregate-address 10.1.8.0 255.255.252.0 summer-only as-set BGP联盟(联邦) 相当于As 之上又嵌套一个As,便于网络管理 BGP联盟使管理者可以将大型AS分割成子AS,从而使大型AS更容易管理。被分割的AS本身是联盟,那些子AS是该AS的成员,在联盟以外的AS将整个联盟看作一个AS,它们看不到联盟内部的成员AS,因为这些成员AS对外部是隐藏的,因此成员AS可以使用公共AS号,也可以使用私有AS号,在实际生产环境中,建议使用私有AS号作为成员AS号。 实验时先建立联盟再peer邻居 不在联盟内peer联盟 直接peer联盟号 As号联盟内用 huawei: \[Huawei-bgp\]confederation id 1 \[Huawei-bgp\]confederation peer-as 65002 //发现同联盟并相连的AS sike: R2(config-router)#bgp confederation identifier 1 //定义联盟AS号 R2(config-router)#bgp confederation peers 65002 //定义域本AS相连的其他联盟成员AS 路由反射器: bgp水平分割:同一个As内部的ibgp对等体A从B学习到的路由不会传给C(从ibgp对等体学习的路由不会向其他对等体转发) 解决方法:1.A与C同样建立对等体关系使得C可以从A学习路由(关系复杂不利于网络管理) 2.使B成为路由反射器会将其他客户反射给客户以及非客户,路由反射后的所有属性不发生变化(包括下一跳属性) ![](https://i-blog.csdnimg.cn/direct/064eb08e61e84ea4913b526d1209c614.png) R2,R3起环回口宣发进bgp但因为水平分割R2看不到R3路由 ![](https://i-blog.csdnimg.cn/direct/65951c23a13f4b19a869f5f52ebd35cf.png) \[Huawei-bgp\]peer 2.2.2.2 reflect-client \[Huawei-bgp\]peer 3.3.3.3 reflect-client 验证: ![](https://i-blog.csdnimg.cn/direct/6c5afd8858a64dac85b083deb5ae1037.png) sike: R1(config)#router bgp 1 R1(config-router)#add ipv4 R1(config-router-af)#nei 2.2.2.2 route-reflector-client R1(config-router-af)#nei 3.3.3.3 route-reflector-client

相关推荐
寻星探路4 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
七夜zippoe7 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
盟接之桥7 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
会员源码网7 小时前
理财源码开发:单语言深耕还是多语言融合?看完这篇不踩坑
网络·个人开发
米羊1218 小时前
已有安全措施确认(上)
大数据·网络
Fcy6488 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满8 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠8 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
主机哥哥9 小时前
阿里云OpenClaw部署全攻略,五种方案助你快速部署!
服务器·阿里云·负载均衡
Harvey9039 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s