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

HCIP-17 BGP基础2

HCIP-17  BGP基础2

一、bgp的路由黑洞问题

1.bgp的同步功能

ipv4-family unicast  IPV4的地址簇

undo synchronization  关闭BGP同步功能

bgp的同步功能原理

当边界路由器从ibgp邻居收到一条路由后,会使用该路由和igp路由表进行比较。

如果在igp路由表中存在该路由即BGP同步

如果在igp路由表中不存在该路由即BGP不同步

如果bgp同步,边界路由器将会把该路由条目传递给其他的ebgp邻居。

如果bgp不同步,边界路由器将不会把该路由条目传递给其他ebgp邻居。

2.将bgp路由引入igp

不推荐。

原理上可以,但是,从路由承载能力上不行

3.as内部采用全互联模式(fullmesh)

4.使用gre隧道技术

[R2]int Tunnel 0/0/0

[R2-Tunnel0/0/0]ip add 24.1.1.2 24

[R2-Tunnel0/0/0]tunnel-protocol gre

[R2-Tunnel0/0/0]source g0/0/0

[R2-Tunnel0/0/0]destination 34.1.1.4

[R4]int Tunnel 0/0/0

[R4-Tunnel0/0/0]ip add 24.1.1.4 24

[R4-Tunnel0/0/0]tunnel-protocol gre

[R4-Tunnel0/0/0]source g0/0/1

[R4-Tunnel0/0/0]destination 23.1.1.2

5.通过lsp隧道解决路由黑洞

二、bgp的路由是如何产生的

1.通过network宣告路由表中已存在的路由条目

2.import-route 引入路由

被引入的路由需要在全局路由表加表。

3.自动聚合产生的路由条目

只能聚合import-route进来的路由条目,进行主类聚合。

被聚合的明细路由会被抑制。无法进行传递,只会传输聚合后的主类的路由

4.手动聚合产生

[R1-bgp]aggregate 172.16.2.0 255.255.254.0 detail-suppressed   手动抑制明细。

三、bgp报文open报文

open报文

它就相当于OSPF里面的hello报文。用于建立bgp的邻居的连接,协商bgp参数的报文

update报文用于bgp邻居之间交互路由信息及路由属性的报文。

notification报文,差错报文。用于报错的信息的传递,并且中断邻居关系的报文。

keepalive报文用于保持邻居连接的报文

refresh报文用于在改变策略之后。请求邻居重新发送路由信息,并且只有支持刷新能力的设备才能响应这个报文

四、bgp的邻居状态机

1.idle叫初始状态,bgp初始状态。

在进入这个idle状态时,会触发华为的start事件,这个事件时间为32秒。

在这个时间之后,才开始建立该peer的三次握手。建立TCP连接,在发送了syn以后。

进入到connect状态

常见的几种idle状态的原因:

如果没有去往该peer的路由,就无法发送syn。此时,该peer会一直卡在idle状态。

收到了notification报文之后会回退到idle状态。

手动挂起邻居:在邻居表中表现为idle (admin)。

2.connect状态(连接状态)

在这个状态下,bgp会启动连接重传定时器(connect retry默认为32秒钟),用于等待TCP完成三次握手。

向邻居发起syn后,就会进入到这个状态。在这个状态完成TCP三次握手。

如果TCP三次握手完成,则向该邻居发送open报文,然后转到opensent状态。

如果TCP三次握手失败,将会把这个peer状态改为active。

如果重传定时器超时,bgp没有收到邻居的响应。那么会卡在connect状态

常见的几种connect状态原因。

邻居没有给我响应。

我发出的syn在沿途中遇到了阻碍,没有到达对方。沿途路由不可达

ebgp邻居没有配置ttl多跳。

总结:卡在connect状态其实就是邻居没有给我响应。

3.active状态(活跃的状态)

当TCP三次握手失败时。才会进入这个状态。

如果在多次尝试下,TCP三次握手成功了。那么bgp会向该peer发送open报文。关闭重传定时器,转至opensent状态

如果在多次尝试下,TCP三次握手仍然失败,那么bgp会将该peer停留在active状态。

如果重传定时器32秒超时,且没有得到该peer的响应那么会转至connect状态

4.opensent状态(open报文已发送状态)

在这个状态下。bgp已经向该peer发送了open报文,在等待对方给我发送open报文

如果收到了对方发来的open报文并且参数协商成功,则会向该pere发送keepalive报文,然后转到openconfirm状态

如果收到了对方发来的open报文参数,协商失败,则会向该pere发送notification报文,然后转到idle状态。

5.openconfirm状态

在这个状态下bgp等待对方的keepalive报文。

如果收到了对方发来的keepalive报文则转换为establisheded。

在这个状态下bgp如果收到了notification报文,则转换为idel状态

6.Establisheded(链接已建立),

在这个状态下说明邻居已经建立完毕,这个状态下可以交互的报文:

update;Notification;keepalive;Route-refresh

如果在这个状态下收到正确的update和keepalive报文。bgp会认为邻居处于正常状态,继续保持。

如果在这个状态下收到了错误的update.和keepalive,那么bgp会认为邻居处于异常状态,会发送notification报文,转到idle状态。

Route-refresh报文的发送不影响邻居关系。

七、bgp的报文细节

主要由两部分组成,分别是bgp报文头和具体报文内容

bgp报文头:

Marker:占用16个字节。默认为全f。用于检查bgp邻居头部的消息是否完整

Length:占用两字节,用于描述bgp报文的总长度,包括报文头+具体报文内容。

type是用于描述当前bgp报文类型的分为12345。

1.具体报文:

version:bgp版本。默认都是四,

my as用于描述发出该open报文的路由器所属as号,同时校验对端的as号和本地配置的as号是否一致

Hold time是描述路由器邻居失效时间的。默认情况为keepalive时间的3倍。

当两端holdtime时间不一致时,需要协商为数值较低的执行

<R1>dis bgp peer 12.1.1.2 verbose 查看该邻居的具体信息。

BGp id描述发出该open报文的路由器bgp router ID

Optional parameter length  :bgp协商参数字段长度

Optional parameters :bgp协商参数

相关文章:

  • 一文介绍阿里32B推理模型
  • 【软件测试】人工智能增强Web 自动化测试框架方案
  • C++ 入门四:类与对象 —— 面向对象编程的核心基石
  • 使用Mybatis时在XML中SQL高亮显示的方法
  • CExercise_10_2动态内存分配_1从键盘输入输入中读取一个整数n,动态分配一个长度为n的整型数组。
  • gcd之和
  • OpenCV 伪彩色处理
  • Linux 系统管理常用命令
  • RV1126 实现简单的UI方案
  • 【C++进阶】关联容器:multiset类型
  • Python代码解释
  • OpenCV 图形API(26)图像滤波-----方框滤波函数boxFilter()
  • SpringBoot系列之集成Redisson实现布隆过滤器
  • FastAPI全面指南:从入门到企业级应用实战
  • Java并发编程:深入解析原子操作类与CAS原理
  • SSH配置优化:提升本地内网Linux服务器远程连接速度与稳定性
  • 如何启动spark
  • 质因数之和-蓝桥20249
  • 纸质包装盒纸箱包裹损坏缺陷检测数据集VOC+YOLO格式2397张2类别
  • C++二分查找
  • 大理建设学校官方网站/谷歌seo网站运营
  • 咸阳网站制作建设/关键词推广怎么做
  • wordpress 加速/seo优化的搜索排名影响因素主要有
  • 十佳深圳网站设计/关键词密度
  • 号卡分销系统搭建/绍兴seo管理
  • 专门做辅助的网站/站优化