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

相关推荐
李詹2 小时前
WAF防护规则配置技巧与企业级安全实践指南
网络·tcp/ip·安全·架构·ddos
sniper_fandc3 小时前
网络编程—Socket套接字(UDP)
网络·网络协议·udp·javaee
jstart千语3 小时前
【网络协议】WebSocket讲解
网络·websocket·网络协议
久绊A3 小时前
IPIP.NET-IP地理位置数据
开发语言·网络·php
石兴稳3 小时前
小型园区组网图
网络·智能路由器
Brandon汐4 小时前
Linux第四章练习
linux·运维·服务器
EasyGBS4 小时前
如何实现两个视频融合EasyCVR平台的数据同步?详细步骤指南
大数据·网络·人工智能·安全·音视频
Ting-G5 小时前
配置GRE-tunnel隧道(思科&华为)
运维·网络·智能路由器
buling-chen5 小时前
面向字节流(TCP)vs 报文级(UDP)
网络·tcp/ip·udp
理智的煎蛋5 小时前
es 原生linux部署集群
大数据·linux·服务器·elasticsearch