一、基础要求
* a) 第1步Mininet运行结果截图
* b) 第2步的执行结果截图
* c) 第3步提交修改过的“学号.py”代码、Mininet运行结果
二、进阶要求
代码
from mininet.topo import Topo
from mininet.net import Mininet
from mininet.node import RemoteController,CPULimitedHost
from mininet.link import TCLink
from mininet.util import dumpNodeConnections
class MyTopo( Topo ):
def __init__(self):
# 初始化参数
Topo.__init__(self)
L1 = 2 # 核心层交换机个数
core = [] # 核心层交换数组
L2 = 4 # 汇聚层交换机个数
aggregation = [] # 汇聚层交换数组
L3 = 8 # 边缘层交换机个数
edge = [] # 边缘层交换数组
# 添加核心层交换机
for i in range(L1):
sw = self.addSwitch( 's{}'.format(i + 1))
core.append(sw)
# 添加汇聚层交换机
for i in range(L2):
sw = self.addSwitch( 's{}'.format(L1 + i + 1) )
aggregation.append(sw)
# 添加边缘层交换机
for i in range(L3):
sw = self.addSwitch( 's{}'.format(L1 + L2 + i + 1) )
edge.append(sw)
# 连接核心层、汇聚层
for i in range(L2):
sw = aggregation[i]
self.addLink(sw,core[0])
self.addLink(sw,core[1])
# 连接汇聚层、边缘层
for i in range(L3):
sw = edge[i]
if (i < 4):
self.addLink(sw,aggregation[0])
self.addLink(sw,aggregation[1])
else:
self.addLink(sw,aggregation[2])
self.addLink(sw,aggregation[3])
# 在边缘交换机中,添加其连接的主机
count = 1
for i in range(L3):
sw = edge[i]
for j in range(2):
host = self.addHost('h{}'.format(count))
self.addLink(sw,host)
count +=1
topos = { 'mytopo': ( lambda: MyTopo() ) }