当前位置: 首页 > news >正文

HCIP第六章(BGP)

一:BGP的简介:

IGP--内部网关协议--RIP,OSPF,ISIS,EIGPIP...

EGP--外部网关协议--EGP,BGP(边界网关路由协议)

(1)AS之内运行IGP协议,实现全网可达--协议需要:

1.收敛块

2.选路佳,(无环)

3.占用资源少

(2)AS之间运行EGP协议,实现全网互通--协议需要:

1.可靠性--TCP--单播(非直连建邻)

2.可控性--BGP协议主要负责搬运IGP协议产生的路由,类似多点双向重发布,对选路不做计算,故需要管理员大量手工的干涉选路

3.AS-BY-AS--以一个AS为一跳

注释:BGP协议本身不产生路由,而是转发本地路由表中来自其他协议生成的路由条目,AS之间正常存在大量的BGP邻居关系,且BGP协议不会计算最佳路径,因此在BGP协议中管理员需要进行策略来进行干涉选路

二。BGP的特点:

1.无类别路径矢量(共享路由带掩码)--距离矢量的升级版AS--BY--AS

2.使用单播更新来发送所有信息,基于TCP179端口工作

3.增量更新--仅触发无周期

4.具有丰富的属性来取代IGP中度量进行选路--多个参数可控协议

5.可以在进项和出项对流量实施强大的策略--可控性

6.默认不被用于负载均衡--通过各种选路规则仅仅产生一条最佳路径

7.BGP支持认证和聚会(汇总)

三。BGP的数据包:首先通过TCP三次握手来找到邻居

1.open:仅负责邻居关系的建立,正常进收发即可,携带router-id

2.keeplive:保活,周期1min查询邻居关系是否存在,实际确保是否保活TCP会话,hold time默认为3min

3.更新:携带路由条目 目标网络号+各种属性

4.报错:出现错误数据时候进项收发

四。BGP协议的工作过程:

1.建邻配置完成后,邻居间基于TCP的179端口,通过TCP的三次握手建立TCP会话,(邻居间已知对端单播地址-地址可达-BGP承载与IGP之上)

2.会话建立后,所有的BGP数据包全部基于TCP会话进行传递和可靠性的保障,邻居间仅收发因此open报文,交互router-id,相互认识,建立邻居关系,生成邻居表

3。邻居关系建立后,正常每一分钟keeplive周期保活TCP会话即可

4.之后管理员可以根据网络的实际需要,选择性将本地路由表中通过任何来源产生的路由条目,宣告到BGP协议中,有BGP共享给所有的BGP邻居--更新包update

5.生成BGP表,装载本地发出及接受到的所有BGP路由,仅将本地BGP表中最优(参数最好)路由条目加载于本地路由表中,默认不支持负载均衡,收敛完成,无周期性更新,仅keeplive保活

6.若出现错误信息,邻居间将使用Notification报文进行报错操作

五。结构突变

1.新增:本地使用update向本地所有的邻居告知,前提是该路由不被已经发出的聚合路由所包含

2.断开:本地使用update向本地所有邻居告知,前提是该路由不被已经发出的聚合路由所包含,只有到聚合条目中包含的所有明细路由表均在本地失败,才告知邻居删除聚合条目

3.无法沟通:hold time为3min,连续三次没有收到邻居的keeplive,断开邻居关系,TCP会话,删除从该邻居处学习到的所有路由

六。路由黑洞和水平分割

BGP的路由黑洞:BGP可以非直连建邻,从所有运行BGP协议的路由器路由表来看,目标可达,但当流量正在转发时,流量需要hop-by-hop(下一跳)转发,中间只要经过未运行的BGP路由,就会产生路由黑洞

解决黑洞措施:

1.物理或者逻辑(tunnel口)全连

2.邻居关系全连(全部运行BGP),费用高

3.将BGP重发布IGP(LAB)

4.MPLS-多协议标签交换,MPLS VPN

BGP的水平分割:防环

1.EBGP水平分割--针对的AS之间的环路

BGP的路由条目中携带着众多参数,包括各种BGP属性,其中有一条AS-pash属性,该属性用于记录该路由条目经过的所有AS编号,若BGP协议学习到一条路由,属性中包括了本地的AS号,将拒绝接受

2.IBGP水平分割--针对AS内部的环路

本地从一个IBGP邻居处,学习到的路由,不得共享给本地的其他IBGP邻居,因为AS-BY-AS,故一条路由条目在一个AS内部传递的时候,其属性不变由于BGP协议可以非直连建邻,故在一个AS的内部,无需专门设置BGP设备来备份邻居关系(每台运行BGP协议的设备均连接其他的AS设备:该AS的边界)为了能将本地从其他AS学习到的路由,共享给本地所在AS中的所有BGP设备,需要单AS内所有运行BGP协议的设备间均建立IBGP邻居关系,从而IBGP的邻居关系数量随着BGP运行设备的数量指数上升(配置量极大),后期可以有条件的打破IBGP的水平分割规则(联邦,路由器反射器)

七。BGP的配置

1.在BGP协议中,邻居关系的建立 与 路由条目宣告时分开操作

(1)直连的EBGP邻居(物理接口直接建立)

[R1]bgp 1(bgp 1代表的是属于AS1区域)
[R1-bgp]router-id 1.1.1.1   (进行手写id)
[R1-bgp]peer 12.1.1.2 as-number 2(指向下一个AS2,建立邻居)

[R2]bgp 2
[R2-bgp]router-id 2.2.2.2   
[R2-bgp]peer 12.1.1.1 as-number 1

