当前位置:网站首页>BGP:边界网关路由协议 无类别的路径矢量EGP协议
BGP:边界网关路由协议 无类别的路径矢量EGP协议
2022-07-30 06:04:00 【熠風】
目录
IGP与EGP的对比
IGP追求:收敛速度快 选择路径佳(无环) 占用资源少 hop-by-hop
EGP追求:可控性 可靠性 AS-BY-AS
可控性—BGP协议不是路由的产生者,仅为搬运者,且AS间正常应该存在大量的链路来保障稳定性;故BGP协议传递的路由条目很难默认最佳选路;--需要管理员对路由进行大量的策略来干涉选路;
可靠性—BGP协议虽然像距离矢量协议一样仅传递路由条目,但更新量依然很大;
为了避免对设备资源的占用选择了增量更新---仅触发、无周期
故需要保障所有的路由传递到位—可靠 因此BGP协议基于TCP工作
TCP的三次握手条件使得TCP只能基于单播工作,同时BGP需要非直连建邻;
BGP基于IGP之上,先IGP使BGP设备间IP可达,然后BGP才能基于TCP建立非直连邻居关系;
AS-BY-AS—以一个AS为一跳,将一个AS看成一个整体;
二、BGP特点:
- 无类别路径矢量 -----距离矢量的升级版---AS--BY--AS
- 使用单播更新来发送所有信息;基于TCP 179端口工作
- 增量更新--仅触发无周期
- 具有丰富的属性来取代IGP中度量进行选路----多个参数控制协议
- 可以在进项和出项对流量实施强大的策略--可控性
- 默认不被用于负载均衡-----通过各种选路规则仅仅产生一条最佳路径
- BGP支持认证和聚合(汇总)
三、BGP数据包
基于TCP的179端口工作;故BGP协议中所有的数据包均需要在tcp会话建立后,基于TCP的会话来进行传输及可靠性的保障;
首先通过TCP的三次握手来寻找到邻居;
Open 仅负责邻居关系的建立,正常仅收发一次即可;携带route-id,hold time 默认3min
Keeplive 保活 周期1min查询邻居关系是否存在;实际保活TCP会话;
Update 携带路由条目 目标网络号+各种属性
Notification 出现错误数据时收发;
四、BGP的工作过程
管理员定义邻居的ip地址,前提要求对邻居ip可达; --- IGP可达
启动BGP协议后,先目标端口为179进行TCP的三次握手来建立TCP的会话;
会话建立后,收发open报文来建立邻居关系,生成邻居表;
邻居关系建立后,邻居间使用update 共享路由条目,在收发了路由信息后,本地生成BGP表;
Bgp表中装载本地发出及接收到的所有路由条目;
之后路由器将BGP表中的最优路径(不一定是最佳选路,仅为BGP参数最佳)加载于路由表中;
收敛完成!仅keeplive周期保活即可;
五、专业名词:
EBGP 外部的BGP邻居关系,两台处于不同AS的BGP路由器间建立的邻居关系
六、BGP的路由黑洞;
由于bgp协议可以非直连建立邻居关系,故若两台BGP邻居间存在未运行BGP协议的路由时;可能出现路由条目可以在控制层面正常单播传递,但数据层面流量经过未运行BGP协议的设备时,无法通行;
控制层面可达,数据层面不可达;
解决方法:
- 物理或逻辑链路全连
- 全连的BGP邻居关系,所有设备运行bgp;
- 将BGP路由条目重发布到IGP协议中(LAB)
- 最佳方案---MPLS 多协议标签交换
七、BGP的防环机制;--水平分割
1、EBGP水平分割—防止EBGP环路
利用BGP条目中的as-path 属性,该属性将记录所有经过的AS编号;接收到的路由条目中若as-path中存在本地的AS号,将拒绝接收;
2、IBGP水平分割—防止IBGP环路
基于AS-BY-AS特性,BGP的路由条目默认在一个AS内部传递时,其属性不变化;
八:实验拓扑

