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

Huaweibgp 1

Huawei-bgprouter-id 2.2.2.2

Huawei-bgppeer 12.1.1.1 as-number 1 //对方所属的ip,as区域

Ibgp 建立

Huawei-bgpnetwork 10.1.4.0 24 //宣发其他网段进入bgp

验证:

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路由表巨大)

Huaweibgp 1 //注意不同as 的bgp进程号不同

Huawei-bgprouter-id 2.2.2.2

Huawei-bgppeer 12.1.1.1 as-number 1

注入ospf

Huaweibgp 1

Huawei-bgpipv4-family unicast

Huawei-bgp-af-ipv4import-route ospf 1

验证:R3,R4都有了全路由

sike:

注入ospf

R1(config)#router bgp 1

R1(config-router)#address-family ipv4

R1(config-router-af)#redistribute ospf 100 match internal external

实验:使用环回口建立ebgp关系

要写静态路由 因为是环回口

Huaweiip route 2.2.2.2 255.255.255.255 21.1.1.2

Huaweiip route 1.1.1.1 255.255.255.255 12.1.1.1

ebgp一般是直连接口建立

Huawei-bgppeer 1.1.1.1 connect-interface LoopBack 0 //数字代表建立关系的环回口

不在同一个as 使用环回口 会增加TTL bgp 默认max是1 所以无法到达 用下面指令修改 max为255

Huawei-bgppeer 1.1.1.1 ebgp-max-hop 2 //不使用环回口也会有跳数问题所以尽量拉高

验证:使用环回口建立ebgp关系成功

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

R1,R2建立igbp和ospf R2,R3建立ebgp,同时三台都起环回口用于验证

直接查看R1路由表无法看到R3环回口,使用如下命令验证

Huawei-bgppeer 12.1.1.1 next-hop-local //在R2上

验证:下一跳更改为了R2对应接口

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、最小的度量值

实验:修改属性实现指定选路(这里只教一种方法很多大差不差)

上图中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无效

基本配置后

Huaweiip ip-prefix abc permit 11.11.11.11 32 //抓取目标流量

Huaweiroute-policy f1 permit node 10

Huawei-route-policyif-match ip-prefix abc

Huawei-route-policyapply preferred-value 500 // 赋予PrefVal值越大越优先

Huaweiroute-policy f3 permit node 10

Huawei-route-policyif-match ip-prefix abc

Huawei-route-policyapply preferred-value 1000

Huaweibgp 2

Huawei-bgppeer 12.1.1.1 route-policy f1 import //导入

Huawei-bgppeer 3.3.3.3 route-policy f3 import

验证:R1,与2 3 不是通过环回口建立但可用此方法(懂得大佬评论区解答以下)

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-bgpconfederation id 1

Huawei-bgpconfederation 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成为路由反射器会将其他客户反射给客户以及非客户,路由反射后的所有属性不发生变化(包括下一跳属性)

R2,R3起环回口宣发进bgp但因为水平分割R2看不到R3路由

Huawei-bgppeer 2.2.2.2 reflect-client

Huawei-bgppeer 3.3.3.3 reflect-client

验证:

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

相关推荐
zzzzzz3101 小时前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode1 小时前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户03284722207017 小时前
如何搭建本地yum源(上)
运维
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz4 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工4 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
网络研究院4 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智4 天前
ARP代理--工作原理
运维·网络·arp·arp代理