networking - 我的 ONOS 控制器无法识别主机(Mininet 拓扑)
问题描述
我已经为拓扑做了这个代码:
from mininet.topo import Topo
from mininet.net import Mininet
from mininet.log import setLogLevel, info
from mininet.node import OVSSwitch, Controller, RemoteController
from mininet.cli import CLI
class Project( Topo ):
def build (self, **_opts ):
# Add hosts
h11 = self.addHost('h11', ip='192.168.1.10')
h12 = self.addHost('h12', ip='192.168.1.11')
h13 = self.addHost('h13', ip='192.168.1.12')
h14 = self.addHost('h14', ip='192.168.1.13')
h21 = self.addHost('h21', ip='192.168.2.10')
h22 = self.addHost('h22', ip='192.168.2.11')
h23 = self.addHost('h23', ip='192.168.2.12')
h24 = self.addHost('h24', ip='192.168.2.13')
h31 = self.addHost('h31', ip='192.168.3.10')
h32 = self.addHost('h32', ip='192.168.3.11')
h33 = self.addHost('h33', ip='192.168.3.12')
h34 = self.addHost('h34', ip='192.168.3.13')
# Add switches
s1 = self.addSwitch('s1', cls=OVSSwitch, protocols ="OpenFlow13", ip='192.168.1.1')
s2 = self.addSwitch('s2', cls=OVSSwitch, protocols ="OpenFlow13", ip='192.168.2.1')
s3 = self.addSwitch('s3', cls=OVSSwitch, protocols ="OpenFlow13", ip='192.168.3.1')
# Add links
self.addLink(h11,s1)
self.addLink(h12,s1)
self.addLink(h13,s1)
self.addLink(h14,s1)
self.addLink(h21,s2)
self.addLink(h22,s2)
self.addLink(h23,s2)
self.addLink(h24,s2)
self.addLink(h31,s3)
self.addLink(h32,s3)
self.addLink(h33,s3)
self.addLink(h34,s3)
self.addLink(s1,s2)
self.addLink(s1,s3)
self.addLink(s2,s3)
def run():
topo = Project()
net = Mininet (topo=topo, controller=None)
c1 = net.addController( 'c1', controller=RemoteController, ip='172.17.0.7')
c1.start()
net.start()
CLI ( net )
net.stop()
if '_main_':
setLogLevel( 'info')
run()
我运行脚本:“sudo python topology.py”
Creating network
Adding controller
Adding hosts: h11 h12 h13 h14 h21 h22 h23 h24 h31 h32 h33 h34
Adding switches: s1 s2 s3
Adding links: (h11, s1) (h12, s1) (h13, s1) (h14, s1) (h21, s2) (h22, s2) (h23, s2) (h24, s2) (h31, s3) (h32, s3) (h33, s3) (h34, s3) (s1, s2) (s1, s3) (s2, s3)
Configuring hosts h11 h12 h13 h14 h21 h22 h23 h24 h31 h32 h33 h34 Connecting to remote controller at 172.17.0.7:6653
Starting controller c1
Starting 3 switches s1 s2 s3 ...
Starting CLI:
mininet>
到目前为止一切都很好,但是当我在 ONOS CLI(我正在使用的控制器)中时,它无法检测到网络上的主机......我正在使用 ONOS 教程 OVA(适用于版本 1.15.0)。
在刚刚安装 VM 并运行上面的脚本之后,我在 ONOS 上运行了命令来激活响应式转发:
onos > app activate org.onosproject.fwd
之后,我可以在 mininet 的 CLI 上 ping 主机:
mininet > h11 ping -c 3 h31
...
mininet > pingall
只有在 ping 之后,控制器才能看到/显示有关拓扑上主机的信息......控制器如何从拓扑实施的开始做到这一点?
解决方案
ONOS 需要更多三个应用程序。所需的应用程序是:
- 地址解析协议(ARP)代理;
- 链路层发现协议(LLDP);
- 主机提供商。
交换机需要来自控制器或拓扑中的主机的刺激。
推荐阅读
- splunk - 访问 Splunk Cloud Rest API
- html - 是否可以不使用 GET 提交多滑块的初始值 - javascript
- sql - WHERE 子句中的 CASE 语句或 OR 语句是否更快?(SQL/BigQuery)
- linux - 如何在shell脚本的一行中获取第四个数字
- xslt - 是否可以将 Saxon 配置为返回变量值和错误行
- java - if 语句执行 else 语句
- javascript - jQuery .next(selector) 没有给我任何回报
- c# - 在 C#、asp.net web api 中,如何将 .pem 证书和 .key 文件添加到 post 请求中?
- python - 序列化程序中的 Django 验证器与模型中的约束
- r - 如何按月数和周数按日期列过滤我的数据框?