加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

Mininet模拟不同数据中心的网络拓扑

发布时间:2018-09-09 09:58:34 所属栏目:业界 来源:老王学网络
导读:9月15日技能沙龙 | 与东华软件、AWS、京东金融、饿了么四位大咖切磋精准运维! 真实的SDN收集必要许多OpenFlow装备包罗节制器、互换机、成果假造化等一系列装备配合依靠搭建并应用,但因前提有限,每一位尝试者不行能有真实的情形来验证可能尝试。行使Minin
副问题[/!--empirenews.page--] 9月15日技能沙龙 | 与东华软件、AWS、京东金融、饿了么四位大咖切磋精准运维!

真实的SDN收集必要许多OpenFlow装备包罗节制器、互换机、成果假造化等一系列装备配合依靠搭建并应用,但因前提有限,每一位尝试者不行能有真实的情形来验证可能尝试。行使Mininet计划模仿差异收集数据中心拓扑,可以用来说明收集的总流量,并且另外,还可以通过负载平衡计策来担保数据中心的可用性。差异数据中心收集拓鞭挞点计划,首要是基于Fat-Tree拓扑来建设收集,Fat-Tree收集的甜头是具有一个多条理的树状拓扑布局固有容错手段。

Mininet模仿差异数据中心的收集拓扑

行使Mininet计划模仿一个大都据中心收集。用Mininet模仿仿真测试,首要是用Mininet中的OpenFlow互换机和本身提供的ODL节制器举办测试。一个简朴的基于两个数据中心的收集拓扑,如图所示:

具有首要测试及验证互换机下挂主机间的连通性以及主机间收发数据包的速率。Mininet中自带的iperf机能测试器材可以测试差异主机间通讯的机能带宽质量,在此例中,首要是对沟通边沿互换机下的主机间、沟通聚合互换机下差异边沿互换机间、沟通焦点互换机差异聚合互换机下的主机间举办测试。

Mininet模仿差异数据中心的收集拓扑

在此尝试中,行使Mininet通过python自界说拓扑编写剧本建设两个数据中心的收集拓扑,且行使已筹备的POX节制器(IP地点为192.168.28.131)举办管控。

应用Mininet建设两个数据中心的收集拓扑计划的剧本代码如下:

拓扑建设代码完成后,可以在Mininet呼吁行操纵界面通过ping 操纵和iperf呼吁进一步验证主机间的连通性以及机能带宽说明,也可以通过编写测试剧本应用Mininet的操纵呼吁举办全自动化测试连通性及机能带宽质量,代码如下:

  1. #FatTree.py  
  2. """Customtopology example 
  3. Addingthe 'topos' dict with a key/value pair to generate our newly defined 
  4. topologyenables one to pass in '--topo=mytopo' from the command line. 
  5. """ 
  6.   
  7. frommininet.topo import Topo 
  8.   
  9. classMyTopo(Topo): 
  10.     "Simple topology example." 
  11.       def __init__(self): 
  12.          "create custom topo." 
  13.              #initializa topology 
  14.              Topo.__init__(self) 
  15.              L1 = 2 
  16.              L2 = L1 * 2 
  17.              L3 = L2 
  18.              cSwitch = [] 
  19.              aSwitch = [] 
  20.              eSwitch = [] 
  21.              
  22.          #add core ovs 
  23.          for i in range(L1): 
  24.                 sw = self.addSwitch('c{}'.format(i+1)) 
  25.                     cSwitch.append(sw) 
  26.              
  27.              #add aggregation ovs 
  28.              for i in range(L2): 
  29.                 sw = self.addSwitch('a{}'.format(L1 + i+1)) 
  30.                     aSwitch.append(sw) 
  31.                     
  32.              #add edge ovs 
  33.              for in range(L2): 
  34.                 sw = self.addSwitch('e{}'.format(L1 + L2 + i+1)) 
  35.                     eSwitch.append(sw) 
  36.                     
  37.              #add links between core aggregationovs 
  38.              for i in range(L1): 
  39.                 for j in range(L2): 
  40.                         # self.addLink(sw2, sw1, bw=10,delay='5ms', loss=10, max_queue_size=1000, use_htb=True) 
  41.                         link = self.addLink(cSwitch[i],aSwitch[j]) 
  42.                            
  43.              #add links between aggragation andedge ovs 
  44.              for i in range(L1): 
  45.                 for j in range(L1): 
  46.                         self.addLink(aSwitch[i],eSwitch[j]) 
  47.              
  48.              for i in range(L1): 
  49.                 for j in range(L1): 
  50.                         # self.addLink(sw2, sw1, bw=10,delay='5ms', loss=10, max_queue_size=1000, use_htb=True) 
  51.                         self.addLink(aSwitch[L1 + i],eSwitch[L1 +j]) 
  52.                            
  53.              #add hosts and its links with edgeovs 
  54.              count = 1 
  55.              for sw1 in eSwitch: 
  56.                 for i in range(L1): 
  57.                         host = self.addHost('h{}'.format(count)) 
  58.                            self.addLink(sw1,host) 
  59.                            count += 1 
  60.                            
  61. topos= {'mytopo':(lambda:MyTopo())} 

通过Mininet呼吁节制台举办手动输入呼吁测试验证,测试功效如下:

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读