带你走进OpenVirteX之简单网络拓扑实验


本文将介绍如何利用网络虚拟化平台OpenVirteX(以下简写为OVX)来创建、配置和启动虚拟网络,做一个简单的网络拓扑实验。这将帮助我们进一步理解OVX的主要概念。实验环境的搭建请参考《带你走进OpenVirteX之环境搭建》,其中,MongoDB的安装是可选的。如果想使用OVX的持久化功能,建议安装,而在本次实验中并没有启动MongoDB。

实验环境准备就绪后,请跟我一起做一个简单的实验吧。

1 启动Mininet并创建网络拓扑

在基于标准的NDDI拓扑的网络中,一共有11个城市,每个城市有1个核心交换机,每个交换机上有4台主机与之相连。表1中列出了不同城市的物理DPID(即物理交换机的DPID)。其中DPID的最后6个字节表示主机的MAC地址,MAC地址的最后一个字节表示主机编号。根据表1中城市SFO的物理DPID,那么该城市第三台主机的MAC地址应是00:00:00:00:02:03。

表1 各城市物理DPID

02-ovx-table1-1

在该拓扑中连接在每个核心交换机上的主机IP地址分配为10.0.0.1到10.0.0.4,端口为1到4,其他端口一般用于城市间交换机互联,具体连接情况如图1所示。

02-ovx-fig1

图1 网络拓扑结构

图1中,横线上的数字表示物理交换机端口号。例如城市EWR交换机6号端口与城市IAD交换机的7号端口相连。

开启一个终端,在主目录下执行以下命令,运行系统自带的Mininet脚本internet2.py。这将启动Mininet并创建一个如图1的拓扑结构,并将所有的交换机连接到OVX。你可以看到Mininet不能连接到控制器,这是由于OVX还没有启动。请保持终端端口处于打开状态,因为整个实验过程都会用到它。

02-ovx-1

2 启动OVX

再开启一个终端,输入以下命令启动OVX。

第一次启动OVX,会提示packaging……,耐心等待。成功启动OVX后,可以看到OVX中所有交换机连接到网络,截图给出其中一部分交换机的连接情况:

02-ovx-2-1

你也可以观察连接检测过程,下面红框标注的部分显示DPID为00:00:00:00:00:00:06:00的6端口和DPID为00:00:00:00:00:00:05:00的7端口连接。

02-ovx-2-2

你可以在Mininet控制台进行验证,Mininet脚本internet2.py显示EWR和IAD之间的连接,使用net命令可以看到EWR的6端口和IAD的7端口的确存在连接。

02-ovx-2-3

3 确认主机互通与否

这里选取西雅图(SEA)和洛杉矶(LAX)两个城市下的各一台主机来做创建虚拟网络的实验,主机名分别是h_SEA_1和 h_LAX_2。最终的虚拟网络及Virtual DPID将是这样的:

02-ovx-3-1

由于还未配置OVX,执行如下命令验证主机之间不能互通。

02-ovx-3-2

4 虚拟网络配置

4.1 创建虚拟网络

再开启一个终端,执行以下命令来创建虚拟网络。

该网络中的控制器使用tcp协议,并且在本机的10000端口运行。此外,虚拟网络的主机使用的IP范围为10.0.0.0/16。创建好后会得到一个租户ID,可以看到这里的租户ID是1,红框标注。

02-ovx-4-1

4.2 创建虚拟交换机

根据在命令中指定租户ID和城市物理DPID创建虚拟交换机。下面为租户ID为1的虚拟网络创建虚拟交换机,每创建一个虚拟交换机,就会得到一个虚拟交换机的DPID。命令行中的1是‘tenantId’,00:00:00:00:00:00:xx:00分别是该实验中三个城市(SEA、SFO、LAX)的物理DPID。

02-ovx-4-2-1

如上截图红框中是一个虚拟交换机的DPID。结构如下:第一个字节是0x00,24位a4:23:05是交换机的唯一标识,最后4个字节代表一个计数器(从1开始),记录每个租户的虚拟交换机数量。

检查OVX日志,确保创建了虚拟交换机。

02-ovx-4-2-2

4.3 创建虚拟端口

通过在命令中指定租户ID、物理DPID和物理端口来创建虚拟端口。

我们在连接SEA的虚拟交换机上创建两个端口:一个用于主机h_SEA_1,连接在物理端口1,另一个在物理端口5,连接SEA和SFO。这将返回一个虚拟端口号,红框标注。

02-ovx-4-3-1

在中间交换机SFO上,我们需要两个端口连接SFO和LAX。

02-ovx-4-3-2

在交换机LAX上,创建端口连接SFO和主机h_LAX_2。

02-ovx-4-3-3

检查OVX日志,确保虚拟端口成功创建。

02-ovx-4-3-4

4.4 创建虚拟连接

通过在命令中指定租户ID、虚拟源交换机的DPID和端口数量、虚拟目的交换机的DPID和端口数量、路由模式和你想要的备份线路的数量来创建虚拟连接。这将得到一个虚拟连接ID,红框标注。注意,OVX会自动创建反向连接,连接ID相同。路由模式支持spf或manual,前者将使用最短路径。

命令行的参数分别是:tenant_id, src_virtual_dpid, src_virtual_port, dst_virtual_dpid, dst_virtual_port, algorithm (spf, manual), number of backup routes。virtual_dpid和virtual_port可以通过4.2和4.3小节获得。

02-ovx-4-4-1

检查OVX日志,确保连接建立。

02-ovx-4-4-2

4.5 连接主机

通过在命令中租户ID、虚拟交换机DPID、虚拟交换机端口和主机的MAC地址创建连接。这将返回主机ID,红框标注。h_SEA_1连接到第一个虚拟交换机上的端口1,h_LAX_2连接到第三个虚拟交换机的端口2。你可以在Mininet控制台运行h_SEA_1 ifconfig验证MAC地址 。

02-ovx-4-5-1

Mininet控制台验证MAC地址正确。

02-ovx-4-5-3

5 启动虚拟网络

经过以上步骤,我们的虚拟网络已经配置好了,只需要提供租户ID就可以启动。你可以在OVX和控制器的日志中看到虚拟交换机已经连接到控制器了。从控制器的角度看,OVX是一个组成交换机的物理网络。同时,从物理交换机的角度看,OVX像一个控制器。所以OpenVirteX是一个代理控制器(proxy-controller)。

02-ovx-5-1

查看Mininet控制台,主机间互通。

02-ovx-5-2

打开链接http://localhost:10001/ui/index.html,可以看到虚拟网创建成功。

02-ovx-5-3

至此,实验结束,如有不正确之处,望大家指正!谢谢!

 


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/2861.html
分享到:
相关文章
条评论

登录后才可以评论

薄餜禹薏 发表于14-10-30
3