圖中的ens33、ens37均是網(wǎng)卡,此處的互通指的是ubuntu_1、ubuntu_2、mininet_1內(nèi)的主機(jī)、mininet_2內(nèi)的主機(jī)全部都可以互相" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢(xún) 在線咨詢(xún)
15158846557 在線咨詢(xún)
所在位置: 首頁(yè) > 營(yíng)銷(xiāo)資訊 > 網(wǎng)站運(yùn)營(yíng) > Mininet互通(mininet內(nèi)主機(jī)跨宿主機(jī)通信、mininet與真機(jī)通信、mininet內(nèi)主機(jī)訪問(wèn)外

Mininet互通(mininet內(nèi)主機(jī)跨宿主機(jī)通信、mininet與真機(jī)通信、mininet內(nèi)主機(jī)訪問(wèn)外

時(shí)間:2023-06-29 12:48:02 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)

時(shí)間:2023-06-29 12:48:02 來(lái)源:網(wǎng)站運(yùn)營(yíng)

Mininet互通(mininet內(nèi)主機(jī)跨宿主機(jī)通信、mininet與真機(jī)通信、mininet內(nèi)主機(jī)訪問(wèn)外網(wǎng))怎么實(shí)現(xiàn)?:

圖中的ens33、ens37均是網(wǎng)卡,此處的互通指的是ubuntu_1、ubuntu_2、mininet_1內(nèi)的主機(jī)、mininet_2內(nèi)的主機(jī)全部都可以互相通信。

借助的原理就是mininet內(nèi)的出口OVS(Open vSwitch)占用宿主機(jī)ubuntu主機(jī)網(wǎng)卡,從而達(dá)到mininet內(nèi)虛擬主機(jī)ubuntu宿主機(jī)在網(wǎng)絡(luò)中同等地位的目的,占用網(wǎng)卡后的網(wǎng)絡(luò)拓?fù)淇梢赃@么理解。







1 實(shí)驗(yàn)環(huán)境

2 實(shí)驗(yàn)步驟

實(shí)驗(yàn)采用真機(jī)方式實(shí)現(xiàn),每臺(tái)宿主機(jī)Ubuntu都有兩個(gè)網(wǎng)口。兩個(gè)網(wǎng)卡具體是有線無(wú)線的都行,我這里是一個(gè)RJ45真實(shí)網(wǎng)口,一個(gè)USB免驅(qū)無(wú)線網(wǎng)卡。兩臺(tái)主機(jī)的真實(shí)網(wǎng)卡插路由器LAN口,無(wú)線網(wǎng)卡連接路由器的WiFi。這樣四個(gè)網(wǎng)卡相當(dāng)于是在同一局域網(wǎng)環(huán)境下。

如果想用虛擬機(jī)做實(shí)驗(yàn)的話,就將虛擬機(jī)橋接主機(jī),再將USB無(wú)線網(wǎng)卡給虛擬機(jī)。主機(jī)和無(wú)線網(wǎng)卡都連接手機(jī)熱點(diǎn)。
ifconfig一下,一般能看到倆網(wǎng)卡。比如一個(gè)是ens33,一個(gè)是ens38

方案是將每臺(tái)主機(jī)的ens33網(wǎng)卡分配給Mininet OVS。兩臺(tái)主機(jī)操作一致。都是

2.1 釋放那個(gè)網(wǎng)卡

sudo ifconfig ens33 0.0.0.0

2.2 將下面的python程序保存為topo.py

注意,os.popen('ovs-vsctl add-port s1 ens33')這個(gè)里面的ens33需要改成你需要讓mininet占用的網(wǎng)卡名稱(chēng)。

#!/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()

2.3 執(zhí)行程序

sudo python topo.py然后就可以看到h1和h2都通過(guò)dhcp方式擁有了自己的IP

2.4 檢驗(yàn)

最后在另一臺(tái)主機(jī)上也執(zhí)行相同的操作。兩臺(tái)主機(jī)上的h1、h2、h3、h4,宿主機(jī)ubuntu_1、ubuntu_2,就都可以互通ping了

3 結(jié)束語(yǔ)

結(jié)束mininet后,記得清理虛擬主機(jī)

sudo mn -c清理之后,發(fā)現(xiàn)占用的網(wǎng)卡還是不能正常工作,可以斷開(kāi)在重新連接,不行重啟絕對(duì)行。







3.1 如果宿主機(jī)無(wú)互聯(lián)需求

這種情況只需要一個(gè)網(wǎng)卡給mininet用,也可以做到兩臺(tái)機(jī)器里面的mininet主機(jī)互通。但是當(dāng)mininet占用了唯一的網(wǎng)卡之后,宿主機(jī)將沒(méi)法連接外界了。

3.2 如果只想要mininet里面的主機(jī)可以上外網(wǎng)

這種情況可以直接采用NAT解決

sudo mn --nat不占用主機(jī)網(wǎng)卡,建立好后可以直接ping外網(wǎng),但是外界主機(jī)訪問(wèn)不了mininet內(nèi)的h1、h2( 不能說(shuō)絕對(duì)訪問(wèn)不了,至少麻煩點(diǎn))。沒(méi)法直接 ping www.baidu.com是因?yàn)橹鳈C(jī)沒(méi)配置DNS。







參考

enhancement-ryu/mininetconnecttorealinternet.py at master · cotyb/enhancement-ryu · GitHub

將Mininet與真實(shí)網(wǎng)絡(luò)相連接 - cotyb - 博客園 (cnblogs.com)

Mininet主機(jī)與真實(shí)網(wǎng)絡(luò)互通方案實(shí)現(xiàn)_BoyLJS的博客-CSDN博客

關(guān)鍵詞:主機(jī),通信,訪問(wèn),宿主

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