Answers:
OSPF是一种IGP(内部网关协议),而BGP是当前唯一的真实EGP(外部网关协议)。
如果要进行内部路由,即在站点,公司或园区内进行路由,则需要使用OSPF。通常,在站点边缘需要BGP,您可以在其中路由到公共Internet。在中小型网络中,到外部的静态路由通常比建立BGP更可取。如果您有一个复杂的多宿主站点,无论其大小如何,都可以考虑使用BGP。
您真的不想使用IGRP,它是Cisco专有EIGRP(也是专有)的不推荐使用的旧版本。 EIGRP可靠,相当直观,并且性能可与OSPF媲美,但仅在Cisco设备上运行。
对于大多数项目,我都不推荐使用IS-IS。IS-IS是一种类似于OSPF的链路状态协议,但很少使用,通常仅在ISP时代才使用(尽管有些人将其称为一种广泛但利基的路由协议)。你可以肯定使用它,如果它是您的平台上,但你会发现疑难解答资源难度加大了。
尽管您在Linux(和大多数现代平台)上使用RIPv2,但RIP既适合小型站点,也最适合小型站点。它的设置比上面提到的其他方法更容易,尽管由于其局限性,它已不再在小型网络部署之外使用。如果您想获取知识,那么这将是一个很好的起点。
OSPF是与供应商无关的IGP标准(即,不是Cisco专有的),并且根据您的需要可以很容易地变得复杂。
我假设您是在谈论IPv4而不是IPv6。您在这方面的要求(与其他方面一样)将直接影响您使用的路由协议。 OSPFv3是OSPF的支持IPv6的版本; OSPFv2是目前最常用的,但仅IPv4。
*从硬件角度来看,如果硬件可以处理吞吐量,则bsd系统也是运行生产级bsd或ospf部署的不错选择。
您确实意识到要使用IBGP,您必须在边缘路由器之间创建对等关系,并且要使这些边缘路由器能够建立对等关系,它们还必须运行IGP(例如OSPF,RIP或ISIS)。没有适当的IGP,没人会独自运行IBGP。IBGP通常仅在边缘路由器和AS中的任何路由反射器上运行,而不是在所有路由器上运行,而OSPF等在所有路由器上运行。
我从未见过仅运行IBGP的网络。实际上,由于BGP依靠现有的基础路由表来确定如何路由到下一个IBGP对等方,因此实际上是不可能的。唯一真正使用的时间是单个自治系统是否通过多个链接连接到其他AS。例如,AS 100中的一个路由器与一个ISP对等,而AS 100中的另一个路由器,与备用或第二个ISP对等。在这种情况下,这两个路由器之间将使用IBGP。在这种情况之外,不应使用IBGP。
与记录相比,与OSPF相比,IBGP交换的信息更多,这意味着有更多的开销。而且,由于它位于协议栈上的IGP之上,因此通常无法收敛得那么快。
IGP是路由协议(即OSPF,ISIS,EIGRP,RIP)。
BGP是一种拓扑协议,已针对多宿主方案进行了扩展。IBGP中的“ I”并不表示它是IGP。
根据您问题上的标签-您是否有兴趣将ubuntu服务器用作路由器?如果是这种情况,Ubuntu在nemesis-ospf项目中似乎确实具有OSPF协议的端口。对于BGP而言,Vyatta发行版(how-to)将是最佳选择,并且还可以执行OSPF(两者都不是必需的)以及DNS,DHCP和其他服务。
更一般而言,OSPF将是一种更容易设置,快速配置和理解的路由协议。 BGP涉及更多,对于一个简单的小型网络来说可能会显得过分杀伤力。OSPF被认为是一种链路状态协议,而BGP是路径矢量。上面的链接将更加详细,但是我的建议是研究OSPF。
但是,我建议使用专用的盒进行路由,而不要在提供其他服务的盒上运行它,除非这仅用于教育/学习/实验室目的。
我想说的是,如果您不熟悉动态路由协议,则应该研究BGP,毕竟它是用于Internet本身上的路由共享/发现的所有协议。OSPF对于某些设置非常有用,但是即使在内部BGP中也是一个不错的选择,OSPF对我来说太“神奇”了。