我正在尝试从我创建的 python 文件创建 SDN 网络,但它似乎找不到该目录。我是不是做错了什么?
这是我使用的语法:
sudo mn --custom ~/mininet/custom/project.py --topo 项目
这是 python 文件所在的目录:
为了以防万一,我还提供了我的 python 文件中的代码:
from mininet.topo import Topo
class Project( Topo ):
def __init__( self ):
# Initialize topology
Topo.__init__( self )
# Add hosts
h1 = self.addHost('h1')
h2 = self.addHost('h2')
h3 = self.addHost('h3')
h4 = self.addHost('h4')
h5 = self.addHost('h5')
h6 = self.addHost('h6')
h7 = self.addHost('h7')
h8 = self.addHost('h8')
h9 = self.addHost('h9')
h10 = self.addHost('h10')
h11 = self.addHost('h11')
h12 = self.addHost('h12')
h13 = self.addHost('h13')
h14 = self.addHost('h14')
h15 = self.addHost('h15')
h16 = self.addHost('h16')
h17 = self.addHost('h17')
h18 = self.addHost('h18')
# Add switches
s1 = self.addSwitch('s1')
s2 = self.addSwitch('s2')
s3 = self.addSwitch('s3')
s4 = self.addSwitch('s4')
s5 = self.addSwitch('s5')
s6 = self.addSwitch('s6')
s7 = self.addSwitch('s7')
s8 = self.addSwitch('s8')
# Add links
self.addLink(h1,s1)
self.addLink(h2,s1)
self.addLink(h3,s1)
self.addLink(h4,s2)
self.addLink(h5,s2)
self.addLink(h6,s2)
self.addLink(h7,s3)
self.addLink(h8,s3)
self.addLink(h9,s3)
self.addLink(s1,s7)
self.addLink(s2,s7)
self.addLink(s3,s7)
self.addLink(s7,s8)
self.addLink(s8,s4)
self.addLink(s8,s5)
self.addLink(s8,s6)
self.addLink(s4,h10)
self.addLink(s4,h11)
self.addLink(s4,h12)
self.addLink(s5,h13)
self.addLink(s5,h14)
self.addLink(s5,h15)
self.addLink(s6,h16)
self.addLink(s6,h17)
self.addLink(s6,h18)
topos = { 'project': ( lambda: Project() )}
误差小:
尝试运行自定义拓扑时,请使用以下命令:
sudo mn --custom ~/mininet/custom/project.py --topo=project
希望这个答案能解决问题
您可以将上面的代码写在带有主Python脚本的文件中,并运行它来执行Python文件。
首先是该目录中的拓扑(.py)?
其次,我在你的拓扑中没有看到你的控制器(你说的是SDN)。您的交换机需要 SDN 控制器。如果您使用遥控器,您应该执行
sudo mn --custom ~/mininet/custom/project.py --topo 项目 --远程控制器
还要检查topo项目(或Project)的大写P是否有问题
您可以使用 miniedit 创建拓扑。使用图形用户界面的 miniedit 创建自定义拓扑非常方便。
当涉及到自定义 mininet python 文件时,对我来说它可以使用以下命令。
其中 expr.py 是保存 mininet 拓扑的 python 脚本。