实验目的:设备所有环回可以进行ping通
实验思路:
1.先进行路由IP规划与配置
2.将IBGP的内部启动ospf协议
3.建立邻居关系—BGP基于单播进行建邻和沟通,故需要管理员手工指定邻居的ip地址;
使用直连接口ip地址来建立EBGP邻居关系
IBGP建议使用双方的环回接口来作为源/目IP地址;
若EBGP邻居间存在多条直连链路时,也建议使用环回接口来建立;
4.进行BGP的路由宣告
实验过程
1.ip配置规划如下
R1 R2 R3 R4 R5
之间路由网段分别为12 .1.1.0 23.1.1.0 34.1.1. 45.1.1.0 与54.1.1.0
R1 R2 R3 R4 R5 的环回分别为1.1.1.1 2.2.2.2 3.3.3.3 4.4.4.4 5.5.5.5
2.将IBGP的内部启动ospf协议
R2 R3 R4 配置如下



ospf邻居结果如下

3.建立邻居关系
R1 与R2单链路建立(直连建立)


建立结果

IBGP 的配置(环回接口配置)与一旦使用环回接口作为目标ip地址时,也应该修改源为本地的环回接口ip地址



配置结果如下

4.进行BGP的路由宣告(注意来回路由器的传输路由下一跳,要修改源环回ip)
bgp 2
router-id 34.1.1.4
peer 2.2.2.2 as-number 2
peer 2.2.2.2 connect-interface LoopBack0
peer 3.3.3.3 as-number 2
peer 3.3.3.3 connect-interface LoopBack0
peer 5.5.5.5 as-number 3
peer 5.5.5.5 ebgp-max-hop 2
peer 5.5.5.5 connect-interface LoopBack0
#[r4]bgp 2
[r4-bgp]network 4.4.4.0 24
[r4-bgp]peer 3.3.3.3 next-hop-local
[r4-bgp]peer 2.2.2.2 next-hop-local[r3]bgp 2
[r3-bgp]network 3.3.3.0 24
[r3-bgp]peer 2.2.2.2 next-hop-local
[r3-bgp]peer 4.4.4.4 next-hop-local
最主要内容:R4与R5建邻用的是5.5.5.0 24的路由,然后宣告的也是这条路由,建邻的目的是穿这个路由,但是这个路由被用作建邻,导致逻辑悖论,所以更改建邻路由,更改为5.5.5.0 32 解决这个问题(华为)
5.ping 通检测




实验完成
边栏推荐
- 从 Google 离职,前Go 语言负责人跳槽小公司
- Boot process and service control
- Derivative Operations on Vectors and Derivative Operations on Vector Cross and Dot Products
- 限塑令下的新材料——聚乳酸(PLA)
- Go 结合Gin导出Mysql数据到Excel表格
- assert
- Table with tens of millions of data, how to query the fastest?
- [GO Language Basics] 1. Why do I want to learn Golang and get started with GO language
- Keil软件中map文件解析
- MySQL基础篇【命名规范】
猜你喜欢

识别“数据陷阱”,发现数据的可疑之处

redis实现分布式锁的原理

The introduction of AI meta-learning into neuroscience, the medical effect is expected to improve accurately

LVM and disk quotas

Equation Derivation Proof of Vector Triple Product

【MySQL】MySQL中如何实现分页操作

MYSQL下载及安装完整教程

What are the access modifiers, declaration modifiers, and keywords in C#?Literacy articles

What new materials are used in the large aircraft C919?

【雷达目标检测】恒定阈值法和恒虚警(CFAR)法及代码实现
随机推荐
go : go-redis set operations
The introduction of AI meta-learning into neuroscience, the medical effect is expected to improve accurately
Rodrigues: vector representation of rotation matrices
go : 使用gorm创建数据库记录
AI can identify race from X-rays, but no one knows why
Electron日常学习笔记
让百度地图生成器里的“标注”内容展开--解决方案
The usage of window.open(), js opens a new form
Ali two sides: Sentinel vs Hystrix comparison, how to choose?
Go语学习笔记 - gorm使用 - 数据库配置、表新增 Web框架Gin(七)
go : delete database data using grom
专访蚂蚁:这群技术排头兵,如何做好底层开发这件事?| 卓越技术团队访谈录
如何实时计算日累计逐单资金流
bean的生命周期
redis实现分布式锁的原理
分布式锁开发
Go 使用mencached缓存
包含min函数的栈(js)
Develop common tool software
The Geometric Meaning of Vector Cross Product and the Calculation of Modulus