Answers:
TCP / IP套接字在两个特定寻址的端点之间通过网络建立端到端连接。BGP使用TCP / IP在路由器(任何交换路由信息的设备)之间进行通信。交换的信息由BGP对等方使用,以更好地选择他们选择将数据包发送到(即下一跳)数据包的方式。发送。
在互联网的最边缘,事情很容易。对您的Internet提供商来说,“一切都是这样”。在中间的更多地方,路由器可能有多种选择。因此,它使用TCP / IP在其路由邻居之间移动BGP通信。然后,当有多种方式使数据包到达目的地时,BGP信息会告诉路由器首选的路径。
端点(如Web浏览器)和路由器都讲 TCP / IP。但是路由器正在使用 TCP / IP(由TCP / IP数据包组成的BGP通信)来讨论如何处理它们需要路由的其他TCP / IP数据包。
路由协议不能“实现” L3连接。它们使用从其他路由器学到的信息填充路由器的路由(转发)表。
BGP是在TCP / IP上运行的“应用程序”。换句话说,BGP路由器使用TCP / IP与其他BGP路由器进行通信以交换路由信息。
为了使BGP工作,您必须已经在路由器之间建立了L3连接。
OSI网络模型及其分层结构对于理解主机之间的端到端通信很有用,但并不是要真正解释网络控制平面的功能。建立完整的BGP连接时存在一个自举问题,但是这种自举发生的方式已广为人知,并且没有任何循环依赖性。
就BGP而言,形成邻接关系和交换信息的方式取决于会话的类型。
最简单的是eBGP。通常,eBGP在两个直接连接的路由器之间的TCP会话上运行。在这种情况下,每个对等方都知道如何与对方通信,因为它们两个都在同一子网上具有接口,因此无需使用外部路由协议来形成邻接关系。
使用iBGP,事情有些复杂。在最简单的配置中,自治系统中的所有路由器都将配置为全网状网络的一部分,并与网络中的所有其他路由器进行iBGP会话。在自治系统内,内部网关协议(例如OSPF或ISIS)可以建立内部路由拓扑。当IGP完成其工作时,所有路由器都将具有一个路由表,该表中填充了到所有iBGP邻居的路由,从而允许TCP会话形成而没有循环依赖性。
在并非所有自治系统中的路由器都使用完整的BGP表运行的情况下,事情会变得更加有趣。如果iBGP网格不完整,您可能会遇到以下情况:位于网络中间的路由器的表视图与其直接邻居不同。这将导致路由选择欠佳,并且在某些情况下,路由循环将导致设备之间的流量反弹,直到TTL过期。
该链接具有配置的静态地址和关联的路由条目,用于建立BGP会话。然后,使用BGP扩展路由表,并添加指向其他网络的条目。
由于BGP仅在直接对等方之间使用,因此,除了指向另一端的路由外,无需其他路由。
例如,如果要对等,我们会在/ 30或/ 31子网中达成一致,将一个地址分配给网络的每一端,并为此子网创建到该链接的网络路由,然后将另一个配置为BGP对等体,这时,我会得到您宣布要通过路由器发送的所有网络的附加路由条目(这又是本地静态配置的网络路由的一部分)。
--- --- --- ---
| D |------| A |--------| B |--------| C |
--- --- --- ---
假设A和B是路由器(在不同或相同的AS中),D和C是主机。现在,A和B彼此连接并且可以通信。但是D将如何知道C的位置以便它可以与C进行通信。当C要与D进行通信时,C也是如此。现在,如果我们在A和B之间运行BGP协议,它们将彼此交换第3层连接信息。 。简单来说,A会告诉B D已连接到B。然后,要么B可以将其传达给C,要么B是C的默认网关,则C可以通过任何一种方式获知D的位置。
因此,在这种情况下,如果A和B运行BGP协议,则在A和B之间传递第3层连接性信息。
因此,为了交换第3层路由信息,需要在两个系统之间预先建立BGP连接。我刚刚展示了一个简单的示例来回答您的查询。在实际情况下,BGP对等体之间交换更多的路由数据。
BGP通过TCP协议运行。因此,必须在它们之间打开TCP套接字,然后它们才能交换路由数据。