百科问答小站 logo
百科问答小站 font logo



既然 BGP 的前提是网络层是通的,那还需要 BGP 做什么用呢? 第1页

  

user avatar   netwarm007 网友的相关建议: 
      

假设现在你要去某个比较远的地方,你打开地图软件搜索路径,往往会发现有多条路径可选。软件往往会自动按照一定的规则,比如最短时间规则,或者最少费用规则,提示你最优路径。

BGP就是用来干类似的事情的。虽然3层以下网络都是通的,但是究竟该走那条路,将数据从哪个网口发出去,除了需要知道每条路是否可达,还需要各条路的实时路况信息。

比如,一台服务器可能同时连接着电信的网和联通的网。当它需要和一个移动的用户通信的时候,到底走哪边更快更稳定呢?

可以看出这就不是一个局部的路径规划问题,而是互联网级别的全局路径规划,而且是动态的。因为网络上情况随时都在变化,就如同路网一样。不同的出发时间,最优路径都可能不同。

如果没有BGP这类协议的调停,最差的情况,甚至会出现环路。比如在上面那个例子当中,假设服务器是通过电信的网发出数据,但是电信的网(上的路由器)认为联通距离移动更近,就把数据通过电信和联通的边界路由扔给联通。而联通的路由收到之后认为其实电信的更近,就又扔回电信。

这种踢皮球的事情在我们生活当中大家是否有遇到呢?虽然每个部门都有自己的办事流程,很清晰地定义了,但是却因为缺少部门间协调,很多事情被搁置。

这种问题最终是如何解决的呢?就是各个相关部门在老大的监视下派代表协商,定出跨部门的沟通方法。

你可以看到,恰恰是因为“都是通的”,才会在宏观上造成这样的问题。

而BGP就是网络系统上的主机和路由器获知网络整体情况,进行跨AS自治域进行路由协调的一种协议。

(回到路网的比喻,BGP主要管的是跨省(AS自治域)高速公路的路况。省内的则由其它路由间协议调停,但是功能类似,管理的宏观层级不同而已)


user avatar   bei-ji-85 网友的相关建议: 
      

大概十五年前,在福建某网络公司做过路由协议相关的东西,主要就是OSPF和BGP,我觉得目前的回答里,没有解释清楚一件事:设计BGP路由协议的目的是什么?

BGP主要用于AS(自治域)之间交换规模比较大的路由表,AS与AS之间相对独立。

划重点:相对独立大量路由

1. 相对独立的BGP协议是去中心化的。

因为BGP交换的数据是AS之间的路由表,AS通常都是一个国家或者一个大型的运营商,AS之间的地位是对等的。一个AS是否要接入到另外一个AS,不需要更高层次的网络管理者的授权。

而OSPF/ISIS就不行,OSPF/ISIS是中心化的,OSPF需要area0交换数据,ISIS需要骨干区,这些都是中心化的配置,如果国际互联网用OSPF/ISIS,那么就意味着很多数据流量就不得不通过某个中心区域,如果中心区域故障,那么全球互联网就瘫痪了。

同时,OSPF和ISIS在一个area里都需要一个核心路由器,OSPF叫DR,ISIS叫DIS,尤其是在一个广播网络,DR/DIS非常重要,他们负责通告给其它路由器area里的路由表。有了核心路由器,OSPF/ISIS才能计算出当前arae的拓扑结构。

但BGP不行,如果BGP里有类似DR/DIS的角色,那么这个网络就不再是去中心化的了,DR/DIS的选举和变化会导致网络波动,对于BGP这种拥有大规模路由表(上万条)的协议来说,这种波动的影响会非常巨大。

去中心化意味着BGP的每个路由器,只能自己算自己的路由表,如果BGP也负责计算到peer端的路由,那么每个BGP路由器计算出来的结果是没办法统一的(没有DR/DIS),所以BGP为了去中心化,放弃了计算到peer路由的过程,把这个工作交给了IGP来实现。

题主的疑问,用去中心化就可以解释了。

2. IGP协议报文开销太大

BGP的报文格式中,是以属性为单位进行通告的,属性+路由条目*N的这种格式。

OSPF的LSA和ISIS的LSP都是带有一定链接状态的数据,格式相当于(路由条目+属性)*N的格式,如果路由表数量巨大,那么OSPF/ISIS需要非常多的通信才能完成路由交换。如果是外部路由,那么为了描述一条路由信息,OSPF/ISIS需要更长的报文。同时OSPF/ISIS,都存在老化时间,需要周期性的刷新,BGP不需要。

我曾经在十几年前,抓过某高校内部的OSPF路由表,就有500多百条,而一个国家级别的网络,路由表的规模可能是上万条的,全球互联网的路由表可能是几十万甚至上百万条的,这种情况下,使用OSPF/ISIS的话,性能就不太好了。

3. BGP不关注网络内部的可达性

这种设计主要是为了“过境流量”。举例:中国到美国的数据流量,主要走中美海底光缆。但如果这条光缆中断了,那么,还可以走中国-日本-美国;中国-欧洲-美国;中国-新加坡-美国……那么当数据流量在日本、欧洲、新加坡中转时,BGP协议不关注这些过境流量如何通过内部网络,换句话说,中国的路由器上,不需要知道日本、欧洲、新加坡的内部网络的路由,只需要知道边界在哪里,边界是否可达即可。


BGP的这种特性还可以用来做网络调优。购买VPS/虚拟主机服务的时候,肯定听说过BGP机房的说法,所谓的BGP机房,就是在机房的出口处,配置一台运行IBGP的路由器,直接连通到EBGP的出口,那么对于跨AS的访问,只需要一跳就可以进入另外一个AS,不需要在运营商网络内部绕路。

所以,用高速公路、主干道比喻都是不恰当的,主要原因是BGP需要去中心化,去中心化意味着对端不可信,也就无法通过BGP peer去计算AS之间的拓扑了。




  

相关话题

  交换机的端口设置为VLAN Trunk模式时,在转发数据包时插入了什么信息? 
  《计算机网络自顶向下方法》第一章中频段指的是电磁波频率范围吗,模拟信号在电话线中是电磁波的形式传播吗? 
  IGP为什么承载不了BGP那么多的路由条目? 
  127.0.0.1与127.0.0.2这两个IP地址有什么区别?后者能用吗? 
  大型发布会现场的 Wi-Fi 应该如何搭建? 
  计算机真的已经烂大街了吗,女生学计算机没出路吗? 
  网关和路由器的区别是什么? 
  给我女神发消息,隔壁的二狗在同一 Wi-Fi 下,能收到我的帧吗? 
  如何在家庭布设万兆局域网? 
  为什么整个127.*网段都被拿来当做环回地址了? 

前一个讨论
讲解verilog的经典书有哪些呢?
下一个讨论
不规则四边形内如何获得面积最大的椭圆?





© 2024-11-09 - tinynew.org. All Rights Reserved.
© 2024-11-09 - tinynew.org. 保留所有权利