时间:2023-06-29 12:48:02 | 来源:网站运营
时间:2023-06-29 12:48:02 来源:网站运营
Mininet互通(mininet内主机跨宿主机通信、mininet与真机通信、mininet内主机访问外网)怎么实现?:mininet内虚拟主机
与ubuntu宿主机
在网络中同等地位的目的,占用网卡后的网络拓扑可以这么理解。如果想用虚拟机做实验的话,就将虚拟机桥接主机,再将USB无线网卡给虚拟机。主机和无线网卡都连接手机热点。
ifconfig
一下,一般能看到俩网卡。比如一个是ens33
,一个是ens38
sudo ifconfig ens33 0.0.0.0
os.popen('ovs-vsctl add-port s1 ens33')
这个里面的ens33需要改成你需要让mininet占用的网卡名称。#!/usr/bin/env pythonimport osfrom mininet.net import Mininetfrom mininet.node import Controller, RemoteControllerfrom mininet.cli import CLIfrom mininet.link import Intffrom mininet.log import setLogLevel, infodef ToRealnet(): net = Mininet( topo=None, build=False) info( '*** Adding controller/n' ) net.addController(name='m1') info( '*** Add switches/n') s1 = net.addSwitch('s1') info( '*** Add hosts/n') h1 = net.addHost('h1', ip='0.0.0.0') # ubuntu_2这里是h3 h2 = net.addHost('h2', ip='0.0.0.0') # ubuntu_2这里是h4 info( '*** Add links/n') net.addLink(h1, s1) net.addLink(h2, s1) info( '*** Starting network/n') net.start() os.popen('ovs-vsctl add-port s1 ens33') h1.cmdPrint('dhclient '+h1.defaultIntf().name) h2.cmdPrint('dhclient '+h2.defaultIntf().name) CLI(net) net.stop()if __name__ == '__main__': setLogLevel( 'info' ) ToRealnet()
sudo python topo.py
然后就可以看到h1和h2都通过dhcp方式拥有了自己的IPsudo mn -c
清理之后,发现占用的网卡还是不能正常工作,可以断开在重新连接,不行重启绝对行。sudo mn --nat
不占用主机网卡,建立好后可以直接ping外网,但是外界主机访问不了mininet内的h1、h2( 不能说绝对访问不了,至少麻烦点)。没法直接 ping www.baidu.com
是因为主机没配置DNS。关键词:主机,通信,访问,宿主