据我所知,我们正在使用路由协议来实现第3层连接,我对BGP在基于L4的TCP上工作感到困惑。没有先前的L3连接如何建立L4 / TCP?

#1 楼

TCP / IP套接字在两个特定寻址的端点之间通过网络建立端到端连接。 BGP使用TCP / IP在路由器(任何交换路由信息的设备)之间进行通信。交换的信息由BGP对等方使用,以更好地选择他们选择发送数据包(即下一跳)数据包的方式传输。

在Internet的最边缘,事情很容易。对您的Internet提供商来说,“一切都是这样”。在中间,路由器可能有多种选择。因此,它使用TCP / IP在其路由邻居之间移动BGP通信。然后,当信息包有多种方式到达目的地时,BGP信息会告诉路由器首选路径。

端点(例如Web浏览器)和路由器在说TCP / IP。但是路由器正在使用TCP / IP(由TCP / IP数据包组成的BGP通信)来讨论如何处理它们需要路由的其他TCP / IP数据包。

评论


我相信“但是路由器正在使用TCP / IP来讨论如何处理需要路由的其他TCP / IP数据包。”本来是“但是路由器使用BGP来讨论如何处理它们需要路由的其他TCP / IP数据包。”

–奥利维尔·杜拉克(Olivier Dulac)
2014年2月20日在17:02

...我也考虑过要这样写。在最后一句话中,我试图强调不同的设备如何通过TCP / IP来完成不同的任务。我将调整措辞。

–克雷格·康斯坦丁(Craig Constantine)
14年2月20日在18:58

#2 楼

路由协议不能“实现” L3连接。它们使用从其他路由器学到的信息填充路由器的路由(转发)表。

BGP是在TCP / IP上运行的“应用程序”。换句话说,BGP路由器使用TCP / IP与其他BGP路由器进行通信以交换路由信息。

为了使BGP工作,您必须已经在路由器之间建立了L3连接。

评论


鸡肉和鸡蛋的问题。 “为了使BGP工作,您必须已经在路由器之间建立了L3连接。”由于BGP是事实上的互联网路由协议,因此如何在Interet中实现L3连接

–混合
2014年2月20日下午13:05

根本没有鸡肉和鸡蛋的问题。正如我所说,路由协议不会创建L3连接。 eBGP扬声器(几乎)总是彼此直接连接。 iBGP发言人依靠基础网络来提供连接。换句话说,在运行BGP之前,首先需要连接。

–罗恩·托恩(Ron Trunk)
2014年2月20日下午13:10

我试图了解它是如何开始的以及当今体系结构背后的原因是什么。因此,一开始有几个人使用运行IGP的专用网络,并说让我们连接网络?为什么要通过IP / TCP进行操作,诸如Novell或Appletalk之类的旧协议呢?

–混合
2014年2月20日下午13:17

这些是不同(但很好)的问题。答案将需要比评论部分更多的空间。如果您愿意,我们可以将其移动到聊天室

–罗恩·托恩(Ron Trunk)
2014年2月20日下午13:35

#3 楼

OSI网络模型及其分层结构对于理解主机之间的端到端通信很有用,但并不是要真正解释网络控制平面的功能。建立完整的BGP连接时存在固有的自举问题,但是这种自举的发生方式已广为人知,并且没有任何循环依赖项。和信息交换取决于会话的类型。

最简单的是eBGP。通常,eBGP在两个直接连接的路由器之间的TCP会话上运行。在这种情况下,每个对等方都知道如何与对方通信,因为他们两个都在同一子网中有一个接口,因此无需使用外部路由协议来形成邻接。

使用iBGP事情有点复杂。在最简单的配置中,自治系统中的所有路由器都将配置为全网状网络的一部分,并与网络中的所有其他路由器进行iBGP会话。在自治系统内,内部网关协议(例如OSPF或ISIS)可以建立内部路由拓扑。当IGP完成工作后,所有路由器都将具有一个路由表,该路由表中填充有到所有iBGP邻居的路由,从而允许TCP会话形成无循环依赖性。在自治系统中并非所有路由器都使用完整BGP表运行的情况下。如果iBGP网格不完整,您可能会遇到这样的情况,即网络中间的路由器具有与其直接邻居不同的表视图。这将导致路由选择欠佳,并且在某些情况下,路由循环将导致设备之间的流量反弹,直到TTL过期。

#4 楼

该链路具有配置的静态地址和关联的路由条目,用于建立BGP会话。使用BGP,然后用指向其他网络的条目扩展路由表。

由于BGP仅在直接对等体之间使用,因此此时除了指向另一端的路由外,不需要其他路由。

例如如果我们想对等,则可以在/ 30或/ 31子网中达成一致,将一个地址分配给网络的每一端,并为此子网创建到该链路的网络路由,然后将另一个配置为BGP对等端,此时,我将获得宣布要通过路由器发送的所有网络的其他路由条目(这又是本地静态配置的网络路由的一部分)。

评论


西蒙,很高兴再次收到您的来信。您的答案仅针对eBGP,但iBGP对等方仅需要IGP(即OSPF)可达性。您能为iBGP案例添加更多吗?

–迈克·彭宁顿
2014年2月20日14:56

#5 楼

                    ---        ---          ---          ---
                   | D |------| A |--------| B |--------| C |
                    ---        ---          ---          ---


假设A和B是路由器(在不同或相同的AS中),D和C是主机。现在,A和B相互连接并且可以通信。但是D将如何知道C的位置以便它可以与C进行通信。当C想要与D进行通信时,情况也是如此。现在,如果我们在A和B之间运行BGP协议,它们将彼此交换第3层连接信息。简单来说,A会告诉B D已连接到B。然后,要么B可以将其传递给C,要么B是C的默认网关,则C可以通过任一方式知道D的位置。 A和B运行BGP协议。

因此两个系统之间需要事先建立BGP连接,以便交换第3层路由信息。我刚刚展示了一个简单的示例来回答您的查询。在实际情况下,BGP对等体之间交换了更多的路由数据。

BGP在TCP协议上运行。因此必须在它们之间打开TCP套接字,然后它们才能交换路由数据。

#6 楼


没有先前的L3连接?


“ L3连接”不是全部或全部。

设置路由器的管理员将使用IP地址和子网掩码配置接口。根据这些配置,将创建隐式路由表条目,以允许路由器与其邻居进行通讯。

然后路由协议可以在此本地L3连接之上运行,以建立更长距离的L3连接。 />