我正在尝试深入研究这些新概念,SDN 和 OpenFlow。我不清楚的一件事是,传统路由(OSPF、BGP 等)在 SDN 中是如何完成的,或者它完全消失了,取而代之的是一些轻量级机制?
我将不胜感激任何提示,链接以更好地理解这一点。谢谢!
标记
我正在尝试深入研究这些新概念,SDN 和 OpenFlow。我不清楚的一件事是,传统路由(OSPF、BGP 等)在 SDN 中是如何完成的,或者它完全消失了,取而代之的是一些轻量级机制?
我将不胜感激任何提示,链接以更好地理解这一点。谢谢!
标记
在 SDN 世界中,控制器在每个路由器和交换机中设置数据平面,以确保以某种理想的方式转发流。需要为控制器提供做出这些路由决策的逻辑。如果您想使用 OSPF 等传统机制,您可以在控制器上安装类似 RouteFlow 的东西(https://sites.google.com/site/routeflow/)。或者,尽管您可能决定使用其他一些更相关或更理想的机制。SDN 开辟了一个充满可能性的新世界。
例如,假设您在两个位置之间有两条路线。一条路由运行起来非常昂贵,但延迟也很低,并且可以更快地获得流量。另一条路线更长,延迟更高,但运行起来非常便宜。您可能决定要通过一条路径而不是另一条路径来路由特定的流量。例如。你的老板的流量走的是快路线(所以他不会一直打你),但你的同事的流量走的是慢路线(毕竟他确实偷了你留在桌子上的饼干!)。或者,您的电子邮件流量采用较慢的路线,而您的交易/实时应用程序流量采用较快的路线。
使用SDN,每个交换机/路由器基本上都变成了一个“哑”设备,只做它被告知要做的事情。集中式 SDN 服务器将拥有整个网络所需的所有信息,以便能够为所有涉及的交换机/路由器确定和配置所需的路由/交换表。
因此,我猜你的问题的答案是传统的动态路由不会在SDN中完成。
在 SDN 中,控制器用于为 openflow 交换机(哑)提供功能。
考虑这两部分,
1)控制器:这些是在任何设备上运行的程序,其逻辑可能是 l2/l3,并根据控制器中定义的算法使开关连接到它。市场上有一些控制器 API,如 POX、NOX、PYRETIC、FLOODLIGHT 等不同语言,您可以实现这些 API 来编写自己的控制器。
2)开关:控制器控制开关。美好的!但是怎么做?必须有一些协议用来提供它们之间的通信,这就是我们所说的 OpenFlow 协议。控制器使用控制器的 API 和 openFlow API 来实现 OSPF/BGP 等功能。
最后,这是想象中的结构。
控制器(在某些 IP 上说 192.168.56.101)为 openflow 交换机提供 OSPF/防火墙/URL 过滤或任何功能>> OpenFlow 交换机或用于主机连接的交换机(哑)>> 然后有/是主机:如果您使用 mininet 模拟器,它们通常是基于 linux 的。
关于资源部分,
我不是说广告或背书,但 Nick Feamster(来自佐治亚理工学院)一直在 coursera 上提供 SDN 课程。内容相当整齐。此外,搜索由 Nick 和许多来自 SDN 空间的知名人士进行的采访,谈论各种问题。
PS:我不是这样做广告的,我参加了课程,对SDN有了很清楚的了解。
路由确实发生在 SDN 中,但它集中在所谓的控制器上。大多数传统路由协议很重,只是因为需要跨网络基础设施同步路由表的分布式数据库。使用 SDN,路由过程变成了一个处理集中式数据库的简单应用程序。然后控制器将路由表传输到网络设备......