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

网络安全之BGP详解

BGP;边界网关协议

使用范围;BGP范围,在AS之间使用的协议。

协议的特点(算法):路径矢量型,没有算法。

协议是否传递网络掩码:传递网络掩码,支持VLSM,CIDR

协议消息数据包封装:基于TCP封装(可靠的),端口号:179

AS:自治系统,自治系统范围:1-65535,分为公有AS(1-64512)和私有AS(64513-65535)

一、BGP协议特点:

1、BGP是一种路径矢量型路由协议。

2、BGP协议版本,当前版本V4(或叫V4+) V1,V2,V3(有类别的路由协议,不传递网络掩码) V4(无类别,支持传递网络掩码,仅仅支持IPV4单播路由传递) V4+(支持IPV4单播路由、IPV6单播IPV4组播,IPV6组播【一般的路由协议没办法运行组播,运行组播的协议叫做PIM(叫做协议无关组播)是一个完全独立的协议,和OSPF等常见的协议是完全不一样的,因为单播和组播干的就不是同一个事,单播我们更关注数据要去哪(关注目标地址),而组播与单播相反,它更多关注的是源地址】,VPNV4,VPNV6等,除了IPV4单播路由之外的其他的都称为MP-BGP——多协议BGP:注意的是,默认仅仅支持传递IPV4单播路由,传递其他方式路由时需要开启(激活)  [BGP版本是从版本3和版本4开始直接使用的,跳过了V1,V2,它可以配置的版本只有V3和V4,因为BGP的很多东西都是直接继承的EGP,而EGP当初有EGP1和EGP2,在BGP设计出来的时候直接从版本3开始的。现在很多厂商的设备允许BGP之后,默认允许的版本是V4,但是它具备V4+的功能,V4+就是V4的增强版,除了支持默认的V4的IPV4单播路由外,其他的相关路由都支持,只是默认没有开启,要做的话需要一条命令给激活]

3、更新地址:单播更新(因为BGP是基于TCP的,TCP第一步就是三次握手,三次握手不能与组播,广播三次握手,所以只能是单播更新,不能是组播更新和广播更新等)

4、更新方式:触发更新,增量更新。触发更新(网络稳定时,BGP是不向外发送任何路由信息且是永久不发,只要不变就不发与OSPF不同,它没有三十分钟的链路状态刷新,网络改变时才向外发送的路由信息)。增量更新(网络路由信息改变时,只发送路由信息改变了的路由信息,其他没有改变的不发送,因为BGP中的属性太多了,若是都重新完完全全的发一遍则费时费资源等)。

5、BGP协议中存在大量的属性(是一种基于规则的路由协议)

6、BGP协议支持路由认证(几乎所有的路由协议都支持路由认证,只是BGP的路由认证比较个性,一般的路由认证是在协议本身上实施,BGP的路由认证是做在TCP的可选项里,在TCP的可选项里设置了账号密码,所以BGP的路由认证是基于TCP的)

7、支持BGP路由聚合(汇总)

8、BGP是一种非常消耗资源的路由协议(因为BGP的路由量很大,而且每一条BGP中的属性也很多。如何证明:比如一个路由器上只能运行一个BGP,而一个路由器运行OSPF可以运行多个OSPF,一个路由器上最多起31个OPSF。)

二、适合使用BGP的网络环境

1、传输AS(就是运营商级别的网络,也就是用户通过运行商的这个AS去访问连接这个AS的服务器)

2、多宿主(多出口的意思,比如说一个学校里很多学生老师的用户,在上网时要接入到运行商,也就是进入到另一个不同的AS比如接入的电信的AS,但是不可能只接入电信这一家AS,还要接入其他的AS,比如移动,联通等不同的AS,这种就叫做多宿主。一个网络连接着多个出口,虽然一个学校连接着多出口,多个AS宿主,但是学校是可以不做AS,BGP的,这种对网络的利用率很低,很多情况下,学校对于网络的区域出口划分不合理,对于重要的教学楼什么的地方连接的是稳定性高带宽高的出口,等这个出口挂掉之后再走另一个出口,而对于宿舍一些地方连接的是带宽低的出口,等这个出口挂掉之后再走另一个出口。简而言之就是学校将自己的网络划成了好几部分,某些网络比较重要的时候,就走稳定的出口,稳定的出口挂了,再走别的,对于学校宿舍等对学校无所谓的地方就走一个带宽低的出口,这个出口挂了再去走其他出口,这种就很不合理。合理的是我访问的是谁就走谁的出口,比如访问的服务器是放在电信的机房,而走的是移动或联通的出口去访问,这样的速度势必会很慢。正确的是我访问的服务器机房在电信,就走电信出去,在联通就走联通出去等……为什么不做BGP,是因为BGP对设备性能的要求高之外,对工程师还有足够的一个水平能够支持和维护这样大的一个路由条目数量)

3、需要对进入和离开的流量进行强大的策略控制时(使用BGP的最主要原因,不用IGP是因为IGP的属性很少,来来回回就修改一个metric值。自动化程度越高的协议,它的路由控制越难)

BGP除了速度慢一点,没有什么其他的缺点。

不适合使用BGP的条件:当自己对BGP知之甚少的时候不要使用BGP(说白点就是不懂BGP就不要使用BGP)除了这个之外能使用BGP就使用BGP最好。

三、BGP邻居关系

IBGP:内部BGP邻居

EBGP:外部BGP邻居

如何区分BGP关系,建立邻居的双方都属于同一个AS的就是IBGP,学到的路由叫做IBGP路由。如果建立邻居的双方不属于同一个AS建立的邻居关系就是EBGP,学到的路由叫做EBGP路由。

比如下图的拓扑图中,R1与R2建立的邻居关系就是EBGP,R2与R3建立的邻居关系就是IBGP。R1与R3建立的邻居关系也是EBGP。在IBGP协议里邻居关系建立或路由传递时,只能在直连之间传递(大多数用的组播更新,组播更新地址用的是224.0.0.X,而224.0.0.X的地址用的TTL值默认为1,所以不能跨网段传递路由,而BGP为什么行可以跨网段传递,是因为它是基于TCP的,TCP是要进行三次握手的,即只要两个IP之间能相互通信,就能进行三次握手,能够三次握手BGP就能传路由,跟中间传递的路由器没有关系,对于中间的路由器而言,它们只知道传递的是点对点的TCP数据包,而实质上这里面承载着BGP的路由信息)。

IBGP的防环机制:IBGP水平分割机制(IBGP只传一条规则,通过一个IBGP邻居学习的路由不能传递给其他的IBGP邻居);next-hop、起源者属性,簇ID列表。

未完待续……由于BGP的内容很多,每天尽量更新够多的BGP详细内容解释。

http://www.lryc.cn/news/350926.html

相关文章:

  • 【MySQL精通之路】SQL优化(1)-查询优化(8)-嵌套联接优化
  • 30V降8V、12V、24V3.5A车充降压芯片IC H4112 5V-30V
  • 保护共享资源的方法(互斥锁)
  • 树的非递归遍历(层序)
  • 解决SpringBoot使用@Transactional进行RestTemplate远程调用导致查询数据记录为null的bug
  • pl/sql基础语法操作
  • Vue 父组件向子组件传递数据
  • 二十五、openlayers官网示例CustomOverviewMap解析——实现鹰眼地图、预览窗口、小窗窗口地图、旋转控件
  • K8S Secret管理之SealedSecrets
  • Gone框架介绍25 - Redis模块参考文档
  • SpringBoot前置知识02-spring注解发展史
  • C++ TCP发送Socket数据
  • 鸿蒙HarmonyOS开发中的易混点归纳-持续补充中
  • ue引擎游戏开发笔记(45)——添加游戏音效
  • 202472读书笔记|《首先你要快乐,其次都是其次》——快乐至上,允许一切发生
  • 8.STL中Vector容器的常见操作(附习题)
  • 5.23小结
  • 文心一言 VS 讯飞星火 VS chatgpt (265)-- 算法导论20.1 4题
  • Flutter 中的 EditableText 小部件:全面指南
  • H800基础能力测试
  • 2024/5/24 Day38 greedy 435. 无重叠区间 763.划分字母区间 56. 合并区间
  • 【python】使用函数名而不加括号是什么情况?
  • 全文检索ElasticSearch简介
  • Github上传时报错The file path is empty的解决办法
  • Adobe Bridge BR v14.0.3 安装教程 (多媒体文件组织管理工具)
  • 嵌入式学习——3——TCP-UDP 数据交互,握手,挥手
  • 【LeetCode】【3】无重复字符的最长子串(1113字)
  • 溪谷联运SDK功能全面解析
  • Vitis HLS 学习笔记--控制驱动TLP - Dataflow视图
  • 蓝桥杯物联网竞赛_STM32L071KBU6_关于sizo of函数产生的BUG