(2)建立IBGP邻居关系(建议使用环回地址作为源目标地址建立)

[R2]bgp 2
[R2-bgp]peer 3.3.3.3 as-number 2

[R2-bgp]peer 3.3.3.3 connect-interface LoopBack 0

[R3]bgp 2
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 2.2.2.2 as-number 2(宣告邻居bgp的id为2.2.2.2,且位于AS2内部)
[R3-bgp]peer 2.2.2.2 connect-interface LoopBack 0(与邻居2.2.2.2建邻,源端口为环回地址)

(3)直连的EBGP邻居间,存在存在多条物理来链路(也需要环回地址进行建立邻居关系)

步骤1:路由可达问题(配置静态路由)

[R4]ip route-static 5.5.5.0 24 45.1.1.2
[R4]ip route-static 5.5.5.0 24 54.1.1.2

[R5]ip route-static 4.4.4.0 24 45.1.1.1
[R5]ip route-static 4.4.4.0 24 54.1.1.1

步骤2:环回建邻

[R4]bgp 2
[R4-bgp]peer 5.5.5.5 as-number 3
[R4-bgp]peer 5.5.5.5 connect-interface LoopBack 0

[R5]bgp 3
[R5-bgp]router-id 5.5.5.5
[R5-bgp]peer 4.4.4.4 as-number 2 
[R5-bgp]peer 4.4.4.4 connect-interface LoopBack 0

步骤3:修改TTL值(默认IBGP为255,EBGP为1),一旦使用环回建立ebgp,必须修改TTL值

[R4-bgp]peer 5.5.5.5 ebgp-max-hop 2

[R5-bgp]peer 4.4.4.4 ebgp-max-hop 2

2.建邻完成后,邻居间TCP三次握手建立TCP会话:display tcp status

3.会话建立后,BGP的open收发一次,建立邻居关系,生成邻居表:display bgp peer

4.BGP的宣告:本地路由表中无论何种来源产生的任意路由条目,均可逐条宣告到BGP协议中,宣告后,产生BGP表(装载本地发出及接受到的所有BGP路由)

注释:*表示可用,>表示优,*>表示该条目可以加载到路由表,可以传递给本地的BGP邻居

5.存在的问题(IBGP和EBGP之间)

同步问题1:

本地通过IBGP邻居学习到的路由,必须本地同时通过IBGP也学习到,才能优,在传递路由的同时,因为存在水平分割机制,导致在单播传递的过程中所保留的属性不变,故不能进行传递,路由不可达

解决方法(该下一跳为自己):[R2-bgp]peer 3.3.3.3 next-hop-local 

建邻问题2:

存在水平分割机制,导致在两个IEGP之间的传递无效,需要另外建立邻居关系

[R2-bgp]peer 4.4.4.4 as-number 2
[R2-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[R4-bgp]peer 2.2.2.2 as-number 2
[R4-bgp]peer 2.2.2.2 connect-interface LoopBack 0

[R2-bgp]peer 4.4.4.4 next-hop-local (去4.4.4.4改下一跳为自己)

环回邻居问题3:

对于R5和R4采用的是环回建立的邻居关系,而不是R1与R2之间接口建立的邻居关系,所以在R5即使宣告了自己的环回接口,并且设置了下一跳,也不会进行传递该路由,即使思科设备上传递了也不会显示最优

解决方法: 删除原来的对R5的环回邻居,从新创建新的静态路由
[R4]undo ip route-static 5.5.5.0 24
[R4]ip route-static 5.5.5.5 32 45.1.1.2
[R4]ip route-static 5.5.5.5 32 54.1.1.2

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Linux学习】动静态库从原理到制作
  • 【Java数据结构】---List(ArrayList)
  • STM32的USB接口介绍
  • vue前端自适应布局,一步到位所有自适应
  • 【vulnhub】WebDeveloper:1靶机
  • Linux下如何使用Netcat进行网络调试
  • 网络剪枝——network-slimming 项目复现
  • 剖析HTML 元素——WEB开发系列02
  • Excutors创建线程池
  • VisionPro二次开发学习笔记11-使用 Caliper和Fixture定位Blob工具检测方块
  • 【C++】string的模拟实现
  • Python | Leetcode Python题解之第330题按要求补齐数组
  • hdu7471 最优K子段(口胡题解 二分+贪心+随机化)
  • 深入探索Webkit的Web Authentication API:安全与便捷的融合
  • Flutter简介
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • “大数据应用场景”之隔壁老王(连载四)
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • CSS中外联样式表代表的含义
  • Cumulo 的 ClojureScript 模块已经成型
  • Docker入门(二) - Dockerfile
  • golang 发送GET和POST示例
  • java 多线程基础, 我觉得还是有必要看看的
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 观察者模式实现非直接耦合
  • 回流、重绘及其优化
  • 将回调地狱按在地上摩擦的Promise
  • 嵌入式文件系统
  • 一道闭包题引发的思考
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 怎么把视频里的音乐提取出来
  • Java总结 - String - 这篇请使劲喷我
  • 函数计算新功能-----支持C#函数
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • # Redis 入门到精通(一)数据类型(4)
  • #QT(串口助手-界面)
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • (2)nginx 安装、启停
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (35)远程识别(又称无人机识别)(二)
  • (52)只出现一次的数字III
  • (ibm)Java 语言的 XPath API
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束
  • (附源码)计算机毕业设计高校学生选课系统
  • (四)JPA - JQPL 实现增删改查
  • (四)鸿鹄云架构一服务注册中心
  • .“空心村”成因分析及解决对策122344
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .htaccess 强制https 单独排除某个目录